我想要添加到每个迭代我有2个双打,NSMutableArray但我似乎无法实现它.
NSMutableArray *touchArray = [[NSMutableArray alloc]init];
[touchArray addObject:[NSString stringWithFormat:@"%d", "%d", tapTotal, touchBegin]];
NSLog(@"array: %@", touchArray);
Run Code Online (Sandbox Code Playgroud)
控制台打印14108作为数组的值,我不知道它来自何处,它不是变量的值.并且XCode在前两行抱怨,"touchArray'的本地声明隐藏了实例变量.我知道我至少做了一件事wronl
谢谢你的帮助,罗伯特
首先,'本地声明问题':你已经在其他地方声明了touchArray,因此你不需要重新声明,只需(可能)初始化就像这样 touchArray = [[NSMutableArray alloc] init];
其次:双重问题:有很多:你在数组中添加一个字符串,而不是两个双打.要添加一个double,您需要先将它包装在NSNumber中:
[touchArray addObject:[NSNumber numberWithDouble:firstDouble]];
[touchArray addObject:[NSNumber numberWithDouble:secondDouble]];
Run Code Online (Sandbox Code Playgroud)
你也想打印出数组中的每个变量来检查它我会相信,而不是数组对象本身.为了这:NSLog(@"array[0] = %g", [[touchArray objectAtIndex:0] doubleValue]
编辑答案澄清:我的回答假设海报想要分别向数组添加两个双打,而不是一个包含两个值的字符串.以为我可能会清楚,因为肯尼和我有不同的消息:)
这里有很多错误,所以我建议你可以尝试阅读一本客观的c/iphone开发书来了解更多信息.
你+stringWithFormat:错了.只有第一个字符串可以是格式字符串.其余的将作为参数传递给格式.在您的代码中,格式字符串是"%d",因此运行时将期望正好1个整数.它看到第二个地址"%d"是14108,所以它将打印为整数.
正确的代码应该是:
[NSString stringWithFormat:@"%g %g", tapTotal, touchBegin]
Run Code Online (Sandbox Code Playgroud)
(通常,%d→ int,%u→ unsigned,%g→ double和CGFloat,%@→Objective-C对象等)
| 归档时间: |
|
| 查看次数: |
4951 次 |
| 最近记录: |