UICollectionViewController与Parse的问题

时间:2016-01-07 04:12:38

标签: ios objective-c

我的Parse数据库上有数据,我正在尝试检索该数据并显示在UICollectionViewCell下的UILabel中。

-(void)viewDidLoad {
[super viewDidLoad];
 PFQuery *retrieveClass = [PFQuery queryWithClassName:@"ClassName"];
    [retrieveClass findObjectsInBackgroundWithBlock:^(NSArray *objets, NSError *error) {

        if (!error) {
           classArray = [[NSArray alloc] initWithArray:objets];
            NSLog(@"%@", objets);
        }
    }];
}

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {

    return 1;
}


- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {

    return classArray.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];

    PFObject *tempDict = [classArray objectAtIndex:indexPath.row];

    cell.label.text = [tempDict objectForKey:@"Name"];
    NSLog(@"%@",[tempDict objectForKey:@"Name"]);

    return cell;
}

classArray是一个NSArray,我创建了一个UICollectionViewCell文件并创建了一个UILabel然后导入到我的主文件中。

我添加了小区标识符,建立了连接,我不知道出了什么问题。

类名是正确的,字段名称是正确的,解析ID和ClientKeys是正确的。

我在查询块下获取日志反馈,但在UICollectionViewCell下没有任何内容。

记录输出 enter image description here

2 个答案:

答案 0 :(得分:1)

更改此行

cell.label.text = [classArray objectAtIndex:indexPath.row];

cell.label.text = [tempDict objectForKey:@"Name"];

答案 1 :(得分:0)

尝试重新加载数据

[retrieveClass findObjectsInBackgroundWithBlock:^(NSArray *objets, NSError *error) {

    if (!error) {
       classArray = [[NSArray alloc] initWithArray:objets];
       NSLog(@"%@", objets);
       [self.collectionView reloadData];
    }
}];

您仍然可以获得任何更新的值,然后使用dispatch_async块调用它。

dispatch_async(dispatch_get_main_queue(), ^{

    [self.collectionView reloadData];
});

标签值为cell.label.text = [tempDict objectForKey:@"Name"];

希望它会帮助你。
感谢