【问题标题】:Checking if NSData exist or not in swift快速检查 NSData 是否存在
【发布时间】:2015-01-17 15:27:11
【问题描述】:

我的核心数据中存储了一个 NSData 对象。我希望能够使用 if 语句检查它是否存在。我似乎无法解决它。我将变量设置为:

var coreImage : NSData?

我尝试过使用:

if (coreImage != nil) {

            println("Use core image")

        }else {

           println("Do something else")

}

我知道我将 NSData 存储在核心数据中,但它从未像我想要的那样运行 if 语句,所以我一定做错了什么?

谁能帮忙?

谢谢。

【问题讨论】:

  • 如果您在 coreImage 中获得非 nil 值,则 if 检查应该有效
  • 你是让Xcode创建NSManagedObject子类文件还是你自己写的?对于“二进制数据”属性,它应该是 @NSManaged var coreImage: NSData
  • 如果你没有为你的 coreImage 变量赋值,它将等于 nil,所以你的 if 语句中的代码永远不会被调用也就不足为奇了。
  • 如果您的问题是如何检查是否设置了 可选核心数据属性,那么这可能会有所帮助:stackoverflow.com/questions/25661120/…

标签: ios swift if-statement core-data


【解决方案1】:

检查NSData's length 是否> 0,就是这样。 示例:

if (coreImage.length > 0) {
//we're cool
}

【讨论】:

    【解决方案2】:

    我比你更熟悉 Swift,但我认为你需要做一些特殊的工作来访问和利用 Core Data 中的项目。试试这样的:

    let fetchRequest = NSFetchRequest(entityName: "coreImage")
    if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [NSData] {  
       println("Use core image")    
    } else {
       println("Do something else")
    }
    

    【讨论】:

    • 这根本与 CoreData 无关
    • 我不确定我的答案是否真的是错误的,所以投反对票违反了规则。但让我们说它是。在这种情况下,请提供问题要帮助未来的读者。不提供解决方案是懒惰和无益的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 2021-05-14
    • 2023-03-20
    • 2013-03-10
    • 1970-01-01
    相关资源
    最近更新 更多