2012-06-12 3 views
0

У меня странное поведение с Xcode (4.3.2) и устаревшими предупреждениями, я хотел бы понять, почему. Кажется, что устаревшие предупреждения срабатывают только по определенным методам. Например (оба метода являются устаревшими):Xcode и устаревшие предупреждения не всегда работают

[[UITableViewCell alloc] initWithFrame:CGRectMake(0, 0, 0, 0) reuseIdentifier:@"Cell"]; 

Компилятор предупредит (Правильно), что метод является устаревшим. Но:

[self presentModalViewController:viewController animated:YES]; 

не вызывает предупреждение. Зачем? :-)

ответ

1

Проверьте в документации разработчика, вы получите как -

1- Это осуждается currently-

// Frame is ignored. The size will be specified by the table view width and row height.

- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_NA,__MAC_NA,__IPHONE_2_0,__IPHONE_3_0); 

2- Это устареет в ближайшее время.

// Display another view controller as a modal child. Uses a vertical sheet transition if animated.This method has been replaced by presentViewController:animated:completion: // It will be DEPRECATED, plan accordingly.

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated; 

Надеется, что это очищает, почему вы получаете предупреждение в первом, а не во втором.

+0

ОК, спасибо, я проверял только онлайн-документы (которые только говорят «устарели»), но не в .h :-) – LombaX

Смежные вопросы