これは初心者の質問です。次のようなオブジェクトがあります(例MyObject.h
)。
#import <Foundation/Foundation.h>
#import "JSONModel.h"
@protocol MyObject
@end
@interface MyObject : JSONModel
@property (strong,nonatomic) NSString* name;
@end
そして、実装は次のようになります (eg MyObject.m
)。
#import "MyObject.h"
@implementation MyObject
@end
他の場所のコードでは、次のように a を定義NSMutableArray
します。
NSMutableArray<MyObject>* list;
list = [[NSMutableArray alloc] init];
そして、私はこの警告を受け取ります。
「NSMutableArray 」から「 NSMutableArray<MyObject>」を割り当てる互換性のないポインター型
ジェネリクスはコレクション用のObjective-Cによってすぐにサポートされていないことを知っています(そして、それは私がここでやろうとしていることでもありません)が、従おうとしているので、私NSMutableArray
はそのようなプロトコルで定義されています「JSONModel の」GitHub ページの例。MyObject
コードは引き続きコンパイルされますが、上記の警告が表示されます。どうすれば
- 警告を消す、または
NSMutableArray
正しく割り当て/初期化しますか?
アップデート:
その警告を取り除く方法を引き続き検索しましたNSMutableArray
が、次のようなものを作成すると、警告が消えます (プロジェクトはエラーなしでコンパイルされます)。単体テストを作成し、期待どおりに動作するかどうかを確認します。
list = (id)[NSMutableArray new];