2016-01-08 2 views
-2

У меня есть следующий код:произошла ошибка в NSDictionary EXC_BAD_ACCESS

NSString * client_type = @"client_credentials"; 

@implementation OauthObject 

- (NSDictionary*) getParamsCredintion{ 

     return [[NSDictionary alloc] initWithObjectsAndKeys:client_id, @"client_id", client_secret, @"client_secret", client_type, "@client_credentials", nil]; 

} 

Когда я пытаюсь инициализировать NSDictionary с client_type ключа я получаю сообщение об ошибке:

NSDictionary EXC_BAD_ACCESS

+0

Что такое *** точное сообщение об ошибке ***? Скорее всего, вы, вероятно, попытаетесь использовать словарные словаря Objective-C. – luk2302

ответ

1

Ваша ошибка в (вы использовали @ после цитаты)

client_type, "@client_credentials"

Изменения в

client_type, @"client_credentials"

- (NSDictionary*) getParamsCredintion{ 

    return [[NSDictionary alloc] initWithObjectsAndKeys:client_id, @"client_id", client_secret, @"client_secret", client_type, @"client_credentials", nil]; 

} 
0

NSDictionary не может сохранять скалярные значения (например, BOOL, NSInteger и т. Д.), Он может хранить только объекты. Вы можете иметь Numbers или Bools.

NSDictionary *qDictionary = [[NSDictionary alloc] 
    initWithObjectsAndKeys:question,@"questionText", 
          [NSNumber numberWithInteger:questionId],@"questionId", 
          [NSNumber numberWithBool:userAnswer],@"userAnswer", 
          [NSNumber numberWithBool:correctAnswer],@"correctAnswer", 
          nil]; 
0

Что такое смысл GetParam sCredintion? Если у компилятора есть чувство юмора, это то, что заставляет вас сбой кода ... Скорее всего, один из client_id, client_secret, client_type - это нуль или мусор. Очевидно, это не ваш настоящий код, не так ли?

Установите точку останова в строке, где создан словарь, и проверьте значения. Рекомендуется назначать словарь переменной и возвращать ее, чтобы вы могли также установить там точку останова и изучить словарь или записать его значение. Сделайте ваш отладчик кода дружественным.

Смежные вопросы