我怎么解决“Xcode无法找到源文件”

时间:2010-03-12 09:11:41

标签: objective-c cocoa xcode id3

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

我正在测试一个导入mp3功能,允许他们在导入时编辑标签。其中一个测试用例是损坏或无效的mp3,没有正确的id3标头。我遇到的问题是,当更新无效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");
    }
}

2 个答案:

答案 0 :(得分:2)

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

如果您的框架发行版中没有id3V1Tag.m源文件,那么您无法做到这一点,除此之外没有什么可做但忽略它(除了看看是否可以避免导致它被请求,比如不在其中设置断点,不插入它,也不会在其中崩溃)。

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

答案 1 :(得分:0)

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

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