amb*_*ght 4 objective-c foundation
我经常发现自己在NSArray中将对象转换为我的类型,当我想用点符号(而不是getter)访问它们的特定属性而不创建额外的变量.
是否有任何很酷的功能或技巧告诉objective-c我要将哪一类对象存储到NSArray中,以便编译器将数组中的对象视为我的类型,而不是id?
如果你的意思是你做的事情如下:
x = ((MyClass *)[myArray objectAtIndex:2]).property1;
Run Code Online (Sandbox Code Playgroud)
您可以将其拆分为两行以便于阅读:
MyClass *myObject = [myArray objectAtIndex:2]
x = myObject.property1;
Run Code Online (Sandbox Code Playgroud)
如果您确实设置了第一种情况,那么您可以在其上创建一个NSArray具有您的类型访问器的类别:
@implementation NSArray (MyCategory)
- (MyClass *)myClassObjectAtIndex:(NSUInteger)index
{
return [self objectAtIndex:index];
}
@end
Run Code Online (Sandbox Code Playgroud)
然后你可以像你想的那样使用它:
x = [myArray myClassObjectAtIndex:2].property1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |