我正在为我的swift应用程序实现解析。 我有子类,其中子类有一个成员对象,它是另一个解析子类。当我尝试访问该对象时,应用程序会因未捕获的异常而获得“终止”应用程序' NSInvalidArgumentException',原因:' - [fve.Workout sets]:发送到实例的无法识别的选择器0x1740d0d10'"
我知道如何访问PFObject子类的元素本身是PBObject子类吗?
以下是我如何宣布对象:
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;
}
谢谢!
答案 0 :(得分:3)
如果您使用PFSubclassing
,则需要先致电registerSubclass
才能使用该课程。还必须在Parse.setApplicationId
电话之前完成:
Workout.registerSubclass()
ExerciseSet.registerSubclass
//Parse.setApplicationId
答案 1 :(得分:2)
您必须在Exercise.registerSubclass()
Parse.setApplicationId("YOUR_APPLICATION_ID")
之前致电application:didFinishLaunchingWithOptions:
您还需要覆盖自定义子类
中的parseClassName
答案 2 :(得分:2)
Parse似乎并不喜欢我正在使用&#34; set&#34;作为对象名称。当我把它改成&#34; exerciseSet&#34;它似乎工作(当我作为字典访问它时它也有效...锻炼[&#34;设置&#34;])