حفظ معلومات إضافية لبليست في كل مرة أقوم بتشغيل التطبيق؟ (ايفون)

StackOverflow https://stackoverflow.com/questions/1201620

سؤال

وبلدي فون التطبيق يكتب أزواج قيمة المفتاح إلى قاموس في ملف بليست. أنا إنقاذ أساسا نتيجة للمستخدم عندما تلعب لعبة. هذا هو كل شيء على ما يرام ومدهش، ولكن في كل مرة أقوم بتشغيل التطبيق والحصول على درجات جديدة، والحصول على حفظ القيم الجديدة على القيم القديمة. كيف يمكنني إضافة معلومات إلى بليست في كل مرة للمستخدم بالوصول إلى التطبيق بدلا من إعادة كتابة الملف؟ أريد أن تبقي كل من عشرات، وليس فقط آخرها.

كود:

-(void)recordValues:(id)sender {

    //read "propertyList.plist" from application bundle
    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *finalPath = [path
                          stringByAppendingPathComponent:@"propertyList.plist"];
    dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath];

    //create an NSNumber object containing the
    //float value userScore and add it as 'score' to the dictionary.
    NSNumber *number=[NSNumber numberWithFloat:userScore];
    [dictionary setObject:number forKey:@"score"];

    //dump the contents of the dictionary to the console 
    for (id key in dictionary) {
        NSLog(@"memory: key=%@, value=%@", key, [dictionary
                                                 objectForKey:key]);
    }

    //write xml representation of dictionary to a file
    [dictionary writeToFile:@"/Users/rthomas/Sites/propertyList.plist" atomically:NO];
}
هل كانت مفيدة؟

المحلول

وأنت إعداد الكائن إلى عدد لدرجة الرئيسية

    NSNumber *number=[NSNumber numberWithFloat:userScore];   
 [dictionary setObject:number forKey:@"score"];

وبدلا من هذا ما تريد القيام به هو أن يكون صفيف أو شيء من هذا القبيل لذلك

NSNumber *number=[NSNumber numberWithFloat:userScore];  
    NSMutableArray *array=[dictionary objectForKey:@"score"]
     [array addObject:number]
    [dictionary setObject:array forKey:@"score"]

وهذا ينبغي أن تفعل ما تسألون

نصائح أخرى

وترغب في تحميل القيم القديمة أولا، في NSArray أو NSDictionary مثل قال دانيال.

وإضافة قيمة جديدة إلى المجموعة. (ربما القيام ببعض الفرز أو شيء أيضا)

وبعد ذلك تكتب المجموعة الجديدة إلى القرص.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top