我正在试图通过enumerateObjectsUsingBlock访问NSArray上的每个项目,因为它允许我使用快速枚举和评估索引。
当我使用findObjectsInBackgroundWithBlock时,
我收到警告:主要正在执行长时间运行的操作 线。打破warnBlockingOperationOnMainThread()进行调试。
正如我认为在后台使用不阻止Mainthread。这是我的代码和我正在努力实现它我有两个UIImageView容器,我从该查询的关系结果拉动图像。由于我只有容器,所以最好只评估NSArray的索引。
不确定如何纠正这个警告。
由于
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (objects != 0) {
[objects enumerateObjectsUsingBlock:^(PFUser *object, NSUInteger idx, BOOL *stop) {
if (idx == 0) {
PFFile *userProfile = [object objectForKey:@"userPic"];
cell.promoter1.file = userProfile;
cell.promoter1.contentMode = UIViewContentModeScaleAspectFit;
[cell.promoter1 loadInBackground];
cell.promoter1Name.textAlignment = NSTextAlignmentCenter;
cell.promoter1Name.lineBreakMode = NSLineBreakByWordWrapping;
}
if (idx == 1) {
PFFile *userProfile = [object objectForKey:@"userPic"];
cell.promoter2.file = userProfile;
cell.promoter2.contentMode = UIViewContentModeScaleAspectFit;
[cell.promoter2 loadInBackground];
NSAttributedString *promoter1Name;
cell.promoter2Name.textAlignment = NSTextAlignmentCenter;
*stop = YES;
}
}];
}
}];
答案 0 :(得分:0)
对我的代码进行排查,我意识到findObjectsInBackgroundWithBlock
不会导致此警告。
在我的代码的另一部分,我有这个:
PFUser *user = [PFQuery getUserObjectWithId:@"ebwFrl8PcF"];
[relation addObject:user];
[self.event saveInBackground];
哪个阻止主线程。
我道歉。