Gee*_*ldz 4 arrays iphone objective-c
我有一个数组,将电话号码的每个数字存储为字符串.然后我传递电话号码数字字符串作为参数objectAtIndex:这样的方法NSArray:[myArray objectAtIndex: [myString intValue]];编译器说我需要转换字符串,但我已经这样做了.怎么了?
这是我的实际代码行:
NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:[charHolder objectAtIndex:[[phoneNumDigits objectAtIndex:i]intValue]]];
Run Code Online (Sandbox Code Playgroud)
这是错误的位置,phoneNumDigits是电话号码的每个数字charHolder的数组,是包含与每个数字相关联的字母数组的数组.
你的问题对我来说有点混乱.以下是我理解你想做的事情:
你有一个NSArray名字phoneNumDigits.该数组包含一些NSString对象.每个字符串类似于@"1"或@"4"代表电话号码的单个数字.
现在,您希望将每个数字字符串转换为int或NSInteger希望将这些整数存储在另一个数组中.
如果我理解正确,这是我的答案:
你无法完全按照自己的意愿行事,因为你不能把像a int或a 这样的简单数据类型float放入NSArray.
这就是包装类的原因NSNumber.你可以打包一个简单int的NSNumber并将其存储NSNumber在一个NSArray.
所以,从让你的数字串phoneNumDigits入tmp数组,你可以使用此代码:
for (NSString *digitAsString in phoneNumDigits)
{
NSNumber *digitAsNumber = [NSNumber numberWithInt:[digitAsString intValue]];
[tmp addObject:digitAsNumber];
}
Run Code Online (Sandbox Code Playgroud)
要使用inttmp,NSArray你可以使用
int digit = [[tmp objectAtIndex:idx] intValue];
Run Code Online (Sandbox Code Playgroud)
我希望这会有所帮助,但我不确定我理解你想在这里做什么.我完全可以忽略这一点.也许你可以分享一些代码.