【问题标题】:PFObject does not have a member named 'saveInBackground' in Xcode 6.0.1, Yosemite GM3PFObject 在 Xcode 6.0.1、Yosemite GM3 中没有名为“saveInBackground”的成员
【发布时间】:2014-10-16 18:36:12
【问题描述】:

Parse 在 Yosemite 中的行为很奇怪,saveInBackground 声称不是 PFObject 的成员。

var score = PFObject(className: "score")
    score.setObject("Mo", forKey: "name")
    score.setObject(1, forKey: "scoreCount")
    score.saveInBackground()

显然这应该可行,也许这是 Xcode 6.0.1 或 Yosemite GM3(或组合)的问题。需要明确的是,使用 saveInBackgroundWithBlock 可以正常工作。

有没有其他人遇到过这种或类似的奇怪错误?

【问题讨论】:

    标签: ios xcode swift parse-platform


    【解决方案1】:

    saveInBackground 方法在标头中声明以返回 BFTask * 对象,该对象是 Bolts 框架的一部分。确保您的项目正在链接 Bolts 框架,然后添加

    #import <Bolts/Bolts.h>
    

    到您的桥接头。

    这为我解决了 Swift 中一些“缺失”的 API(这个,以及这里提到的 PFAnalytics.trackAppOpenedWithLaunchOptionsWhy does my PFAnalytics not have trackAppOpeneWithLaunchOptions function? (IOS SWIFT)

    【讨论】:

    • 在我的桥接头中,我现在有:#import #import 但是即使框架是,我也找不到 bolts/bolts.h 文件重要的是精简解析框架。
    【解决方案2】:

    如果你不想乱用 Parse 框架文件,你应该替换:

    score.saveInBackground()
    

    与:

    score.saveInBackgroundWithTarget(nil, selector: nil)
    

    【讨论】:

      【解决方案3】:

      自 1.0 版起不再需要桥接头。要解决此问题,只需在班级顶部、import Parse 下方添加 import Bolts

      import Parse
      import Bolts
      

      使用添加的 import 语句,saveInBackground() 应该可以正常工作。

      【讨论】:

        【解决方案4】:

        好的,知道了,在解析框架中打开标头,转到PFObject.h 并打开它,导航到显示@name Saving Objects 的位置并写下:

        (void)saveInBackground;
        

        运行应用程序或关闭并再次打开 Xcode 并尝试再次记下代码,saveInBackground 现在应该是您分数的PFobject

        【讨论】:

        • 这解决了这个问题。但是有谁知道为什么这不在 PFObject.h 中?
        • 这是一个危险的答案,将来可能会引起问题,请检查stackoverflow.com/a/26520728/2589276
        【解决方案5】:

        这个作品

        testObject.saveEventually()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-10-07
          • 1970-01-01
          • 1970-01-01
          • 2014-11-21
          • 1970-01-01
          • 2015-12-08
          • 2014-10-19
          相关资源
          最近更新 更多