biz şöyle, muhafaza döngüyü kırmak için bir bloğunun içinde zayıf bir başvuru kullanmanız gerekir bildiği gibi: korumakFark
__weak id weakSelf = self;
[self doSomethingWithABlock:^() {
[weakSelf doAnotherThing];
}]
Ancak zayıf referanslar bozamam NSTimer
tarafından neden olunan çevrim.
__weak id weakSelf = self;
timer = [NSTimer scheduledTimerWithTimeInterval:30.0f
target:weakSelf
selector:@selector(tick)
userInfo:nil
repeats:YES]; // No luck
Fark nedir? Zamanlayıcı hala hedefi nasıl tutabilir?
,: Daha önce iOS sürümlerini desteklemek zorunda yoksa blok zayıf referans modelini keyfini böylece
Not
scheduledTimerWithTimeInterval
şimdi, iOS 10 blok tabanlı varyasyonu vardır ve "Zayıf" kelimesini tanımlarken genellikle "id" yerine "typeof (self)" kullanırız. – Rob