Я получаю UITableViewCell, которому принадлежит UIButton:
-(void)buttonHandler:(UIButton *)button {
OrderCell *cell = [[button superview] superview];
NSLog(@"cell.item = %@", cell.item.text);
И он отлично работает во всем до iOS 7. Но дает мне:
[Элемент UITableViewCellScrollView]: нераспознанный селектор отправлен экземпляру 0x17ae2cf0
если я запускаю приложение в iOS 7. НО, если я это делаю:
-(void)buttonHandler:(UIButton *)button {
OrderCell *cell = [[[button superview] superview] superview];
NSLog(@"cell.item = %@", cell.item.text);
Тогда это работает в iOS 7, но не раньше?!?!?!
Я обхожу проблему, делая это:
OrderCell *cell;
if([[[UIDevice currentDevice] systemVersion] isEqualToString:@"7.0"])
cell = [[[button superview] superview] superview];
else
cell = [[button superview] superview];
NSLog(@"cell.item = %@", cell.item.text);
но WTF происходит!? кто-нибудь знает, почему это произошло?
Спасибо!
UITableViewCell
. Очевидно, что эта структура изменилась в iOS 7. Есть гораздо более безопасные способы делать то, что вы хотите. И ваш новый код сломается под iOS 7.1 и iOS 8. - person rmaddy   schedule 23.09.2013