1

My goal is to achieve compatibility across 3.x SDK versions for UIImagePickerController and it's allows(Image)Editing property.

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

// SDK 3.1
myImagePickerController.allowsEditing = YES;

Some research reveals some objective-c approaches, but what is considered best practice for handling deprecated methods?

  1. performSelector or NSInvocation for non-object arguments

  2. #define approach

  3. Any other recommended strategies...

Community
  • 1
  • 1
ohhorob
  • 11,695
  • 7
  • 41
  • 50

2 Answers2

9
NSString * key = @"allowsEditing";
if ([myImagePickerController respondsToSelector:@selector(setAllowsImageEditing:)]) {
  key = @"allowsImageEditing";
}
[myImagePickerController setValue:[NSNumber numberWithBool:YES] forKey:key];
Dave DeLong
  • 242,470
  • 58
  • 448
  • 498
-1

wrap them in a @try @catch block to ensure a working feature regardless of a deprecated method.

coneybeare
  • 33,113
  • 21
  • 131
  • 183