代码之家  ›  专栏  ›  技术社区  ›  iand675

NSMutableData对象无法识别选择器?

  •  0
  • iand675  · 技术社区  · 16 年前

    我目前正试图为我正在开发的一个网站编写一个iPhone伴侣。我正试图通过使控制器成为NSURLConnection的委托来从我的网站获取JSON数据。但问题是,我有一个名为responseData的NSMutableData对象初始化如下:

    responseData = [NSMutableData dataWithLength:0];
    

    我想在出现时附加数据:

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
        [responseData appendData:data];
    }
    

    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
    reason: '-[__NSCFArray appendData:]: unrecognized selector sent to instance 
    0x6d0a640'
    

    我很有信心appendData应该被识别,所以我不知道这里有什么问题。。。

    1 回复  |  直到 16 年前
        1
  •  6
  •   Philippe Leybaert    16 年前

    必须保留对象:

    responseData = [NSMutableData dataWithLength:0];
    
    [responseData retain];
    

    但这不是常见的方法。只需使用alloc/init:

    responseData = [[NSMutableData alloc] init];
    

    但别忘了在dealloc中发布:

    [responseData release];