Lõi tôi nhận được lỗi sau khi cố gắng để thêm một kỷ lục:nghiêm trọng Lỗi ứng dụng trong dữ liệu với fetchedResultsContainer
nghiêm trọng lỗi ứng dụng. Ngoại lệ đã bị phát hiện trong quá trình xử lý Dữ liệu chính . Đây thường là lỗi trong một người quan sát của NSManagedObjectContextObjectsDidChangeNotification. Chỉ mục 0 không hợp lệ với userInfo (null)
Và đó là nó. Tôi đặt breakpoint vào tất cả các phương thức delegate fetchedResultsContainer mà tôi đã thực hiện, nhưng không có gì phá vỡ.
tôi theo dõi nó xuống:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
"sectionNameKeyPath" là vấn đề. "titleFirstLetter" là thuộc tính tạm thời mà tôi đã tạo một getter cho lớp con NSManagedObject của mình.
Đây là getter:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
Khi tôi thay đổi sectionNameKeyPath để nil, nó hoạt động, nhưng rõ ràng không phải là những gì tôi muốn. Nó cũng hoạt động khi tôi có một tiêu đề đã được điền vào cho mô hình của tôi, do đó titleFirstLetter không trả về nil, mặc dù điều đó dường như không hoàn toàn là vấn đề. Nếu tôi làm cho chuỗi một cái gì đó tùy ý nếu nó là nil, nó vẫn bị treo.
Có ý tưởng gì ở đây không?
CẬP NHẬT: Nếu tôi sử dụng tiêu đề trong phầnNameKeyPath thay vì thuộc tính tạm thời, nó không bị lỗi, nhưng rõ ràng sẽ đặt mọi mục vào phần riêng của nó. Vì vậy, nó liên quan đến bất động sản thoáng qua ...
UPDATE2: Một số cuộc tấn công sơ bộ bằng cách sử dụng tài sản liên tục thay vì tạm thời, và không có thay đổi nào khác, có vẻ hoạt động tốt, vì vậy đây có vẻ là một lỗi. Tôi có một báo cáo lỗi mở: # 8553064
CẬP NHẬT 3: Vâng, hãy cào. Sử dụng thuộc tính liên tục không tạo ra bất kỳ sự khác biệt nào. Bây giờ tôi hơi rên rỉ.
Cảm ơn!
Lưu thịt xông khói của tôi! Cảm ơn! Bạn đã thêm reloadRowsAtIndexPaths vào đâu: withRowAnimation :? –
rất cảm ơn. vấn đề này làm phiền tôi trong thời gian dài. – derjohng