Как мне обойти устаревшие свойства / методы с (возможно, не объектными) аргументами? - PullRequest
1 голос
/ 25 октября 2009

Моя цель - обеспечить совместимость версий 3.x SDK для UIImagePickerController и его свойства allows(Image)Editing.

// SDK 2.0 to 3.0
myImagePickerController.allowsImageEditing = YES;

// SDK 3.1
myImagePickerController.allowsEditing = YES;

В некоторых исследованиях раскрываются некоторые объективные подходы, но что считается наилучшей практикой для обработки устаревших методов?

  1. performSelector или NSInvocation для необъектных аргументов

  2. #define заход на посадку

  3. Любые другие рекомендуемые стратегии ...

Ответы [ 2 ]

9 голосов
/ 26 октября 2009
NSString * key = @"allowsEditing";
if ([myImagePickerController respondsToSelector:@selector(setAllowsImageEditing:)]) {
  key = @"allowsImageEditing";
}
[myImagePickerController setValue:[NSNumber numberWithBool:YES] forKey:key];
0 голосов
/ 26 октября 2009

оберните их в блок @try @catch, чтобы обеспечить работоспособность независимо от устаревшего метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...