代码之家  ›  专栏  ›  技术社区  ›  ohhorob

如何处理带有(可能是非对象)参数的不推荐使用的属性/方法?

  •  1
  • ohhorob  · 技术社区  · 16 年前

    我的目标是实现uiimagepickercontroller的3.x sdk版本之间的兼容性,它是 allows(Image)Editing 财产。

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

    一些研究揭示了一些objective-c方法,但是 处理不推荐的方法的最佳实践是什么?

    1. performSelector NSInvocation 对于非对象参数

    2. #define 方法

    3. 其他推荐的策略…

    2 回复  |  直到 16 年前
        1
  •  9
  •   Dave DeLong    16 年前
    NSString * key = @"allowsEditing";
    if ([myImagePickerController respondsToSelector:@selector(setAllowsImageEditing:)]) {
      key = @"allowsImageEditing";
    }
    [myImagePickerController setValue:[NSNumber numberWithBool:YES] forKey:key];
    
        2
  •  -1
  •   coneybeare    16 年前

    把它们包在 @try @catch 块以确保工作功能,而不考虑已弃用的方法。