[NSDictionary getObjects:andKeys:]
yönteminin çalışma örneğini bulamadım. Bulduğum sadece example, derleme değil. Birilerinin onları aradığı sırada hataları/uyarıları burada sağladım.Örnek [NSDictionary getObjects: andKeys:]
Kafamın karışık olmasının nedeni NSDictionary üzerindeki çoğu yöntemin NSArray
değerini döndürmesidir. Ancak, documentation'da, bu yöntemin çıkış değişkenlerinin C dizileri olarak döndüğü belirtilmektedir.
Burada bağlantılı örneği takip takdirde alabileceğiniz hata iletileri/uyarılar bulunmaktadır:
NSDictionary *myDictionary = ...;
id objects[]; // Error: Array size missing in 'objects'
id keys[]; // Error: Array size missing in 'keys'
[myDictionary getObjects:&objects andKeys:&keys];
for (int i = 0; i < count; i++) {
id obj = objects[i];
id key = keys[i];
}
.
NSDictionary *myDictionary = ...;
NSInteger count = [myDictionary count];
id objects[count];
id keys[count];
[myDictionary getObjects:&objects andKeys:&keys]; // Warning: Passing argument 1 of 'getObjects:andKeys:' from incompatible pointer type.
for (int i = 0; i < count; i++) {
id obj = objects[i];
id key = keys[i];
}
Bu soruyu yanıt olarak bir çalışma çözümü sağlayacağım.
i serbest bırakmak için gerekiyor obj ve anahtar? – Cesar
Yukarıdaki kod örneğinde hiçbir şey bırakmayın. –
Anyonlar neden bir şey salıvermeye ihtiyaç duyduğunuzu merak ettiyse (bu, beni erken gelişim aşamasında öldüren bir şeydi) çünkü hiçbir şey tahsis edilmedi. Hiçbir bellek tahsis edilmedi = serbest bırakılması gereken bellek yok. Açıkçası, ama bunu birkaç ay önce görmüş olsaydım, sürümünüzü neden kullanamayacağınıza dair hiçbir fikrim olmaz :) – Elmo