Переменные недоступны, как только вы достигнете конца области (я не знаю, являются ли они нулевыми или выпущенными, я просто знаю, что вы не можете их использовать).
Что вы хотите сделать, это A) сохранить это значение в постоянном хранилище или B) создать постоянную переменную.
A) Установить объект в хранилище (в этом случае NSUserDefaults, потому что это очень просто:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
prefs = [setObject:checkedData forKey:@"checkedData"];
Затем, чтобы проверить объект так, как вы хотели, вы можете сделать это:
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
<b>if([[prefs objectForKey:@"checkedData"] compare: indexPath]== NSOrderedSame)</b>{<br>cell.AccessoryType = UITableViewCellAccessoryCheckMark;<br>}
B) Сохранить объект как постоянную переменную:
В вашем .h:
@interface ... : ...{
}
@property(nonatomic, retain) NSIndexPath *checkedData;
@end
В .м:
@implementation
@synthesize checkedData;
@end
Теперь, чтобы установить эту переменную:
self.checkedData = indexPath;
Для проверки:
<b>if([self.checkedData compare:indexPath] == NSOrderedSame)</b>{<br>cell.accessoryType = UITableViewCellAccessoryTypeCheckMark;<br>}
Там действительно не будет большой разницы, вам решать, чего вы хотите. Если вы используете NSUserDefaults, имейте в виду, что данные сохраняются при запуске. Если вы не хотите этого, но хотите использовать его, вы должны очистить объект при закрытии приложения: [prefs removeObjectForKey:@"checkedData"];
Счастливого кодирования,
Зейн