Son zamanlarda enumerateKeysAndObjectsUsingBlock:
kullanıyorum ve bugün işyerindeki meslektaşımdan birinin bu numaralandırma yönteminin ayrı iş parçacığından çağrılabileceğine ve kodumun beklendiği gibi çalışmayacağı konusunda tereddüt ettim. Hatta hızlı numaralandırma kullanmamı önerdi. Sorun, enumerateKeysAndObjectsUsingBlock:
'u gerçekten seviyorum ve sözlük söz konusu olduğunda doğası gereği hızlı sayımdan hoşlanmam.enumerateKeysAndObjectsUsingBlock: aynı ileti dizisinde çağrıldığından emin olabilir miyim?
benim yöntemi (self.myDictionary
boş değil varsayarak)
- (NSArray *)someMethod
{
__block NSMutableArray *myArray = [NSMutableArray array];
[self.myDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[myArray addObject:obj];
}
return myArray;
}
Ben myArray hep beklenen değerler döndürür emin olabilir şöyle baktı ve her zaman birYöntem aynı iş parçacığı üzerinde çağrılacak?
enumerateKeysAndObjectsWithOptions:usingBlock:
numaralı bir yöntemin var olduğunu ve NSEnumerationConcurrent
numaralı bir seçenekle çağrılmasının birden çok iş parçacığı üzerinde aynı anda numaralandırmayı çalıştırdığının farkındayım.
Ancak enumerateKeysAndObjectsUsingBlock
ile ilgili herhangi bir belge bulamıyorum.
Aynı, dizide kullanılan enumerateObjectsUsingBlock:
anlamına gelir.
Hızlı sayımın “doğası” ile ilgili olarak ne denli sevmediğinizden emin değilseniz, emin olmadığınız bu yöntemi kullanmak ister misiniz? –
Sipariş, dizinizdeki nesneleri bu blokta nasıl sakladığınız burada önemli midir? – Unheilig
"Doğa" ile, onları sıralayan ve sonra nesneye erişen allKey'leri çağırmaktan bahsediyorum, blok numaralandırmayla bunun dışında kalırsınız. Blok - daha uygun, daha kolay kod ve belki de daha az yazı yazmam. – sumofighter666