Parse platform 导致NSInternalInconsistencyException的已注册子类的PFQuery

Parse platform 导致NSInternalInconsistencyException的已注册子类的PFQuery,parse-platform,pfquery,pfobject,pfsubclassing,Parse Platform,Pfquery,Pfobject,Pfsubclassing,在这一点之前,我与Parse相处得很顺利。我现在有一段代码在下面 // Retrieve all ride requests PFQuery *query = [RideRequest query]; [query includeKey:@"customer"]; [query whereKey:@"status" equalTo:@(RIDE_REQUESTED)]; [query orderByDescending:@"numberOfPeople"]; [query findObjects

在这一点之前,我与Parse相处得很顺利。我现在有一段代码在下面

// Retrieve all ride requests
PFQuery *query = [RideRequest query];
[query includeKey:@"customer"];
[query whereKey:@"status" equalTo:@(RIDE_REQUESTED)];
[query orderByDescending:@"numberOfPeople"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    rides = objects;
}];
当我收到以下错误时,不会输入上面的块 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“Key”numberOfPeople“没有数据。在获取其值之前调用fetchIfNeeded。“

RiderRequest是一个注册的子类。类接口是您在下面看到的基本形式

@class User
@interface RideRequest : PFObject<PFSubclassing>

@property (nonatomic, strong) User *customer;
@property (nonatomic) int status;
@property (nonatomic, strong) NSString *numberOfPeople;
@class用户
@接口RideRequest:PFObject
@属性(非原子,强)用户*客户;
@属性(非原子)int状态;
@属性(非原子,强)NSString*numberOfPeople;
User是PFUser的注册子类

@class RideRequest
@interface User : PFUser<PFSubclassing>

@property (nonatomic, strong) RideRequest *rideRequest;
@class-RideRequest
@界面用户:PFUser
@属性(非原子,强)RideRequest*RideRequest;

我还有其他子类pfobjects,它们在执行PFQuery时没有任何问题,但是它们都没有对User(PFUser的子类)的引用。我认为这可能与我为什么看到这个问题有关。我不知道为什么钥匙“numberOfPeople”被称为需要取回。它不是指向PFObject的指针。所以有点混乱。任何帮助都将不胜感激

解决了我自己的问题。我在自定义PFObject子类上重写init方法。从我的实现中删除-(instancetype)init方法并添加我自己的自定义初始值设定项有助于解决此问题。结果表明,PFQuery在为其返回的NSArray生成对象时,在其实现中调用init方法(或者至少它看起来是这样做的)


同样值得注意的是,我注意到从模拟器进行调试比从我的设备进行调试提供了更详细的堆栈跟踪。不确定这是否与解析相关

解决了我自己的问题。我在自定义PFObject子类上重写init方法。从我的实现中删除-(instancetype)init方法并添加我自己的自定义初始值设定项有助于解决此问题。结果表明,PFQuery在为其返回的NSArray生成对象时,在其实现中调用init方法(或者至少它看起来是这样做的)

同样值得注意的是,我注意到从模拟器进行调试比从我的设备进行调试提供了更详细的堆栈跟踪。不确定这是否与解析相关