NSScannerを使用しようとしていますが、NSArray列挙ループです。しかし、これは失敗します。いいえ、私はどこでもlength
を呼び出していないですNSScanner&Array Loops
-[NSXMLElement length]: unrecognized selector sent to instance 0x280da30
。スキャナが完了する前に見つかった値が変更されたため、空白になり、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
ちなみに、スキャンコードは単純な入力に対してうまく機能します。 – jlehr
私はすでに簡単な入力でうまくいくと言ってきました。 – Pripyat