PFObject 在 Xcode 6.0.1、Yosemite GM3 中没有名为“saveInBackground”的成员

Posted

技术标签:

【中文标题】PFObject 在 Xcode 6.0.1、Yosemite GM3 中没有名为“saveInBackground”的成员【英文标题】:PFObject does not have a member named 'saveInBackground' in Xcode 6.0.1, Yosemite GM3 【发布时间】: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 可以正常工作。

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

【问题讨论】:

【参考方案1】:

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

#import <Bolts/Bolts.h>

到您的桥接头。

这为我解决了 Swift 中一些“缺失”的 API(这个,以及这里提到的 PFAnalytics.trackAppOpenedWithLaunchOptions:Why 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 中? 这是一个危险的答案,将来可能会引起问题,请检查***.com/a/26520728/2589276【参考方案5】:

这个作品

testObject.saveEventually()

【讨论】:

以上是关于PFObject 在 Xcode 6.0.1、Yosemite GM3 中没有名为“saveInBackground”的成员的主要内容,如果未能解决你的问题,请参考以下文章

iPad iOS8.0升级和Xcode 6.0.1公布了,附Xcode 6.0.1下载地址

无法在 Xcode 6.1 中存档正在工作的 6.0.1 Swift 项目/分段错误:11

XCode 6.0.1 ios 7 自动布局

我的 Xcode 6.0.1 Playground 有啥问题?

XCode 6.0.1 上的 Apple Mach-O 链接器错误

创建项目时 XCode 6.0.1 错误:文件“排除”不存在