1

有沒有辦法將這段代碼重新創建爲Objective c?我剛剛開始,我需要一些幫助。來自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批數據。

+0

http://mobile.tutsplus.com/tutorials/iphone/nsuserdefaults_iphone-sdk/請看這個鏈接。 – BBdev

回答

0
- (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就像sharedpreferences在那裏你可以節省anykind數據。數組,字符串,布爾值等,也沒有限制。你可以看看this瞭解更多信息。

+0

謝謝,我現在就試試。 – user2609670

+0

有沒有辦法動態聲明.plist文件中的變量? – user2609670

+0

是當然的。密鑰始終是動態的。您可以將動態名稱用於動態目的。 –

4

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); 
+0

對不起,我澄清了我的帖子,因爲我不夠清楚。無論如何感謝您的回答。 – user2609670