iOS解析:string为null

时间:2013-02-11 21:43:44

标签: iphone ios parsing nsstring

这是我的item类中的方法,它会唤醒我的解析器。这个方法是由我的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](null)

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

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

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


以下是解决方案,感谢以下评论的深思熟虑的建议。

//    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;

1 个答案:

答案 0 :(得分:1)

尽量避免任何自我声明的变量/名为 description 的属性。 我有一个奇怪的错误,因为这会覆盖默认描述(每个对象都有。)