NSString オブジェクトを同じ数値の NSNumber に変換しようとしています。このステートメントを使用して NSString オブジェクトを作成すると...
NSString *songID = [localNotif.userInfo objectForKey:@"SongID"];
varsongID
には文字列 value が含まれます@"10359537395704663785"
。そして、ステートメントを使用してそれを NSNumber オブジェクトに変換しようとすると...
NSNumber *songIDNumber = [NSNumber numberWithLongLong:[songID longLongValue]];
変数songIDNumber
に間違った値が含まれています9223372036854775807
私は何を間違っていますか?このコードが機能して正しい NSNumber 値を生成する場合もありますが、ほとんどの場合、上記のように失敗します。
よろしくお願いします。
更新:このサイトが大好きです! unbeli と carl のおかげで、NSString から NSNumber に変換するための更新されたコードを使用して修正できました...
unsigned long long ullvalue = strtoull([songID UTF8String], NULL, 0);
NSNumber *songIDNumber = [NSNumber numberWithUnsignedLongLong:ullvalue];