gpt4 book ai didi

iphone - NSArray如何存储多类型数据?

转载 作者:行者123 更新时间:2023-12-03 21:01:26 27 4
gpt4 key购买 nike

NSArray *pets = [NSArray arrayWithObjects:@"Cat", @"Dog", @"Rat", nil];

//如何在 @"Rat"对象之后将 int 值 456 存储在这个数组中,+ pet 是 NSString 类型,所以它不会在 while 循环中生成错误...???那么我应该使用什么数据类型作为可以表示所有 nextObject 值/对象的 pet 指针

NSEnumerator *enumerator = [pets objectEnumerator];
NSString *pet;

while (pet = [enumerator nextObject]) {
NSLog(@"Pet: %@", pet);
}

最佳答案

由于 NSArray 只能保存对象,因此无法添加整数,因此您需要将其包装在 NSNumber 中。

NSArray *pets = @[@"Cat", @"Dog", @"Rat", @456];

这将适用于您示例中的循环,但如果您想调用任何 NSString 方法,您将需要检查类型:

for(id pet in pets) {

if(![pet isKindOfClass:[NSString class]) {
// It not a string, just continue to the next object.
continue;
}
}

或者 while 循环:

id pet;
NSEnumerator *enumerator = [pets objectEnumerator];
while (pet = [enumerator nextObject]) {
if(![pet isKindOfClass:[NSString class]) {
// It not a string, just continue to the next object.
continue;
}
}

关于iphone - NSArray如何存储多类型数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24484726/

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