我尝试使用下面的代码将对象添加到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。
我的代码出了什么问题?
欢迎任何评论
答案 0 :(得分:2)
您声明multipartData
但不分配或初始化它。在添加对象之前的某个地方你必须有
NSMutableArray *multipartData = [[NSMutableArray alloc] init];
或可能
NSMutableArray *multipartData = [[[NSMutableArray alloc] init] autorelease];
根据您的需要决定。但是,在添加或访问其中的任何内容之前,您必须分配并初始化multipartData
。