enumerateObjectsUsingBlock:Akhir-akhir ini saya banyak menggunakan untuk kebutuhan pencacahan cepat, dan saya mengalami kesulitan memahami penggunaannya BOOL *stopdi blok pencacahan.
The NSArraynegara referensi kelas
stop: Referensi ke nilai Boolean. Blok dapat mengatur nilaiYESuntuk menghentikan pemrosesan lebih lanjut dari larik. Thestopargumen argumen out-satunya. Anda hanya boleh menyetel Boolean ini keYESdalam Blok.
Jadi tentu saja saya bisa menambahkan yang berikut ini di blok saya untuk menghentikan pencacahan:
if (idx == [myArray indexOfObject:[myArray lastObject]]) {
*stop = YES;
}
Dari apa yang saya sudah bisa memberitahu, tidak secara eksplisit menetapkan *stopuntuk YEStidak memiliki efek samping negatif. Pencacahan tampaknya secara otomatis berhenti sendiri di akhir larik. Jadi, apakah *stopbenar-benar perlu digunakan dalam satu blok?
stopbendera tersebut adalah penasehat; pencacahan dapat berlanjut untuk beberapa jumlah iterasi yang tidak ditentukan dalam kasus bersamaan, misalnya. Yaitu Anda tidak boleh menetapkan__blockvariabel tanpa syarat pada setiap melewati pencacahan dan berharap itu menjadi nilai "terakhir" saat menggunakanstopuntuk menghentikan awal. Anda harus selalu memasangkan "tidak, gunakan objek ini" dengan pengaturanstop = YES;.