我想要一个标准的子类来和斯威夫特一起工作。
Bridging-Header.h
#import <Parse/Parse.h>
#import <Parse/PFObject+Subclass.h>
#import <Parse/PFGeoPoint.h>子类
class Event: PFObject, PFSubclassing {
class func parseClassName() -> String! {
return "Event"
}
override class func load() {
registerSubclass()
}
}获取编译错误,说明该事件不符合PFSubclassing。
有什么建议吗?
发布于 2014-07-22 23:17:00
看看这条线。以下是对这一问题的解释:
我已经打开了一个bug来分析这一点。基本上,问题在于PFSubclassing.h中的协议定义以这种方式定义这个方法的Parse头文件:+ (instancetype)objectWithoutDataWithObjectId:(NSString )objectId;但是,同样的方法由PFObject+Subclass.h以这种方式实现(注意不同之处: instancetype -> id) + (id)objectWithoutDataWithObjectId:(NSString )objectId;这足以让Swift抱怨。我找到的唯一解决方案是将"id“替换为"instancetype”,从而直接更改框架定义中的标头。如果这样做,代码将编译。
所以,这是你的解决方案,它对我有效;我也遇到了同样的问题:
objectWithoutDataWithObjectId:方法(id)objectWithoutDataWithObjectId:(NSString *)objectId;发布于 2015-07-27 18:26:04
查看我的Parse子类生成器GSParseSchema。它可以为您生成Swift和Objective类。
在Swift中,您需要重写初始化函数。
override class func initialize() {
struct Static {
static var onceToken : dispatch_once_t = 0;
}
dispatch_once(&Static.onceToken) {
self.registerSubclass()
}
}我发现这个自动注册并不总是有效的,所以我也显式地在我的AppDelegate中注册了子类。在用setApplicationId:clientKey:初始化分析之前,一定要先注册
Event.registerSubclass()发布于 2015-11-03 10:11:51
对于最新版本的Parse 1.9.1和Swift 2.1,适用以下内容:
类事件: PFObject { // code }
示例可以如下所示:
class Event: PFObject {
// @NSManaged gives you autosuggest and type check
@NSManaged var var1: String?
@NSManaged var var2: String?
override class func initialize() {
struct Static {
static var onceToken : dispatch_once_t = 0;
}
dispatch_once(&Static.onceToken) {
self.registerSubclass()
}
}
}我会尝试你的类生成器,觉得我可以节省很多时间在那里。一直在研究将Swift物体映射到Parse的最佳方法。我从UML类图构建了我的结构,并将Parse DB中的关系集添加到关系图中。虽然这给了我我需要的东西,但不是最好的练习。
使用生成器,并将其设计为4层,第4层为Parse DB,第3-1层为MVC,M由代码和UML类图中所需的逻辑生成。
https://stackoverflow.com/questions/24898857
复制相似问题