0

配列の変更を検出するために、KVC 準拠の可変配列を作成しようとしています。

私のヘッダーファイルには次のものがあります:

@interface ObjectDataModel : NSObject{
@private
    NSMutableArray *objectArray;
}

@property (nonatomic, strong) NSArray *objectArray;

- (NSArray *)objectArray;
- (NSUInteger)objectArrayCount;
- (id)objectInFilePathsArrayAtIndex:(NSUInteger)index;
- (id)objectArrayAtIndexes:(NSIndexSet *)indexes;
- (void)insertObject:(id)val inObjectArrayAtIndex:(NSUInteger)index;
- (void)insertObjectArray:(NSArray *)array atIndexes:(NSIndexSet *)indexes;
- (void)removeObjectFromObjectArrayAtIndex:(NSUInteger)index;
- (void)removeObjectArrayAtIndexes:(NSIndexSet *)indexes;
- (void)replaceObjectInObjectArrayAtIndex:(NSUInteger)index withObject:(id)object;
- (void)replaceObjectArrayAtIndexes:(NSIndexSet *)indexes withObjectArray:(NSArray *)array;



@end

ドキュメントに示されている KVC の一般的なアクセサ メソッド。メイン ファイルにアクセサー メソッドを実装すると、次の関数はセレクターの呼び出しを認識しません。

@synthesize filePathsArray = _filePathsArray;

- (id)init
{
    self = [super init];
    if (self) {

    }
    return self;
}

//
- (void)insertObject:(id)val inObjectArrayAtIndex:(NSUInteger)index
{
    [self.objectArray insertObject:val atIndex:index];
}

- (void)insertObjectArray:(NSArray *)array atIndexes:(NSIndexSet *)indexes{
    [self.objectArray insertObjects:array atIndexes:indexes];
}

- (void)removeObjectFromObjectArrayAtIndex:(NSUInteger)index{
    [self.objectArray removeObjectAtIndex:index];
}

- (void)removeObjectArrayAtIndexes:(NSIndexSet *)indexes{
    [self.objectArray removeObjectsAtIndexes:indexes];
}

- (void)replaceObjectInObjectArrayAtIndex:(NSUInteger)index withObject:(id)object{
    [self.objectArray replaceObjectAtIndex:index withObject:object];
}

- (void)replaceObjectArrayAtIndexes:(NSIndexSet *)indexes withObjectArray:(NSArray *)array{
    [self.objectArray replaceObjectsAtIndexes:indexes withObjects:array];
} 

エラーは、"no visible @interface for NSarray" declares selector:'' で、関数内の各セレクターについてここにあります。これらのセレクターが存在しない理由がわかりません。助けていただければ幸いです。ヘッダー ファイルの他の 4 つの関数は問題ありません。

4

1 に答える 1