NSScannerを使用しようとしていますが、NSArray列挙ループです。ただし、これは失敗します。
-[NSXMLElementの長さ]:認識されないセレクターがインスタンス0x280da30に送信されました
length
いいえ、どこにも電話していません。スキャナーが完了する前にfoundの値が変更されたため、空白になり、length
エラーが発生したようです。
ループを削除して文字列をハードコーディングすると(これは必要ありません。単なるテストです)、以下のコードが機能します。(もちろん列挙を除く)
sを呼び出すことまでは決して到達しません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];