0

我正在使用 Xcode 中的 ID3 框架(它已经从网络上消失了——包括谷歌缓存!)。

我正在测试一个导入 mp3 功能,该功能允许他们在导入标签时对其进行编辑。其中一个测试用例是没有正确 id3 标头的损坏或无效 mp3。我遇到的问题是,在更新无效mp3 updateFile:id3V1Tag.mXcode 错误(运行程序时,而不是构建):

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");
    }
}
4

2 回答 2

2

您得到的错误是 Xcode 试图找到您的源文件 id3V1Tag.m 以便在调试期间显示它。您编写的任何代码都不会影响这一点。

如果您的框架发行版中没有 id3V1Tag.m 源文件,则对此您无能为力,除了忽略它之外几乎没有什么可做的(除了看看您是否可以避免导致它被请求,例如不设置在其中设置一个断点,而不是进入它,也不会在其中崩溃)。

如果您确实拥有它并且正在构建它,那么您可能没有使用正确的调试信息进行构建,因此您必须告诉我们更多有关您的构建设置的信息。

于 2010-03-13T00:43:34.680 回答
0

因此,您遇到的问题是,当您尝试编译 id3V1Tag.m 或运行程序时,程序崩溃了。我对此有点困惑。

如果它在运行时崩溃,这可能是库中缺少代码文件的问题?您如何准确读取 ID3 标签信息?是通过您自己的代码还是通过第 3 方库/类。

于 2010-03-12T14:48:46.887 回答