У меня есть утечка со следующим кодом, который накапливается!Почему у меня есть эта проблема?Это связано с тем, что копирование свойств внутри NSString.Есть ли способ обойти это?
@property (nonatomic, copy) NSString *reg;
@property (nonatomic, copy) NSString *reg2;
@property (nonatomic, copy) NSNumber *altitude;
@property (nonatomic, copy) NSNumber *heading;
-(void)updateTitles{
self.title=[NSString stringWithFormat:@"%@ %@",self.reg,self.reg2];
self.subtitle = [NSString stringWithFormat:@"%@ft %@°",self.altitude,self.heading];
}
Утечка составляет 50% при каждой настройке свойств внутри этого метода.
ОБНОВЛЕНИЕ
Оказывается, это было вызвано в конце концов из блока.Чтобы попытаться обойти это, я сделал следующее.
Следующие работы, но все еще утечки, теперь ясно, что «я» сохраняется.работа дает нераспознанный селектор по методу setTitle !!!!!
-(void)updateTitles{
__block NSString *thisTitle = [[NSString alloc] initWithFormat:@"%@ %@",self.reg1,self.reg2];
__block NSString *subTitle = [[NSString alloc] initWithFormat:@"%@ft %@°",self.altitude,self.heading];
__block __typeof__(self) blockSelf = self;
dispatch_queue_t mainQueue = dispatch_get_main_queue();
dispatch_async(mainQueue,^(){
[blockSelf setTitle:thisTitle];
[blockSelf setSubtitle:subTitle];
[thisTitle release];
[subTitle release];
});
}