执行addObject,但NSMutableArray没有对象

时间:2011-09-09 01:47:21

标签: iphone

我尝试使用下面的代码将对象添加到NSMutableArray

NSMutableArray* multipartData;
- (void)processDataChunk:(NSData *)postDataChunk
{
    if (!postHeaderOK)
    {
        UInt16 separatorBytes = 0x0A0D;
        NSData* separatorData = [NSData dataWithBytes:&separatorBytes length:2];

        for (int i = 0; i < [postDataChunk length] - l; i++)
        {
            NSRange searchRange = {i, l};

            if ([[postDataChunk subdataWithRange:searchRange] isEqualToData:separatorData])
            {
                NSRange newDataRange = {dataStartIndex, i - dataStartIndex};
                dataStartIndex = i + l;
                i += l - 1;
                NSData *newData = [postDataChunk subdataWithRange:newDataRange];

                if ([newData length])
                {
                    [multipartData addObject:newData]; //A:set break point here
                }
            }
        }
    }
}

我在A:处设置断点,发现newData不是nil。

我的代码出了什么问题?

欢迎任何评论

1 个答案:

答案 0 :(得分:2)

您声明multipartData但不分配或初始化它。在添加对象之前的某个地方你必须有

NSMutableArray *multipartData = [[NSMutableArray alloc] init];

或可能

NSMutableArray *multipartData = [[[NSMutableArray alloc] init] autorelease];

根据您的需要决定。但是,在添加或访问其中的任何内容之前,您必须分配并初始化multipartData