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如果你不想乱用 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 Playground 有啥问题?