Muh*_*qas 2 iphone objective-c nsarray ios7
NSArray *pets = [NSArray arrayWithObjects:@"Cat", @"Dog", @"Rat", nil];
Run Code Online (Sandbox Code Playgroud)
//如何在@"Rat"对象之后将int值456存储在此数组中,+ pet的类型为NSString,因此它不会在while循环中生成错误... ??? 那么我应该使用哪种数据类型来表示可以表示所有nextObject值/对象的宠物指针
NSEnumerator *enumerator = [pets objectEnumerator];
NSString *pet;
while (pet = [enumerator nextObject]) {
NSLog(@"Pet: %@", pet);
}
Run Code Online (Sandbox Code Playgroud)
由于NSArray只保存对象而无法添加整数,因此需要将其包装在一个NSNumber.
NSArray *pets = @[@"Cat", @"Dog", @"Rat", @456];
Run Code Online (Sandbox Code Playgroud)
这将适用于您的示例中的循环,但如果要调用任何NSString方法,则需要检查类型:
for(id pet in pets) {
if(![pet isKindOfClass:[NSString class]) {
// It not a string, just continue to the next object.
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
或者一个循环:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |