Objective-C - 混合协议和类别

时间:2018-05-08 17:20:15

标签: ios objective-c swift

在Swift中,你可以这样做:

protocol Archivable: class {
}

extension UserDefaults: Archivable { }

Objective-C中是否有等效的NSUserDefaults符合协议?

2 个答案:

答案 0 :(得分:0)

是的,您可以在Objective-C

中完成
@protocol Archivable

- (void)doSomething;

@end

@interface NSUserDefaults (Test)<Archivable>

@end

@implementation NSUserDefaults (Test)

- (void)doSomething {
  NSLog(@"Do something");
}

@end

尝试使用

[NSUserDefaults.standardUserDefaults doSomething];

结果

  

做点什么

答案 1 :(得分:0)

是的,您可以创建一个新类别的NSUserDefaults,并在类别文件中确认您的协议并实现协议方法。