Coredata + CollectionView

时间:2014-02-20 17:10:20

标签: ios objective-c core-data uicollectionview nsexception

我正在尝试创建一个iOS应用程序,其中包含一个从网站(使用JSON)获取信息的集合视图,并将信息存储在CoreData上。

我在CoreData上有2个实体。 1个被调用的区域(将是集合标题文本)。 1个被叫分销商(将是收集单元)。

要使用CollectionView + CoreData,我已经看到了这个例子:https://github.com/AshFurrow/UICollectionViewExample

我设置了everthing并且工作但是有时候,当我多次旋转devide并且集合视图仍然滚动时我看到这个错误:

*** Terminating app due to uncaught exception 'NSRangeException', reason: 'NSMutableRLEArray objectAtIndex:effectiveRange:: Out of bounds'
*** First throw call stack:
(
    0   CoreFoundation                      0x01a9f5e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x015738b6 objc_exception_throw + 44
    2   CoreFoundation                      0x01a9f3bb +[NSException raise:format:] + 139
    3   Foundation                          0x011a5f62 -[NSRLEArray objectAtIndex:effectiveRange:] + 131
    4   Foundation                          0x011a7b86 -[NSConcreteMutableAttributedString addAttribute:value:range:] + 212
    5   UIFoundation                        0x034aab82 __50-[NSConcreteTextStorage addAttribute:value:range:]_block_invoke + 156
    6   UIFoundation                        0x034aaa65 -[NSConcreteTextStorage addAttribute:value:range:] + 127
    7   DataDetectorsUI                     0x0a7da85c -[DDTextKitOperation _addResultsToAttributes] + 374
    8   DataDetectorsUI                     0x0a7daa82 __46-[DDTextKitOperation doURLificationOnDocument]_block_invoke_2 + 39
    9   UIFoundation                        0x034a9190 -[NSTextStorage(ActorSupport) coordinateAccess:] + 48
    10  DataDetectorsUI                     0x0a7daa54 __46-[DDTextKitOperation doURLificationOnDocument]_block_invoke + 134
    11  libdispatch.dylib                   0x0222d440 _dispatch_barrier_sync_f_slow_invoke + 71
    12  libdispatch.dylib                   0x0223e4b0 _dispatch_client_callout + 14
    13  libdispatch.dylib                   0x0222c75e _dispatch_main_queue_callback_4CF + 340
    14  CoreFoundation                      0x01b04a5e __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 14
    15  CoreFoundation                      0x01a456bb __CFRunLoopRun + 1963
    16  CoreFoundation                      0x01a44ac3 CFRunLoopRunSpecific + 467
    17  CoreFoundation                      0x01a448db CFRunLoopRunInMode + 123
    18  GraphicsServices                    0x03d569e2 GSEventRunModal + 192
    19  GraphicsServices                    0x03d56809 GSEventRun + 104
    20  UIKit                               0x002e1d3b UIApplicationMain + 1225
    21  CollectionTest                      0x0000934d main + 141
    22  libdyld.dylib                       0x024ce725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

我创建了一个演示应用程序,已准备好启动并检查错误,您可以在此处下载:https://www.dropbox.com/s/cg86896ld6240r5/CollectionTest.zip

如果有人知道可能出现什么问题,我将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我认为这与CoreData没有任何关系。我认为这与iOS 7中与doURLificationOnDocument相关的错误有关。我们在我们的应用程序中遇到了同样的问题,它没有使用任何核心数据。如果您查看此堆栈溢出链接:iOS 7 UITextView link detection crash in UITableView,您会看到其他人抱怨同样的问题。

答案 1 :(得分:0)

您没有正确使用Core Data。您的实体彼此之间没有任何关系。相反,你依赖某种外键。这不适用于诸如Core Data之类的对象图,并且可能导致各种不可预测的错误,包括您遇到的错误。

了解Core Data模型的工作原理。请特别注意核心数据编程指南中的Relationships and Fetched Properties一章。