0

これは、パーサーを手招きするアイテム クラスのメソッドです。このメソッドは、viewController によって呼び出されます。

- (NSString*)img
{
if (img!=nil) return img;
   if (_description!=nil)
   { 
 //    NSString* description = [NSString stringWithString:_description];
htmlParser = [[HtmlParser alloc] InitHtmlByString:_description]; 
   }
return img;
}

これが私のパーサーのinitメソッドです...

- (HtmlParser *) InitHtmlByString:(NSString *)htmlString {

NSString *description = currentHTMLElement.description;
NSLog(@"%@", description);
NSData *nsData = [[NSData alloc] initWithContentsOfFile:(NSString *)description];
elementArray = [[NSMutableArray alloc] init];

parser = [[NSXMLParser alloc] initWithData:nsData];
parser.delegate = self;
[parser parse];

currentHTMLElement = [ArticleItem alloc];
                  return self;
}

現在、次のような出力が得られています。

013-02-11 15:26:18.564 DrillDownRSS[9251:c07] (ヌル)

2013-02-11 15:26:18.612 DrillDownRSS[9251:c07] (ヌル)

2013-02-11 15:26:18.662 DrillDownRSS[9251:c07] (ヌル)

2013-02-11 15:26:18.695 DrillDownRSS[9251:c07] (ヌル)


以下のコメントの思慮深いアドバイスのおかげで、これが解決策です。

//    NSString *description = [NSString string];
NSData *nsData = [[NSData alloc] initWithContentsOfFile:(NSString *)string];
elementArray = [[NSMutableArray alloc] init];

parser = [[NSXMLParser alloc] initWithData:nsData];
parser.delegate = self;
[parser parse];
NSLog(@"%@", string);

currentHTMLElement = [ArticleItem alloc];
                  return self;
4

1 に答える 1

1

descriptionという名前の自己宣言された変数/プロパティを避けるようにしてください。これはデフォルトの説明 (各オブジェクトにある) を上書きするため、奇妙なバグがありました。

于 2013-02-11T21:51:20.110 に答える