Parse.com 存储布尔数组

Parse.com Store Array of booleans

我正在尝试存储来自查询的布尔值数组,但该数组为 null。

这是我的:

PFQuery *businessInquiry = [PFQuery queryWithClassName:@"BusinessInquiry"];
businessInquiry.cachePolicy = kPFCachePolicyIgnoreCache;
[businessInquiry selectKeys:@[@"messageBody", @"emailAddress"]];
[businessInquiry orderByDescending:@"createdAt"];
[businessInquiry findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    self.businessInquiryEmailArray = [objects valueForKey:@"emailAddress"];
    self.businessInquiryMessageArray = [objects valueForKey:@"messageBody"];
    self.businessInquiryObjIdArray = [objects valueForKey:@"objectId"];
    self.businessisNewArray = [objects valueForKey:@"messageRead"]; //this column is a BOOL column in parse backend but it returns null
}];

我的目标是 cross-reference 详细信息 Table 视图控制器 cellForRowAtIndexPath: 如果它是新的,请在 cell.imageView.image 插槽中添加一个图标以表明它是新的视觉效果如:

if ([self.isNew objectAtIndexPath:indexPath.row] == FALSE) {
    //New message
} else {
    //Read
}

为什么不存储值?

我也试过了:

self.businessiSNewArray = [[objects valueForKey:@"messageRead"] boolValue];

但这也没有用。有什么建议吗?

编辑

我像这样将数组传递给详细视图控制器:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DetailTableViewController *detailVC = [storyboard instantiateViewControllerWithIdentifier:@"DetailTableViewController"];
detailVC.emailAddressArray = self.businessInquiryEmailArray;
detailVC.messageBodyArray = self.businessInquiryMessageArray;
detailVC.objIds = self.businessInquiryObjID;
detailVC.isNew = self.businessisNewArray;
detailVC.title = @"Business Inquiries";
[self.navigationController pushViewController:detailVC animated:YES];
}

除布尔值外,DetailVC header 中的所有内容都与其各自的 属性 相关。他们 return null

这个问题有点与保罗所说的有关,但又不是。是的,您可以将它们作为一个数字装箱,但在您的情况下无关紧要。

问题之一是,如果您知道它是什么,您会拍打自己的额头说,噢噢噢!

简单地说,您已将查询限制为不包括 messageRead 列类型,不管它是什么类型的列,它可以是任何内容(字符串、数字等),但事实上您已通过 在'selectKeys:`中排除它就是为什么它returning null:

selectKeys: Make the query restrict the fields of the returned PFObjects to include only the provided keys.

参考: https://parse.com/docs/ios/api/Classes/PFQuery.html#//api/name/selectKeys:

只是一个简单的忽略。如果这些是后端 class 中仅有的 3 列,那么实际上没有必要使用 selectKeys: 因为它会 return 所有对象,而您只需将它们传递到可回收阵列。