我々は次のようにします。NSMutableDictionaryがinitWithContentsOfFileで長いNSStringをNSNumberに変換しないようにするにはどうすればよいですか?私たちのコードでは
- (void) createComment:(NSString *)comment ForId:(NSString *)objectId
{
[facebookArguments setObject:objectId forKey:FACEBOOK_COMMENTS_FOR_ID_KEY ];
[facebookArguments setObject:comment forKey:FACEBOOK_COMMENTS_FOR_ID_COMMENT];
[facebookPrefs writeToFile:facebookPrefsFilePath atomically: NO];
[facebookArguments writeToFile:facebookArgumentsFilePath atomically:NO];
}
が、このコードを呼び出すときに:
2011-08-04 16:11:53.938 My_App[30909:207] Dictionary: {
facebookGetCommentsForIdComment = Legend;
facebookGetCommentsForIdKey = 10150249987646875;
facebookLikeForIdKey = 10150249445616875;
}
以降:
NSMutableDictionary* fbArgsDic = [[NSMutableDictionary alloc] initWithContentsOfFile: facebookArgumentsFilePath];
NSLog(@"Dictionary: %@", fbArgsDic);
ここでログ出力の前だ
2011-08-04 16:06:39.685 My_App[30693:207] Dictionary: {
facebookGetCommentsForIdComment = Legend;
facebookGetCommentsForIdKey = "1.015024998764688e+16";
facebookLikeForIdKey = 10150249445616875;
}
上記のNSStringであったFACEBOOK_COMMENTS_FOR_ID_KEYエントリをNSNumberに変換していくつかの数字を失った。これらは、facebook idのように長い数字です。
何が起こっているのか、どのように修正することができますか?
は、なぜあなたは、ログ出力を投稿しませんでしたか?そして例のID。 – Joe
私は予約されたキーワードなので、あなたはその文字列 'id'を呼び出すべきではないと思います。しかし、それが問題なのかどうかわからない – andreamazz
'facebookGetCommentsForIdKey'辞書は自動リリースされていると思います。 'retain'を使って試しましたか? – Hisenberg