1
jerry 2012-05-21 00:06:24 +08:00
NSXmlparser对象指定Delegate为self了么
|
2
ivanlw OP |
3
ivanlw OP @jerry
嗯~麻烦你了……我检查了好久 A类里面调用的地方 [SimilarityCaculation paticipleSentence:originSentence.text]; (这个相当于[B b]) B类里面: 显示@interface后面加<NSXMLParserDelegate> 然后3个回调函数: - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { } 然后是呗调用的函数b - (void)b { ...... 获得NSData data; ...... //开始parser NSXMLParser *addressParser = [[NSXMLParser alloc] initWithData:data]; [addressParser setDelegate:self]; //[addressParser shouldResolveExternalEntities:YES]; [addressParser parse]; } 在回调函数中加了断点……但是没有进去…… |
4
jerry 2012-05-21 17:15:38 +08:00
代码没有问题啊,你检查一下是不是你获取的NSData有问题
|
5
altchen 2012-05-21 17:40:32 +08:00
在b方法设置断点看下是否有进入.感觉有点像你调用的时候B对象为nil了...
|
6
ivanlw OP @jerry 加了下面两句
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@", stringData); 能正常打印出来data…… |
7
ivanlw OP @ivanlw 能进入b函数,一直到最后一句[addressParser parse];都能执行到,就是没进入回调……好囧啊,我以为是消息里面的函数不能进入回调呢……
|
9
jerry 2012-05-21 20:31:01 +08:00 1
@ivanlw 类方法(+)不行,self为const Class,不是实例,在NSXMLParser里如何去调用self里的实例方法(-方法)呢? 真想用类方法你需要使用单例模式,先实例化一个单例
|
10
altchen 2012-05-21 20:39:46 +08:00 1
b是类方法,但b在里面用self是类对象,应该实例化一个对象a再[setDelegate:a]试下
|
11
altchen 2012-05-21 20:41:34 +08:00
额,没看到9f回了。。。。
|
13
ivanlw OP 自己找到问题啦……声明称+的进入不了回调函数……
要声明成-的,然后实例化以后再调用这个方法! |