.....................
环境:OSX10.8、Xcode4.5 参考: https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual /KeyValueCoding/Articles/SearchImplementation.html#//apple_ref/doc/uid /20000955-CJBBBFFA 如果 countOf 方法和其他两种可能方法中的至少一种是 找到,一个响应所有 NSArray 方法的集合代理对象是 回来。每个发送到集合代理对象的 NSArray 消息都会产生 在 countOf、objectInAtIndex: 和 AtIndexes 的某种组合中:消息被 发送到 valueForKey: 的原始接收者。
我的步骤:
1)在 MyObject.h 中创建一个property
for 。NSArray* arrs
2) 在 MyObject.m
@implementation MyObject
- (void)setArrs:(NSArray*)arrs
{ _arrs=arrs; }
- (NSUInteger) countOfArrs
{ NSLog("Im here");
return 0;}
- (id) objectInArrsAtIndex:(NSUInteger)index
{ NSLog(@"objectInArrs");
return nil;
}
@end
3) 测试代码
MyObject* obj=[[MyObject alloc] init];
NSArray* arr=[NSarray arrayWithObjects:@"abc",nil];
[obj setArrs:arr];
NSLog(@"%d",[[obj valueForKey:@"arrs"]count]);
NSLog(@"%@",[[obj valueForKey:@"arrs"] objectobjectAtIndex:0])
我的问题:
我希望它会自动调用countOfArrs
,objectInArrsAtIndex:
但是它没有。它所做的只是返回正常的 NSArray,以 1 和“abc”显示计数。
我没有找到任何有用的样本,或者我误解了医生所说的内容,不是吗?
我的语言不是英语,希望我没有提出任何雄心勃勃的问题。