奇怪的核心数据NSData问题(有时报告长度不正确65342)

时间:2013-02-01 05:39:01

标签: ios core-data nsdata

我在处理从核心数据存储中的BLOB中提取的NSData时,看到了一些引用NSRangeException的日志。

*** Terminating app due to uncaught exception \'NSRangeException\', reason: \'*** -[__NSCFData subdataWithRange:]: range {1931, 69114} exceeds data length 65342\'

blob本身是一个使用带有可变长度字段的标头解析的文件。非常奇怪的部分是虽然范围变化表明有问题的文件不同,但每个日志都有相同的长度报告,正好是65342。

我知道我可以简单地设置一个可以解决崩溃的检查,但我更关心导致它的原因。

有什么想法吗?

编辑:插入代码如下

self.operation = [[WickrAPIClient sharedClient] HTTPRequestOperationWithRequest:[self configureRequest] success:^(AFHTTPRequestOperation *operation, id responseObject){

       [self.bgContext performBlock:^{
              My_Blob *newBlob = [NSEntityDescription insertNewObjectForEntityForName:@"My_Blob" inManagedObjectContext:self.bgContext];
              newBlob.data = (NSData *)responseObject;
              [self.bgContext save:nil];

              NSManagedObjectID *blobID = newBlob.objectID;

              [self.bgContext refreshObject:newBlob mergeChanges:NO];

              [self.mainContext performBlock:^{
                    [self.mainContext save:nil];
                    My_Blob *mainBlob = [self.mainContext getObjectWithID:blobID];
                    [self.mainContext refreshObject:newBlob mergeChanges:NO];
               }];
    }
}failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    [self processFailureWithError:error];
}];

0 个答案:

没有答案