Core Data奇怪的属性问题

时间:2015-01-11 10:59:49

标签: objective-c core-data properties crash relationship

我刚注意到我的应用程序使用Core Data存在一个奇怪的问题(之前没有发生过)。

以下是一段代码:

NSArray *allTransactions = [CDMTransaction transactionsFrom:_dateFrom to:_dateTo bankAccounts:_displayedBankAccounts categories:categories recipients:recipients tags:tags unclosedOnly:unclosedTransactionsOnly];
for (CDMTransaction *transaction in allTransactions) {
    if (transaction.inverseTransaction != nil) {
        ...
    }
}

问题的原因是对transaction.inverseTransaction的调用。

CDMTransactionNSManagedObject的子类,包含多个属性和关系(如inverseTransaction)。

到目前为止一切正常,但是在调用此属性时出现崩溃: CoreData:错误:警告snapshot_get_value_as_object调用NULL ,它将我发送到inverseTransaction属性实现。

但是当我尝试记录allTransactions数组内容时,在输入" for"循环,它只是工作正常!

以下是更新后的代码:

NSArray *allTransactions = [CDMTransaction transactionsFrom:_dateFrom to:_dateTo bankAccounts:_displayedBankAccounts categories:categories recipients:recipients tags:tags unclosedOnly:unclosedTransactionsOnly];
NSLog(allTransactions: %@, allTransactions);
for (CDMTransaction *transaction in allTransactions) {
    if (transaction.inverseTransaction != nil) {
        ...
    }
}

我在日志控制台中得到了什么:

2015-01-11 11:54:51.613 Cash[14383:1403274] allTransactions: (
    "<CDMTransaction: 0x7b94d4a0> (entity: CDMTransaction; id: 0x7b935f30 <x-coredata://12493FBF-2D83-469C-9610-D7C29E21F12B/CDMTransaction/p1> ; data: <fault>)"
)

......之后没有任何问题。

它似乎不是inverseTransaction属性的问题,因为它与所有其他属性(NSStringXNSNumber,...)和关系... < / p>

有什么问题?

编辑1:当崩溃时,我的属性实现行以绿色突出显示,出现EXC_BAD_INSTRUCTION错误(而不是EXC_BAD_ACCESS)

编辑2:当我向request.returnsObjectsAsFaults = NO;添加NSFetchRequest时,应用程序不再崩溃...所以现在似乎没关系,但我为什么要这样做写那个?它之前并不需要它......

0 个答案:

没有答案