這是一個新手問題。我有一個如下所示的對象(例如MyObject.h
)。我該如何爲協議分配一個NSMutableArray?
#import <Foundation/Foundation.h>
#import "JSONModel.h"
@protocol MyObject
@end
@interface MyObject : JSONModel
@property (strong,nonatomic) NSString* name;
@end
然後執行如下所示(例如MyObject.m
)。
#import "MyObject.h"
@implementation MyObject
@end
在其他地方我的代碼,我再定義一個NSMutableArray
如下。
NSMutableArray<MyObject>* list;
list = [[NSMutableArray alloc] init];
我得到這個警告。
不兼容的指針類型從 '的NSMutableArray'
分配 '的NSMutableArray <爲MyObject > ' 我從仿製知道不支持外的現成的收藏集的Objective-C(這也不是我在這裏要做的),但我的NSMutableArray
被定義爲這樣的協議MyObject
,因爲我是trying to follow the examples from "JSONModel's" GitHub page。
該代碼仍在編譯,但上述警告。我如何
- 使警告消失,或
- 分配/初始化正確
NSMutableArray
?
更新:
我繼續尋找如何擺脫這一警告的,而且事實證明,如果我創建一個NSMutableArray
像下面,警告消失(和項目編譯沒有錯誤)。我會寫一個單元測試,看看它是否按預期工作。
list = (id)[NSMutableArray new];
您認爲''完成了什麼? –
我很驚訝它沒有給出錯誤信息。只有協議應該用在<>中,而不是類。 – Bedford
但該協議已實施。 '@protocol MyObject @ end' – Gonzo