質問: @"そんなこといったって、だめだもんはだめだで、しゃーがないべさ。ほだら。だば、あきらめてしごとしてくんろ。ほりほり。わーったか?ほーり。"; [EXIFDictionary setObject:UserComment forKey:(__bridge NSString *) kCGImagePropertyExifUserComment]; ``` exiftoolで確認すると、以下の文字列がUsrCommentに追加されているのが確認できました。 そんなこといったって、だめだもんはだめだで、しゃーがないべさ。ほだ これはSDKのバグでしょうか?どなたか原因や回避方法をご存知でしたら、ご教授いただけますでしょうか。
回答: iOS7で発生するバグかと思います。(手元に実機がないので試せませんが) 文字列が切れる位置、対処法から察するに、文字数の計算にバグがあるのだと思います。 どの例も文字列が切れる位置が、(バイト数ではなく文字数カウントで)ちょうど半分付近なので、「文字数+2のASCII文字をパッディング」する対処法と合致します。 参考: ■[iPhoneプログラミング]JPEGファイルのExif情報を読み書きする コメント欄から。(ツールに関するコメントです) > > iOS6.1ではOKですが、iOS7だと文字が途中で切れてしまいますね。 > > 文字数+2のASCII文字をパッディングすれば、文字自体は書き込めるのですが、パディングした文は0x00が埋め込まれてしまいます。 > > > ■[iOSプログラミング]iOS SDK 7でImageIO Frameworkを使ってExif情報にユーザコメントを書き込む時は注意が必要 このページにも、同様の現象が見られたと書かれています。