2012-03-09 44 views
2

嗨我在過去使用過分析器,但從來沒有在ARC環境中使用。現在,當我嘗試將解析器設置爲self時,它會給我一個錯誤消息,然後不解析我的數據。任何人都知道問題是什麼以及如何解決它?如何在ARC環境中將Parser Delegate設置爲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; 
    } 

回答

7

你在接口定義中使用的協議名稱讓編譯器知道你符合那個特定的協議?如:

@interface CharityClass : NSObject <NSXMLParserDelegate> 
+0

是的工作謝謝 – Rmyers 2012-03-09 04:33:23