我想使用NSScanner是一個NSArray枚舉循環。然而,這種失敗:NSScanner&數組循環
-[NSXMLElement length]: unrecognized selector sent to instance 0x280da30
不,我不是要求length
任何地方。在掃描器完成之前,似乎發現的值已更改,因此使其成爲空白,導致出現length
錯誤。
如果我刪除循環並硬編碼字符串(我不想這,它只是一個測試)下面的代碼工作。 (不含當然枚舉)
它從來沒有得到儘可能調用NSLog
小號要麼...
這裏是我的代碼:
for (NSString*found in arr)
{
NSLog(@"Found %@",found);
NSString*search = [NSString stringWithString:found];
NSString *separatorString = @"\"";
NSString *container = nil;
NSScanner *aScanner = [NSScanner scannerWithString:search];
[aScanner setScanLocation:0];
[aScanner scanUpToString:@"src=\"" intoString:nil];
[aScanner scanString:@"src=\"" intoString:nil];
[aScanner scanUpToString:separatorString intoString:&container];
NSLog(@"scanned");
NSLog(@"%@",container);
NSImage*previewImage = [[NSImage alloc] initWithContentsOfFile:[relativeDir stringByAppendingPathComponent:container]];
[preview setImage:previewImage];
[previewImage release];
progressed = progressed + 1;
[convertProgress setDoubleValue:[convertProgress doubleValue] + progressed];
}
我怎樣才能得到這個工作?
編輯:
這裏的輸入:
NSXMLDocument*doc = [[NSXMLDocument alloc] initWithData:[NSData dataWithContentsOfFile:webPath] options:NSXMLDocumentTidyHTML error:nil];
NSArray*arr = [doc nodesForXPath:@"//img[@src]" error:nil];
這可能有助於瞭解輸入是什麼樣的... – jlehr 2011-01-28 18:31:13
順便說一句,掃描代碼適用於簡單的輸入。 – jlehr 2011-01-28 18:32:20
我已經說過它對於簡單輸入工作正常。 – Pripyat 2011-01-28 18:32:58