[英]Parse swift subclass relations
我正在實現解析我的快速應用程序。 我有子類,其中子類有一個成員對象,它是另一個解析子類。 當我嘗試訪問該對象時,應用程序獲得“由於未捕獲的異常而終止應用程序'NSInvalidArgumentException',原因:' - [fve.Workout sets]:無法識別的選擇器發送到實例0x1740d0d10'”
知道如何訪問作為PBObject子類本身的PFObject子類的元素嗎?
這是我如何聲明對象:
class Workout: PFObject, PFSubclassing {
@NSManaged var date: NSDate
@NSManaged var workoutTime: Int
@NSManaged var sets: [ExerciseSet]
...
}
class ExerciseSet: PFObject, PFSubclassing {
@NSManaged var exercise: Exercise
@NSManaged var sets: [SingleSet]
...
}
當我嘗試訪問該字段時,這會導致崩潰:
for workout in historicalWorkoutsParse {
println("workout \(workout)")
let exerciseSets = workout.sets
println("exerciseSet: \(exerciseSets)")
}
即使我確實看到對象中存在數據:
workout <Workout: 0x1740cf8f0, objectId: A3218Oxiuh, localId: (null)> {
date = "2015-09-05 19:39:43 +0000";
sets = (
"<ExerciseSet: 0x1740cf960, objectId: V54sAUKSMf, localId: (null)>"
);
user = "<PFUser: 0x174109240, objectId: LbeTd8GqwU, localId: (null)>";
workoutTime = 0;
}
謝謝!
如果使用PFSubclassing
,則需要先調用registerSubclass
然后才能使用該類。 它也必須在Parse.setApplicationId
調用之前完成:
Workout.registerSubclass()
ExerciseSet.registerSubclass
//Parse.setApplicationId
您必須在application:didFinishLaunchingWithOptions:
調用Exercise.registerSubclass()
之前的Parse.setApplicationId("YOUR_APPLICATION_ID")
application:didFinishLaunchingWithOptions:
您還需要覆蓋自定義子類中的parseClassName
Parse似乎並不喜歡我使用“sets”作為對象名稱。 當我把它改成“exerciseSet”它似乎工作(當我作為字典訪問它時它也有效...鍛煉[“設置”])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.