让我们想象一下Person
等级:
@interface Person : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic) NSInteger age;
@property (nonatomic) long long identifier;
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age identifier:(long long)identifier;
@end
@implementation Person
+ (instancetype)personWithName:(NSString *)name age:(NSInteger)age identifier:(long long)identifier {
Person *person = [[self alloc] init];
person.name = name;
person.age = age;
person.identifier = identifier;
return person;
}
@end
然后,您可以创建的人,像这样的数组:
NSArray *people = @[[Person personWithName:@"Rob" age:32 identifier:2452323],
[Person personWithName:@"Rachel" age:29 identifier:84583435],
[Person personWithName:@"Charlie" age:4 identifier:389433]];
然后,您可以提取人的名称的数组,像这样:
NSArray *names = [people valueForKey:@"name"];
NSLog(@"%@", names);
这将产生:
2013-09-27 14:57:13.791 MyApp[33198:a0b] (
Rob,
Rachel,
Charlie
)
如果你想提取关于第二个Person
的信息,那将是:
Person *person = people[1];
NSString *name = person.name;
NSInteger age = person.age;
long long identifier = person.identifier;
如果你想改变第三人的年龄,这将是:
Person *person = people[2];
person.age = 5;
或者,如果你想通过数组迭代提取的信息,你可以做到这一点,太:
for (Person *person in people) {
NSString *name = person.name;
NSInteger age = person.age;
long long identifier = person.identifier;
// now do whatever you want with name, age, and identifier
}
来源
2013-09-27 18:58:55
Rob
什么是“OBJ_C”? – 2013-09-27 18:21:51
objective-c = obj -c – Zaur
@userXXX现在标题更好。 (我们不理解堆栈溢出的所有上限。) – 2013-09-27 18:23:32