Iphone 数组,大小不是预期值
我无法理解代码中发生了什么:Iphone 数组,大小不是预期值,iphone,objective-c,ios,xcode,nsarray,Iphone,Objective C,Ios,Xcode,Nsarray,我无法理解代码中发生了什么: for (NSMutableDictionary *dict in jsonResponse) { NSString *days = [dict objectForKey:@"dayOfTheWeek"]; NSArray *arrayDays = [days componentsSeparatedByString:@" "]; NSLog(@"la var %@ size %lu", days, sizeof(arrayDa
for (NSMutableDictionary *dict in jsonResponse) {
NSString *days = [dict objectForKey:@"dayOfTheWeek"];
NSArray *arrayDays = [days componentsSeparatedByString:@" "];
NSLog(@"la var %@ size %lu", days, sizeof(arrayDays));
for(int i = 0; i<sizeof(arrayDays); i++){
NSLog(@"el dia %@",[arrayDays objectAtIndex:i]);
}
}
然后崩溃,因为位置3不存在
为什么尺寸没有第二次改变?应该是1
提前感谢您不应该使用sizeof。它将返回指针大小,这是任何指针类型变量(如字符串、字典、数组等)的固定值 你应该计算NSArray的财产 在代码行下面更改
NSLog(@"la var %@ size %lu", days, sizeof(arrayDays));
这一行:
NSLog(@"la var %@ size %lu", days, arrayDays.count);
也执行相同的循环语句。sizeof(theArray)
计算数据类型的大小,请参阅。[theArray count]
和theArray.count
返回数组中对象的计数
将两个出现的sizeof(arrayDays)
替换为arrayDays.Count
注意:您还可以使用以下命令循环阵列:
for (NSString* theValue in arrayDays) {
NSLog(@"el dia %@",theValue);
}
Sizeof()
仅适用于固定大小的数组。请使用[arrayDays count]
for (NSString* theValue in arrayDays) {
NSLog(@"el dia %@",theValue);
}