Objective c 将NSURLConnection中的数据追加到NSMutableData对象失败
我正在尝试从API检索JSON文件进行解析。我正在使用NSURLConnection获取数据。它的委托接收响应并确认MIME类型为Objective c 将NSURLConnection中的数据追加到NSMutableData对象失败,objective-c,ios,ios5,nsdata,Objective C,Ios,Ios5,Nsdata,我正在尝试从API检索JSON文件进行解析。我正在使用NSURLConnection获取数据。它的委托接收响应并确认MIME类型为application/json。但是,当委托调用此方法时: -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSLog(@"Received route data"); [self.receivedData appendData:data]
application/json
。但是,当委托调用此方法时:
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
NSLog(@"Received route data");
[self.receivedData appendData:data];
NSLog(@"Data length: %d", data.length);
NSLog(@"Data length in property: %d", self.receivedData.length);
}
它将数据的长度记录为某个整数。但是,它将receivedData
的长度记录为0。如果附加了数据,这显然是错误的
receivedData
属于NSMutableData
类型,我在初始化包含它的对象时使用self.receivedData=[[NSMutableData alloc]init]
。添加数据时是否有错误?显然,我忘记将self.receivedData
设置为strong
。因此,每当初始化它的方法超出范围并导致它在其他地方返回nil
,它就会被释放。尽管您说您已经初始化了self.receivedData
,这听起来很像你的连接中的nil
:didReceiveData:
方法-你检查过是否是这样吗?@Mac我检查了self.receivedData
,确实是nil
。似乎我错误地将属性设置为弱
,并且每当初始化该属性的方法完成并且本地指针超出范围时,就会释放该属性。这确实可以做到。很高兴你把问题解决了。顺便说一句,由于你在这里似乎是新手(顺便说一句,欢迎你),你可能不知道我们鼓励那些解决了自己问题的人发布答案——这对遇到同样问题的其他人来说真的很有用。虽然我很想获得荣誉,但你自己找到了根本原因,所以如果你能在回答中公布细节,那就太好了。我一定会尽快完成。由于是新人,不得不等待8个小时。谢谢你的帮助。@Mac:代表是你的,回答一下,让OP接受。