簡體   English   中英

解析swift子類關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM