...Bloklar döngüyü adlandırma kuralından koruyor mu? Aşağıdaki davranış bulmak için şaşırıyorum
@interface Foo : NSObject
- (void)addBar:(id)aBar withCompletion:(void(^)(void))completion;
@end
@interface AwesomeClass : NSObject
@property (strong, nonatomic) Foo *foo;
- (void)doSomethingWithBar:(id)bar;
@end
@implementation AwesomeClass
- (void)doSomethingWithBar:(id)bar
{
[self.foo addBar:bar withCompletion:^{
NSLog(@"%@", self.foo);
}];
}
Xcode 4.6.1 yılında şiddetle bu blokta "Yakalama 'öz' bir yol açması muhtemel olduğunu -doSomethingWithBar:
uygulanmasında bir uyarı olsun döngüsü koru. " Ben -setupBar:withCompletion:
için yöntemin -addBar:withCompletion:
arasında adını planı ayrı eğer
Ancak bu uyarı uzağa gider. Görünen o ki benim sürprizim, Objective-C adlandırma kurallarına dair bilgimde bir boşluk var.
Yeniden derlenmeyi deneyin. Uyarı, Xcode'un aptalca olduğu ve LLVM'nin son kez üretilen uyarıları ortadan kaldırdığı kadar "gitmekten" vazgeçmiyor – CodaFi