用于在PFObject子类上添加属性和方法的解析文档很方便地跳过了仅列出Objective-C语法的示例代码中的Swift语法:
https://parse.com/docs/ios_guide#subclasses-properties/iOS
// Armor.h
@interface Armor : PFObject<PFSubclassing>
+ (NSString *)parseClassName;
@property (retain) NSString *displayName;
@end
// Armor.m
@dynamic displayName;有没有人想出一个办法来解决Swift缺乏动态合成器的问题,以便用PFSubclassing实现属性和方法?我希望能够做这样的事情:
class Armor : PFObject, PFSubclassing {
class func parseClassName() -> String! {
return "Armor"
}
}
var armor = Armor()
armor.displayName = "Iron Clad"发布于 2014-07-09 13:58:47
我也有同样的问题。我不得不将@NSManaged添加到我想要保存的属性中:
class Armor : PFObject, PFSubclassing {
@NSManaged var displayName: String
class func parseClassName() -> String! {
return "Armor"
}
}
var armor = Armor.object()
armor.displayName = "Iron Clad"希望这个问题能在下一个更新中得到解决。
发布于 2014-09-17 21:48:04
解决方案是使用计算属性而不是存储属性:
class Armor : PFObject, PFSubclassing {
var displayName: String? {
get {
return self["displayName"] as? String
}
set {
self["displayName"] = newValue
}
}
class func parseClassName() -> String {
return "Armor"
}
}发布于 2015-08-07 21:03:47
Swift 1.2
First:创建swift文件并定义子类。别忘了导入Parse!(例如Armor)
import Foundation
import Parse
class Armor: PFObject, PFSubclassing {
// MARK: - PFSubclassing
override class func initialize() {
struct Static {
static var onceToken: dispatch_once_t = 0;
}
dispatch_once(&Static.onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String {
return "Armor"
}
// MARK: - Parse Core Properties
@NSManaged var displayName: String?
}备注:您可以将属性定义为可选参数。Parse Core Manager中的每个“未定义”值都将被转换为"nil“。
第二个:在您的AppDelegate.swift.中注册所有子类
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
// MARK: - Parse Setup
Parse.setApplicationId("YOUR_ID", clientKey: "YOUR_KEY")
// MARK: - Parse Register Subclasses
Armor.registerSubclass()
return true
}https://stackoverflow.com/questions/24581981
复制相似问题