目前,我有一個解析XML並將XML解析到的字典發送給視圖控制器的類。詞典釋放?
這裏是發送詞典到其它類的代碼的一個片段(其中「響應」是字典):
if ([elementName isEqualToString:@"SessionData"])
{
// We reached the end of the XML document
// dumps dictionary into log
NSLog(@"Dump:%@", [response description]);
// sends dictionary to the VC
CardSetupViewController *setup = [[CardSetupViewController alloc]init];
setup.response = self.response;
//checks
NSLog(@"%@ lololololol", [setup.response description]); //THIS WORKS FINE!!
return;
}
在這一點上,該代碼工作正常。 NSLog標記有//這個作品很好!工作......顯然。這是在視圖控制器的方法:
- (BOOL)authorize //this
{
AddCard *addCard = [[AddCard alloc]init];
ServerConnection *connection = [[ServerConnection alloc]init];
//XMLParser *xmlParser = [[XMLParser alloc]initXMLParser];
//serverReturn posts the data and is the ACTUAL server response in NSData form
NSData *serverReturn = [connection postData:[addCard textBoxToXml:
[self nameOnCardGet]:
[self ccNumGet]:
[self expMoGet]:
[self expYrGet]:
[self cvvGet]:
[self zipGet]:
[self nickNameGet]:
[self pinGet]]];
//This takes the information from the server and parses it to "response"
//Creates and inits NSXMLParser Object
NSXMLParser *nsXmlparser = [[NSXMLParser alloc] initWithData:serverReturn];
//Create and init our delegate
XMLParser *parser = [[XMLParser alloc] initXMLParser];
//set delegate
[nsXmlparser setDelegate:(id <NSXMLParserDelegate>) parser];
//initiates self.response THIS MAY NOT BE NEEDED
//response = [[NSMutableDictionary alloc]init];
//parsing
BOOL success = [nsXmlparser parse];
//error catch testing
if (success) {
NSLog(@"No errors");
}
else {
NSLog(@"Error parsing document!");
}
//dump
NSLog(@"ZOMG CHECK DIS OUT%@", [response description]);
return NO;
}
基本上,指出「ZOMG CHECK OUT DIS」將返回(NULL),我想不通爲什麼NSLog的。沒有編譯錯誤,它也是一個屬性/合成。有任何想法嗎?
在此先感謝。哦,請原諒我的NSLog評論。我不得不區分代碼的不同部分,我心情很好。
編輯:我正在使用自動引用計數。別擔心,沒有任何泄漏。
你說第二個代碼片段來自你的CardSetupViewController,但它看起來像它有處理你的XML的大部分邏輯?請從這個控制器發佈更完整的代碼,因爲除了我以前的觀點外,也沒有關於如何初始化響應對象的說明。 – Perception
我已經爲第二部分添加了完整的方法。 – Baub
出於好奇,如果使用'[self.response description]',結果是否相同? – nil