Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将NSURLConnection中的数据追加到NSMutableData对象失败_Objective C_Ios_Ios5_Nsdata - Fatal编程技术网

Objective c 将NSURLConnection中的数据追加到NSMutableData对象失败

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]

我正在尝试从API检索JSON文件进行解析。我正在使用NSURLConnection获取数据。它的委托接收响应并确认MIME类型为
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接受。