0

propertys.plistという名前のプロパティリストを作成しました。それから私はこれを書いた:

NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"speicherung.plist"];
NSMutableArray *plistData = [[NSMutableArray arrayWithContentsOfFile:finalPath] retain];
int a = [[plistData objectAtIndex:1] intValue];
NSLog(@"%i", a); // returns always 0 - Even If I set a other number in the plist
a = a + 1;
NSNumber *ff = [NSNumber numberWithInt:a];
[plistData insertObject:ff atIndex:1];
NSLog(@"%@", [plistData objectAtIndex:1]); // returns 1 - right, because 0 + 1 = 1
[plistData writeToFile:finalPath atomically:YES];

このコードを再度実行すると、最初のNSLogで常に番号0が取得され、2番目のNSLogで番号1が取得されます。なんで?

このコードはiPhone用です。

4

1 に答える 1

3
[plistData objectAtIndex:1];

これはNSNumberです。したがって、このObjCオブジェクトのアドレスは整数に変換され、に割り当てられa、奇妙な値を与えます。-intValueそこから整数を抽出するために使用します。

int a = [[plistData objectAtIndex:1] intValue];
于 2010-03-21T20:41:22.893 に答える