【发布时间】:2014-10-28 22:42:00
【问题描述】:
如何检查核心数据对象中是否设置了属性?
我将所有核心数据对象加载到一个目录中:
var formQuestions = [Questions]()
而我的核心数据 NSManagementObject 是:
@NSManaged var noticeText: String
formQuestions[indexPath.row].noticeText
// 加载:
var fetchRequest = NSFetchRequest(entityName: "Questions")
fetchRequest.predicate = NSPredicate(format: "forms = %@", currentForm!)
formQuestions = context.executeFetchRequest(fetchRequest, error: nil) as [Questions]
我的属性“noticeText”可能为空,所以当我创建我的核心数据对象时,一些值可能没有设置。 (该属性在 Core Data 中设置为可选)
当我现在尝试证明是否有值时,它总是给我带来“EXC_BAD_ACCESS....”
if(formQuestions[indexPath.row].noticeText.isEmpty == false)
我可以在创建核心数据对象时设置一个空字符串,但这应该不是一个好的解决方案。
那么我如何检查是否存在(可选)而不是设置的值?
提前致谢。
【问题讨论】:
-
@NSManaged var noticeText: String-- 这不是可选的 -- 使用 !要么 ?看你想要什么 -
哦,我的错。但是我用 Editor->CreateNSManagedSublcas 完成了这个并且没有?当我使用“可选”时-但这不是我的问题-我仍然不知道如何检查该属性是否已设置。