Попытка установитьObject типа Number в NSMutableDictionary и получить странное предупреждение - PullRequest
1 голос
/ 27 февраля 2012

Я пытаюсь установитьObject в NSMutableDictionary и получить странное предупреждение слышать код

if ([errorCode intValue] != -1) {
    NSLog(@"after getting data back");
    NSString *userName = [[protocol3Replay valueForKeyPath:uName]autorelease];
    NSString *userPassword = [[protocol3Replay valueForKeyPath:pass]autorelease];
    NSNumber *UserId = [[protocol3Replay valueForKeyPath:@"Session.user_id"]autorelease];
    NSNumber *customerId = [[protocol3Replay valueForKeyPath:@"Session.customer_id"]autorelease];

    BOOL b = [file checkFile];
    NSLog(@"after check file exists");
    if (b == YES) {
       NSLog(@"file exist"); 
        NSMutableDictionary *fileDic = [[[NSMutableDictionary alloc]init]autorelease];

        fileDic = [file readFile];

        [fileDic setObject:[NSNumber numberWithInteger:UserId] forKey:@"user_id"];
        [fileDic  setObject:token forKey:@"device_token"];
        [fileDic setObject:[NSNumber numberWithInteger:customerId] forKey:@"customer_id"];
        [fileDic setObject:userName forKey:@"user_name" ];
        [fileDic setObject:userPassword forKey:@"user_password" ];

    }

убывающий si: warning: семантическая проблема: несовместимый указатель на целочисленное преобразование, отправляющий 'NSNumber *' в параметр типа 'NSInteger' (также известный как int)

Кстати, это?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Вы передаете UserID на numberWithInteger:, что занимает NSInteger.Это не имеет ничего общего с setObject:.Вы, вероятно, хотите скопировать UserID или просто передать UserID в setObject: напрямую.

1 голос
/ 27 февраля 2012

UserID - это ОБЪЕКТ, а параметр для numberWithInteger - это NSInteger, который является просто целым числом. NSInteger НЕ является подклассом NSNumber или NSObject. Это не указатель, это целое число.

Таким образом, ваше объявление NSNumber * UserID = ... должно быть NSInteger userID (нет *, поскольку это не указатель).

p.s. Это только один из возможных способов решения вашей проблемы.

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