ios - Objective-C - 混合协议(protocol)和类别

标签 ios objective-c swift

在 Swift 中,你可以这样做:

protocol Archivable: class {
}

extension UserDefaults: Archivable { }

Objective-C 中是否有等效的方法可以使 NSUserDefaults 符合协议(protocol)?

最佳答案

是的,你可以在 Objective-C 中做到这一点

@protocol Archivable

- (void)doSomething;

@end

@interface NSUserDefaults (Test)<Archivable>

@end

@implementation NSUserDefaults (Test)

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

@end

尝试使用

[NSUserDefaults.standardUserDefaults doSomething];

结果

Do something

关于ios - Objective-C - 混合协议(protocol)和类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239091/

相关文章:

ios - Xamarin.ios Settings.bundle Root.plist 丢失

objective-c - 如何在 objective-c 中引用swift app delegate

Swift 中的字符串插值

objective-c - Xcode 警告 : Unused Entity Issue: Unused Variable

ios - 解析和 Facebook SDK - 发送到类的无法识别的选择器

ios - XCode 5.0.2 中未显示 NSLog 输出

objective-c - 是否可以知道鼠标附近显示的是什么文本?

ios - 在不使用 segue 的情况下单击确定警报按钮后导航到另一个 View

swift - SourceView 和 SourceRect 被贬值了吗?

ios - UICollectionView 功能问题