私はXcodeでID3フレームワークを使用しています(これはその後、Googleキャッシュを含めてWebの表面から消えました!)。
インポート時にタグを編集できるmp3インポート機能をテストしています。テストケースの1つは、適切なid3ヘッダーのない破損または無効なmp3です。私が抱えている問題は、無効なmp3(updateFile:
)のタグを更新するときに、ID3フレームワークが使用しようとすることid3V1Tag.m
です(v2タグが見つからない場合は、これにフォールバックすると思います)。 Xcodeエラー(ビルドではなくプログラムの実行中):
Xcode could not locate source file: id3V1Tag.m (line: 299)
リリースビルドでも、これはプログラムをクラッシュさせるので、私が本当に無視できるものではありません。
その周りにtry/catchブロックを配置しようとしましたが、例外として扱われないため、キャッチされません。ファイルのタグデータをロードする関数はBOOLを返しますが、これは指定されたファイルが存在しない場合にのみfalseを返すように見えるため、これも役に立ちません。
現在のコード:
[tagData release];
tagData = [[TagAPI alloc] initWithGenreList:nil];
tagsLoaded = [tagData examineFile:exportPath];
if(tagsLoaded) {
[tagData setTitle:title];
[tagData setArtist:artist];
[tagData setComments:comments];
@try {
[tagData updateFile];
}
@catch (id e){
NSLog(@"h");
}
}