gpt4 book ai didi

iphone - 数组对象的属性(Objective-c)

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:00 28 4
gpt4 key购买 nike

我有一个 NSObject 类,它的名字是 test.
test 类有 3 个属性。 姓名, 年龄, id;
我在测试课上有 3 个对象。 s, b, c.
我将所有对象放入数组:NSArray *ary = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
我正在尝试访问该数组中的属性数据。这意味着我必须在循环(for 循环或 while 循环)中读取、写入数组中对象的属性。
我在网上找了很多资料。我接近做的方法是:

[[ary objectAtIndex:0] setName:@"example"];

此方法适用于 setter 和 getter。但它确实给出了一个可怕的错误。有什么“可行”的方法吗?
谢谢...

最佳答案

让我们想象一个 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
}

关于iphone - 数组对象的属性(Objective-c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057544/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com