Blok Bildirgesi Sözdizimi Listesi
Objective C blok sözdizimi (ve aslında C sanırım) herkesin bildiği gibi yersiz. Bağımsız değişken olarak geçirerek blok typedef
ıng daha farklı görünüyor bugün ivan'ın, blok olarak ilan daha farklı bloklar görünüyor.
Hızlı başvuru için el üstünde tutmak olabileceğini bildirimi blok sözdizimi kapsamlı bir listesi var mı?
CEVAP
Blok Bildirgesi Sözdizimi listesi
Boyunca izin verin
return_type
/etc nesne/ilkel türü. geri dönmek için (genelliklevoid
)blockName
yaratıyorsun blok değişken adı olabilirvar_type
türü/ilkel/etc nesne. bağımsız değişken olarak geçmek için (boş bırakın, herhangi bir parametre için)varName
verilen parametre bir değişken adı olabilir
Ve unutmayın istediğiniz kadar çok sayıda parametre oluşturabilirsiniz.
Değişkenler olarak engeller
Belki de en ortak Bildirgeye için.
return_type (^blockName)(var_type) = ^return_type (var_type varName)
{
// ...
};
Özellikleri olarak engeller
Çok değişken bloklar bildirmek gibi, ancak kurnazca farklı.
@property (copy) return_type (^blockName) (var_type);
Parametre olarak engeller
Bu farklı olduğunu unutmayın "Bağımsız Blok"; bu durumda, blok bir tartışma isteyen bir yöntem ilanı demektir.
- (void)yourMethod:(return_type (^)(var_type))blockName;
Bağımsız olarak engeller
Bu farklı olduğunu unutmayın "Parametreleri gibi Blok"; bu durumda, bir anonim blok blok bir tartışma isteyen bir yöntem arıyorsun. Eğer zaten bir blok bildirilen değişkenin, bağımsız değişken olarak değişken adının geçmesi için yeterlidir.
[someObject doSomethingWithBlock: ^return_type (var_type varName)
{
//...
}];
Anonim Blok
Bu işlevsel bir anonim blok, ancak değişkenler blok atama sözdizimi sadece değişken isimsiz bir blok ayarlayın.
^return_type (var_type varName)
{
//...
};
typedef
Blok
Bu blokların bildirimi sırasında herhangi bir diğer sınıf adı gibi başvurulan kısa bir ad ayarlamak için izin verir.
typedef return_type (^blockName)(var_type);
Daha sonra standart blok bildirimi sözdizimini, sadece yerine yerine blockName
kullanmak için.
Inline Blok
Bu tartışmalı bir blok daha az yararlı bir kullanımı, ama yerini yine de olabilir. Başka bir deyişle, bir blok isimsiz bir blok hemen sonra örnekleme denir.
^return_type (var_type varName)
{
//...
}(var);
Inline blok kapsamı mahsup için öncelikle yararlıdır, ve kod brace ile sınırlandırılmış basit parçalar eşdeğer kabaca.
{
//...
}
Özyinelemeli Engeller
Bu, kendisinden bir engelleme, aramalar ve GCD aramalar sırasında kullanılan bir döngü oluşturarak arama yapabilirsiniz. Bu örnekleme yöntemi ARC korumak döngüsü ücretsiz.
__block return_type (^blockName)(var_type) = [^return_type (var_type varName)
{
if (returnCondition)
{
blockName = nil;
return;
}
// ...
} copy];
blockName(varValue);
Blok Dönüyor
Bir yöntemi bir blok dönebilirsiniz
- (return_type(^)(var_type))methodName
{
// ...
}
bir fonksiyonu olarak, eğer biraz garip.
return_type (^FunctionName())(var_type)
{
// ...
}
Ekler
Eğer bir şey özledim, lütfen bana yorum olarak bildirin, ve araştırma/onları ekleyeceğim.
Oh, ve Hızlı
blockName = (varName: var_type) -> (return_type)
Neredeyse dili bir özelliği yok gibi.
'in ne deyimsel kısa bir python l...
Nasıl tamir&; türü ihtiyaç Listesi ifa...
Güvenli ev dizini değiştirin özellik l...
SQLite - SELECT TOP sözdizimi hatası...
Bu font steno sözdizimi ne demek?...