NSMutableOrderedSet'im var.EnumerateObjectsUsingBlock tarafından bulunan öğeyi nasıl iade edersiniz?
Numaralandırmam gerekiyor ve kümeye yerleştirilen tek seçenek blok temelli gibi görünüyor. Yani blok bazlı seçeneklerinin en basit toplama, ben
[anNSMutableOrderedSet enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if ([(SomeClass*)obj isWhatIWant]) {
*stop = YES;
// Ok, found what I'm looking for, but how do I get it out to the rest of the code?
}
}]
o da mümkün olabilir mi bloğun dışına '__block SomeClass * someClassVar '' i kullanın ve sonra bloğun içinde,' 'someClassVar = obj' sonuç nesnesini bloğun dışında yer alan blok değişkenine atamak mı? Henüz denemedim, ancak __blok anahtar kelimesini doğru bir şekilde anlayabiliyorsam, bu işe yarayacak görünüyor. –
@Logicsaurus Rex evet bu işe yarayacak. __block anahtar sözcüğü hakkında daha fazla bilgi için şu bağlantıyı kontrol edin: http://stackoverflow.com/questions/7080927/what-does-the-block-keyword-mean –
Evet bir blok değişkeni de işe yarayacaktır. Ancak bu yaklaşımı kullanırken kapsamın farkında olun. Açık bir geri çağırma kullanarak daha kolay okunabilir buluyorum, ancak size kalmış ve uygulamanıza nasıl uygulanabileceğine bağlı. İyi şanslar. – Tim