سؤال

لدي مثال على حفظ تاريخ Taxtfield

- (NSString *) getFilePath {
    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"saved.plist"];
}

 -(void) saveData {
    NSArray *value = [[NSArray alloc] initWithObjects:[myTextField text],nil];
    [value writeToFile:[self getFilePath] atomically:YES];
}

ولكن كيف يمكنني حفظ قيمة المتغيرات في الملف؟

NSInteger = record1, record2;
هل كانت مفيدة؟

المحلول

NSInteger ليس من النوع Objective-C، ولكن يمكنك تحويله إليه NSNumber لتخزينه في مصفوفة (أو قاموس):

NSInteger record1 = 17, record2 = 23;
NSNumber *number1 = [NSNumber numberWithInteger:record1];
NSNumber *number2 = [NSNumber numberWithInteger:record2];

بدءًا من Xcode 4.4، يمكنك أيضًا استخدام صيغة "Boxed Expression":

NSNumber *number1 = @(record1);

الآن يمكنك وضع الأرقام في مصفوفة:

NSArray *arrayToSave = [[NSArray alloc] initWithObjects:number1, number2, nil];
[arrayToSave writeToFile:[self getFilePath] atomically:YES];

يجب عليك أيضًا التفكير في استخدام قاموس بدلاً من المصفوفة لتخزين القيم المتنوعة، على سبيل المثال (استخدام التعبيرات المعبأة مرة أخرى):

NSDictionary *dictToSave = @{
    @"value1" : number1,
    @"value2" : number2,
    @"textField" : [myTextField text]
};
[dictToSave writeToFile:[self getFilePath] atomically:YES];

نصائح أخرى

أيضًا، إذا كنت لا تريد الكتابة إلى ملف معين، فتحقق من NSUserDefaults الطبقة مع الأساليب – setInteger:forKey: و – integerForKey: لتخزين واسترجاع القيم الصحيحة.

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