Objective-C - протокол смешивания и категория - PullRequest
0 голосов
/ 08 мая 2018

В Swift вы можете сделать что-то вроде этого:

protocol Archivable: class {
}

extension UserDefaults: Archivable { }

Есть ли в Objective-C эквивалент, чтобы NSUserDefaults соответствовал протоколу?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Да, вы можете создать новую категорию NSUserDefaults, подтвердить свой протокол и реализовать методы протокола в файле категории.

0 голосов
/ 09 мая 2018

Да, вы можете сделать это в Objective-C

@protocol Archivable

- (void)doSomething;

@end

@interface NSUserDefaults (Test)<Archivable>

@end

@implementation NSUserDefaults (Test)

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

@end

Попробуйте использовать

[NSUserDefaults.standardUserDefaults doSomething];

Результат

Сделай что-нибудь

...