سؤال

لقد قمت بإنشاء قائمة خاصية مع 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];

عندما أقوم بتشغيل هذا الرمز مرة أخرى ، أحصل دائمًا على الرقم 0 في NSLog الأول والرقم 1 في الثانية. لماذا ا؟

هذا الرمز مخصص لـ iPhone.

هل كانت مفيدة؟

المحلول

[plistData objectAtIndex:1];

هذا هو nsnumber. لذلك يتم تحويل عنوان كائن OBJC هذا إلى عدد صحيح وتعيينه a, ، إعطاء قيمة غريبة. يستخدم -intValue لاستخراج عدد صحيح منه.

int a = [[plistData objectAtIndex:1] intValue];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top