__block
değişkenlerinin sözdizimi konusunda sorum var. __block
'u kapsamdaki bir değişkende kullanabildiğinizi biliyorum, bu yüzden de yalnızca bloğun içinde değil. Ancak apple docs içinde tek bir noktada, ben bir alternatif göremediği:.__block için alternatif sözdizimi?
"tanımlayan kapsamında Değişkenler salt okunur bir blok kullanılan varsayılan olarak böyle bir değişkenin değerini değiştirmek gerekiyorsa, özel bir söz dizimi kullanabilir: Bu örnekte
int count = 0;
float cumulativeValue = 0.0;
UpdateElements(a, N, ^(float element){
|count, cumulativeValue|
float value = factor * element;
++count;
cumulativeValue += value;
return value;
});
, sayısı ve blok kapsamı başlangıcında ortak değişken virgülle ayrılmış listesinde cumulativeValue blok içinde tadil edilmiş, bu nedenle de dahildir.
Bu sözdizimi daha temiz görünüyor ve daha sonra bildirmediğiniz ancak kapsamda olduğunuz değişkenleri değiştirebileceğinizi varsayalım. Ancak, bunu başka bir yerde görmedim ve xCode derleyicisi temel bloğumu beğenmiyor. Bu meşru sözdizimi mi?
Çok ilginç! Tarih için teşekkürler –
Yani, sözdizimini formüle etmeden önce belgelerin neden yazıldığına dair bir fikrin var mı? – CodaFi
Dokümantasyon folk, bir şeyi nasıl tutarlı bir şekilde açıklayacağını anlayamazsa, tasarımın ciddi şekilde hatalı olduğuna dair kesin bir işarettir, bu nedenle tasarım sürecinin erken aşamalarında yer alırlar. Bu belgeler ilk olarak, blokların ilk ilan edildiği WWDC için üretilmiş olabilir. – bbum