Как получить значение nsuserdefault в других viewcontrollers - PullRequest
8 голосов
/ 22 апреля 2011

У меня есть два viewcontrollers.В моем первом viewcontroller:

{           
    NSString *string=textField.text;  
    NSUserDefaults *data = [NSUserDefaults standardUserDefaults];  

    [data setObject:string forKey:@"strings"];
    [data synchronize];
}   

Как мне получить строковое значение в моем другом viewcontroller?

Ответы [ 4 ]

24 голосов
/ 22 апреля 2011

Здесь вы можете использовать это в любом случае в вашем приложении для хранения значения NSUserDefaults.

// --- Saving

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// saving an NSString
[prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];  
// saving an NSInteger
[prefs setInteger:42 forKey:@"integerKey"];
// saving a Double
[prefs setDouble:3.1415 forKey:@"doubleKey"];
// saving a Float
[prefs setFloat:1.2345678 forKey:@"floatKey"];
// This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
[prefs synchronize];

Здесь вы можете использовать это в любом случае в вашем приложении для получения значения NSUserDefaults.

// --- Retrieving

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// getting an NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];
// getting an NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];
// getting an Float
float myFloat = [prefs floatForKey:@"floatKey"];
4 голосов
/ 22 апреля 2011

вы можете получить доступ к NSUserDefaults в любом контроллере (любой класс вашего приложения) вашего приложения с тем же кодом, который вы написали в одном классе.

для получения строкового значения используйте следующий код

NSUserDefaults *data = [NSUserDefaults standardUserDefaults];  
NSString *myString = [data objectForKey:@"strings"];
4 голосов
/ 22 апреля 2011
NSUserDefaults * defaults =  [NSUserDefaults standardUserDefaults]; 
NSString *myString = [defaults stringForKey:@"strings"];

Это способ получения данных. Обратите внимание, NSUserDefault не используется для передачи данных между двумя контроллерами. Есть лучшие методы для этого.

Редактировать: После просмотра комментария Шаан Сингх

Для передачи контроллеров представления данных 2 вы можете объявить свойство во втором контроллере представления и получить к нему доступ из текущего контроллера представления.

Здесь уже блестяще ответили здесь .

3 голосов
/ 22 апреля 2011

В другом ViewController

NSUserDefaults *data = [NSUserDefaults standardUserDefaults];  
NSString *string = [data objectForKey:@"strings"];

Это будет работать, потому что NSUserDefaults - это глобальное хранилище значений ключей, которое будет сохраняться в разных классах и приложениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...