我有一个包含NSString对象的NSMutableArray对象。可变数组对象称为_usersToAddToFriendsList
。当我完成向其添加NSString对象时,我为Parse.com运行以下代码:
[PFUser currentUser];
PFQuery *query = [PFQuery queryWithClassName:@"_User"];
[query whereKey:@"username" equalTo:_userSubmittedUsername];
[query getObjectInBackgroundWithId:_objectId block:^(PFObject *object, NSError *error) {
object[@"friends"] = _usersToAddToFriendsList;
[object saveInBackground];
}];
最重要的部分是这句话:object[@"friends"] = _usersToAddToFriendsList;
这将获取我的NSMutable数组并将其放在Parse.com数据库的“friends”列中。当我在Parse中创建这个列时,我将它的“type”设置为“array”。
所有这一切都很完美,我可以看到我的可变数组的内容已放在数据库的“friends”列中。
这是问题所在。稍后,当我查询“friends”列时,我使用findObjectsInBackgroundWithBlock
的方法调用,这将服务器返回的对象放入名为“objects”的NSArray对象中。
我的问题是,这意味着我现在有一个名为“objects”的数组,其中包含我的NSStrings的原始可变数组。
我需要遍历原始NSMutableArray的字符串值,但我不知道如何获取它们,因为我的原始可变数组包含在服务器返回的新NSArray中。
我尝试过使用人们在之前的堆栈溢出问题中提供的各种多维数组解决方案:Need to loop through an array that is inside of another array
但它永远不会起作用,它总是在xcode中崩溃并说:
-[PFUser countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance
这让我觉得这个问题需要一个专门针对Parse.com如何工作的解决方案。
我只是希望能够访问并循环我最初存储在NSMutableArray中的字符串值。
答案 0 :(得分:1)
我的问题是,这意味着我现在有一个名为“objects”的数组,其中包含我的NSStrings的原始可变数组。
不完全。这意味着你有一个用户对象数组,每个用户对象都包含一个朋友(字符串)数组。
尝试类似
的内容for (PFUser *user in objects) {
NSArray *friends = [user objectForKey:@"friends"];
for (NSString *friend in friends) {
NSLog(@"Friend is '%@'", friend);
}
}