Как я могу создать универсальное свойство в Objective-C? - PullRequest
1 голос
/ 29 апреля 2019

В Swift мы можем создать универсальное свойство, например:

class MyClass<T: MyOtherType where T: MyProtocol> {
    var property: T
}

Как это возможно в Objective-C?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2019

Предполагая, что:

@interface MyOtherType : NSObject

// Some code 

@end

@protocol MyProtocol <NSObject>

// Some code

@end

Вы можете сделать это:

@interface MyClass : NSObject

@property MyOtherType <MyProtocol> * property;

@end

Синтаксис Class <Protocol>.

На самом деле это будет что-то вроде Class & Protocol типа Swift 4+.

0 голосов
/ 30 апреля 2019

Вот ответ.

@interface myParentView< T: parentModel*> :UIView
 @property T myObject; // myObject is object of parentModel
@end

Во всех подклассах:

@interface myChildViewOne :myParentView<childModel>
// Now myObject is object of childModel
@end

Obj C имеет сложный синтаксис, но мы можем получить общее свойство, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...