繁体   English   中英

如何在ARC环境中将Parser Delegate设置为Self?

[英]How to set Parser Delegate to Self in ARC environment?

嘿,我过去曾经使用过解析器,但从未在ARC环境中使用过。 现在,当我尝试将解析器设置为self时,会给我一条错误消息,然后不解析我的数据。 有人知道问题是什么以及如何解决?

这是当我尝试将解析器委托设置为self时收到的警告:

Semantic Issue: Sending 'CharityController *const __strong' to parameter of incompatible    type 'id<NSXMLParserDelegate>'

这是我的代码:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    if (connection == theConnection)
    {
        // do something with the data object.
        //NSLog(@"Data from server is: %@",data);
        NSString *test = [[NSString alloc]initWithData:data encoding:NSStringEncodingConversionAllowLossy];
        NSLog(@"Data from server is: %@",test);
        parser = [[NSXMLParser alloc] initWithData: data]; 
        [parser setDelegate:self];
        [parser parse];
    }
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
    if ([elementName isEqualToString:@"root"]) {
        currentStringValue = nil;
        NSLog(@"I am inside the Parser at root!.");

        return;
    }

您是否在接口定义中使用了协议名称,以使编译器知道您符合该特定协议? 如:

@interface CharityClass : NSObject <NSXMLParserDelegate>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM