0
배열의 변경을 감지하기 위해 KVC 호환 가변 배열을 만들려고합니다. 내 헤더 파일에서변경 가능한 배열에 KVC 접근자를 사용하는 방법 Objective-C
는 내가 가진 : 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
전형적인 접근 방법을 문서에 표시된. 내가 주 파일의 접근 방법을 구현할 때,이 다음과 같은 기능은 선택기로 호출을 인식 해달라고 :
@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];
}
오류는 "NSArray를위한 눈에 보이는 @interface는"선택기를 선언하지 : 셀렉터 각 '' 여기 함수에서. 나는 왜이 선택자가 존재하지 않는지 혼란스럽고 확신하지 못한다. 도움을 주시면 감사하겠습니다. 헤더 파일에있는 다른 4 개의 함수는 ok입니다.
나는 여전히 "NSArray를위한 눈에 보이는 @interface 선언하지 선택"을 얻을 수 있습니다. – Dan68am
남자, NSArutableArray를 작성했지만 NSArray는 작성하지 않았습니다. NSArray 유형에 대해 여전히 오류가 발생합니다. 당신의 objectArray가 NSArray처럼 정의 된 모든 장소를 고려하십시오 - .h 파일의 @interface, .m 파일의 클래스 확장 - -removeObjectsAtIndexes를위한 NSMutableArray가되어야합니다 : –