繁体   English   中英

来自Android的Objective C中的共享首选项

[英]Shared Preferences in Objective C from Android

反正有没有重新创建这个代码到Objective c? 我刚刚开始,我需要一些帮助。

String name = #;// Will often vary.

SharedPreferences userData = this.getSharedPreferences(name + "userdata", MODE_PRIVATE);
    Editor edit = userData.edit();
    edit.clear();
    edit.putFloat("rating", Rating.getRating());
    edit.putString("good", txtGood.getText().toString().trim());
    edit.putString("improve", txtImprove.getText().toString().trim());
    edit.commit();
    Log.d(TAG, "Saving Data");

这段代码的优点是每次调用方法时都会创建一个新的SharedPreference。 根据我使用NSUserDefaults的经验,它只能生成1批数据。

NSUserDefaults (Objective-C)类似于SharedPreferences (Android)。

   // To save data
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:@"title" forKey:@"kTitle"];
    [defaults setInteger:21 forKey:@"kSrNo"];
    [defaults synchronize];
    NSLog(@"Data are saved to defaults.");

   // To retrive it back
    NSString *title = [defaults objectForKey:@"kTitle"];
    int srno = [defaults integerForKey:@"kSrNo"];
    NSLog(@"Data from defaults--> Title: %@ SrNO: %d",title,srno);
- (NSString*)GetFilePath:(NSString*)filename
{
     NSError *error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1
    NSString *documentsDirectory = [paths objectAtIndex:0]; //2
    NSString* file = [[NSString alloc]initWithFormat:@"%@.plist",filename];
    NSString* path = [documentsDirectory stringByAppendingPathComponent:file];
    NSFileManager *fileManager = [NSFileManager defaultManager];

    if (![fileManager fileExistsAtPath: path]) //4
    {
        NSString *bundle = [[NSBundle mainBundle] pathForResource:filename ofType:@"plist"]; //5

        [fileManager copyItemAtPath:bundle toPath:path error:&error]; //6
    }  
    return path;
}

并从任何方法调用这样:

NSMutableDictionary* TempDict = [[NSMutableDictionary alloc]initWithContentsOfFile:[self GetFilePath:@"FileName"]];

Plist就像共享首选项,您可以在其中保存任何数据。 数组,字符串,布尔等,也没有限制。 你可以看看这个以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM