0

ホー私は、serverOutputとして整数値を返すiphoneアプリケーションを介してphpスクリプトを呼び出そうとしています。

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"、userid)は2147483647を出力します。なんらかの理由で別の値を解析しているのかわかりません:(

4

1 に答える 1

0

まず、NSIntegerはプリミティブ型であるため、useridをポインターとして宣言しないでください(アスタリスクを前に付けることによって)。次に、値2381164503はNSIntegerには大きすぎます(最大値は2147483647)。

long long代わりに使用してみてください:

long long userid = [serverOutput longLongValue];
NSLog(@" %lld" , userid);  //use %lld instead of %d
于 2011-04-26T15:54:29.383 に答える