Objective c obj-c中与NSArray一起使用的长度混淆
我用这行代码遍历一个数组Objective c obj-c中与NSArray一起使用的长度混淆,objective-c,ios,nsarray,nsobject,Objective C,Ios,Nsarray,Nsobject,我用这行代码遍历一个数组 for (int i = 0; i < [[GameP objectForKey:@"groundMap"] length]; i += 5) { for(int i=0;i
for (int i = 0; i < [[GameP objectForKey:@"groundMap"] length]; i += 5) {
for(int i=0;i<[GameP objectForKey:@“groundMap”]长度];i+=5){
来自AS3背景,我假设“length”会给出数组/对象的长度,但我刚刚发现“count”似乎做了同样的事情,我找不到任何关于使用“length”的信息,但它似乎有效
谁能告诉我
谢谢您的建议。首先,您必须在字典中了解对象的类别
GameP
。
如果那NSArray
你必须使用count
这里没有办法使用其他方法
您可以在
NSSString
类中找到length
方法。首先,您必须知道字典中对象的类GameP
。
如果那NSArray
你必须使用count
这里没有办法使用其他方法
您可以在
NSSString
类中找到length
方法。假设GameP
是一个字典,对objectForKey:
的调用返回类型为id
的对象。因此您试图在id
上调用length
方法。这可以很好地编译,但在运行时可能是错误的假设“底图”的对象是一个数组。数组只有一个count
方法,没有length
方法
对于每个循环迭代,您也从字典中访问一个对象。您确实应该这样编写代码:
NSArray *groundMap = [GameP objectForKey:@"groundMap"];
NSUInteger count = groundMap.count;
for (int i = 0; i < count ; i += 5) {
}
NSArray*groundMap=[GameP objectForKey:@“groundMap”];
NSU整数计数=groundMap.count;
对于(int i=0;i
这更容易阅读,编译器可以进行更好的错误检查。它也更高效。假设
GameP
是一个字典,调用objectForKey:
返回一个类型为id
的对象。因此,您尝试在id
上调用length
方法。这可以很好地编译,但在r直到现在,假设“底图”的对象是数组可能是错误的。数组只有count
方法,没有length
方法
对于每个循环迭代,您也从字典中访问一个对象。您确实应该这样编写代码:
NSArray *groundMap = [GameP objectForKey:@"groundMap"];
NSUInteger count = groundMap.count;
for (int i = 0; i < count ; i += 5) {
}
NSArray*groundMap=[GameP objectForKey:@“groundMap”];
NSU整数计数=groundMap.count;
对于(int i=0;i
这更易于阅读,编译器可以更好地进行错误检查。它也更高效。您能否澄清
[GameP objectForKey:@“groundMap”]
返回的内容?您能否澄清[GameP objectForKey:@“groundMap”]
返回的内容?