0
.h
@class HtmlParser
@interface ClassName : NSObject <UITableViewDataSource>
{
NSString *img;
HtmlParser *htmlParser;
}

:)

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

我正在尝试使用描述的内容初始化 HtmlParser。“描述”是异步加载的 RSS html,在 tableViewController 中启动。

我得到一个有或没有 NSString* 描述的断点。'-[HtmlParser loadHtmlbyString:]: unrecognized selector sent to instance 0x75aa9b0'... 这就是我所知道的所有调试方法。为所有异常启用断点。

- .m 中的方法在 viewController 的 cellForRowAtIndexPath 中调用:

    ClassName *object = _objects[indexPath.row];

NSString *i = object.img;
    UIImage* iG = [UIImage imageWithData:
                [NSData dataWithContentsOfURL:[NSURL URLWithString:i]]];
cell.imageView.image = iG;

它很乱,所以让我知道是否需要进一步澄清。

.h
@interface HtmlParser: NSObject <NSXMLParserDelegate>
{
ET Cetera
}
    - (id) loadHtmlByString:(NSString *)string;
4

2 回答 2

1

当您调用相关方法时:

htmlParser = [[HtmlParser alloc] loadHtmlbyString:(NSString*) _description];

它不应该有 (NSString *) 在那里。它应该是:

htmlParser = [[HtmlParser alloc] loadHtmlbyString: _description];

但是, loadHtmlbyString 是一个 init 方法吗?如果是这样,那么您应该以 init 开头名称,并且您还应该通过将名称中的所有单词(包括 By)大写来遵守命名约定。

于 2013-02-11T17:33:04.883 回答
1

'loadHtmlbyString method is not a method of theHtmlParser class, it is a method of yourClassName` 类。

您不会在此行收到编译器警告:

htmlParser = [[HtmlParser alloc] loadHtmlbyString:(NSString*) _description];

查看 HtmlParser 类的 .h 并查看为该类定义了哪些方法。

于 2013-02-11T17:38:37.850 回答