很奇怪的錯誤,我有以下代碼:與NSOperationQueue
- (void)readSettingsFiles
{
NSOperationQueue *operationQueue = [[[NSOperationQueue alloc] init] autorelease];
[operationQueue setName:@"File Parsing Queue"];
if (urlForV1SettingsFile) {
[operationQueue addOperationWithBlock:^{
SettingsReader *settingsReader = [[[SettingsReader alloc] initWithURL:urlForV1SettingsFile] autorelease];
NSArray *settings = [settingsReader settings];
[settingsToSave addObjectsFromArray:settings];
}];
}
if (urlForV2SettingsFile) {
[operationQueue addOperationWithBlock:^{
SettingsReader *settingsReader = [[[SettingsReader alloc] initWithURL:urlForV2SettingsFile] autorelease];
NSArray *settings = [settingsReader settings];
[settingsToSave addObjectsFromArray:settings];
}];
}
while ([operationQueue operationCount] > 0) {
sleep(1);
}
}
SettingsReader
是的NSXMLParser委託來處理讀取兩個不同的XML文件。 settingsToSave
是聲明此方法的類的屬性,類型爲NSDictionary。
我有睡眠,所以方法不會返回,直到所有文件都被解析。
的問題是,當我退出while循環我在控制檯收到此錯誤:
objc[74760]: Class _NSZombie_NSCFInputStream is implemented in both ?? and ??. One of the two will be used. Which one is undefined.
之前從來沒有見過它,既沒有谷歌。任何幫助?
爲了澄清,這是察覺殭屍構建?無關,我不明白你爲什麼使用'NSOperationQueue',如果你反正等着它。另外,'settingsToSave'是一個成員變量? – 2013-02-08 23:00:01
你不應該同時從多個線程更新'settingsToSave'數組,這是行不通的。另外,使用'waitUntilAllOperationsAreFinished'而不是'sleep'循環。 – Sven 2013-02-08 23:01:32
您是否使用類別? – 2013-02-08 23:09:13