Сбой при получении данных из NSUserDefaults - PullRequest
0 голосов
/ 21 июля 2011

Получение данных из NSUSerDefaults и Passing имеет сбой приложения параметров

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
   [loginController showView:[prefs objectForKey:kSavedUserName] :[prefs objectForKey:kSavedUserPassword]];
//              [loginController showView:@"abcd03@gmail.com" Password:@"apple”];

Когда я печатаю эти значения в NSLog [prefs objectForKey:kSavedUserPassword] показывает значение.пароль и [prefs objectForKey:kSavedUserName] имя пользователя.

Если я жестко запрограммировал параметры моего требования, он работает нормально.

Мой журнал сбоев

unrecognized selector sent to instance 0x5ccc2d0
2011-07-21 14:32:27.721 iShop[3815:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[LoginViewController showView::]: unrecognized selector sent to instance 0x5ccc2d0'
*** Call stack at first throw:

Ответы [ 2 ]

1 голос
/ 21 июля 2011

Ваш закомментированный код корректен в том смысле, что у него есть имя для второго параметра.

[loginController showView:@"abcd03@gmail.com" Password:@"apple”];

Где ваш пример с NSUserDefaults опускает «Пароль» из селектора. Попробуйте изменить его на

[loginController showView:[prefs objectForKey:kSavedUserName] Password:[prefs objectForKey:kSavedUserPassword]];

В более стилистическом плане я бы предложил изменить имя метода на что-то более похожее на приведенное ниже.

showViewForUserName:(NSString*)user_name password:(NSString*)password;
1 голос
/ 21 июля 2011

Ваш loginController не отвечает на сообщение showView::, поэтому ваше приложение вылетает. Проверьте имя метода в LoginViewController и исправьте его. Я думаю, что не имеет значения с NSUserDefaults.
Также старайтесь избегать неиспользуемых параметров в селекторах, всегда называйте их, чтобы избежать проблем.

...