'AppearanceWhenContainedIn'已弃用

时间:2016-01-30 03:10:40

标签: objective-c cocoapods

我最近安装了一个新的Cocoapod ChameleonFramework,然后我就在框架中遇到错误。它在告诉我

  

'appearanceWhenContainedIn:'已弃用:首先在iOS中弃用   9.0 - 使用+ appearanceWhenContainedInInstancesOfClasses:而不是

我真的不知道该怎么做,而且这段代码是用Objective-C编写的,我对Objective-C的了解并不多,我只知道Swift。因此,任何帮助将不胜感激。以下是导致错误的代码:

#import "UIAppearance+Swift.h"

@implementation UIView (UIViewAppearance_Swift)

+ (instancetype)appearanceWhenContainedWithin: (NSArray *)containers {

NSUInteger count = containers.count;
NSAssert(count <= 10, @"The count of containers greater than 10 is not supported.");

return [self appearanceWhenContainedIn:
        count > 0 ? containers[0] : nil,
        count > 1 ? containers[1] : nil,
        count > 2 ? containers[2] : nil,
        count > 3 ? containers[3] : nil,
        count > 4 ? containers[4] : nil,
        count > 5 ? containers[5] : nil,
        count > 6 ? containers[6] : nil,
        count > 7 ? containers[7] : nil,
        count > 8 ? containers[8] : nil,
        count > 9 ? containers[9] : nil,
        nil];
}

@end

这似乎是一个非常简单的问题,但我真的不太了解Objective-C,所以解决这个问题的任何帮助都会帮助我很多!

2 个答案:

答案 0 :(得分:0)

编写这个CocoaPod的人是为了让它保持最新;联系他们。同时,这不是你的代码,所以什么都不做。代码现在可以正常工作,因此不需要执行任何操作。

答案 1 :(得分:0)

当然,不建议您更改您不认识的人的代码。但是最终 有人面临此警告:

只需将appearanceWhenContainedIn:替换为appearanceWhenContainedInInstancesOfClasses:

例如

// old code
[[UIScrollView appearanceWhenContainedIn:[self class], nil] 
setBackgroundColor:[UIColor whiteColor]];

// new code
[[UIScrollView appearanceWhenContainedInInstancesOfClasses:@[[self class]]] 
setBackgroundColor:[UIColor whiteColor]];