Вытащить serverOutputValue как NSInteger - PullRequest
0 голосов
/ 26 апреля 2011

Но все, кого я пытаюсь вызвать php-скрипт через мое приложение для iphone, которое возвращает мне целочисленное значение как serverOutput

NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];    
    NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

    NSInteger * userid  = [serverOutput integerValue];

    NSLog(@" %d" , userid);

Но если я напечатаю строку serverOutput, то это будет 2381164503 , но мой NSLog (@ "% d", идентификатор пользователя) напечатает меня 2147483647 . Я не знаю по какой-то причине, что это анализирует другое значение: (

1 Ответ

0 голосов
/ 26 апреля 2011

Во-первых, NSInteger является примитивным типом, поэтому вы не должны объявлять userid в качестве указателя (поставив звездочку впереди). Во-вторых, значение 2381164503 слишком велико для NSInteger (макс. 2147483647).

Попробуйте использовать long long вместо:

long long userid = [serverOutput longLongValue];
NSLog(@" %lld" , userid);  //use %lld instead of %d
...