SIGABRT使用Parse PFQueryTableViewController时

时间:2015-10-26 02:17:30

标签: ios objective-c sigabrt

我正在尝试从名为Announce的Parse类中提取数据,但我在 main.m 中收到错误。我尝试了很多东西,包括重置模拟器。

#import "AnnouncementTable.h"
#import "ParseUI/PFQueryTableViewController.h"
#import <Parse/Parse.h>
@interface AnnouncementTable : PFQueryTableViewController
@end
@implementation AnnouncementTable : PFQueryTableViewController
- (id)initWithStyle:(UITableViewStyle)style {
    self = [super initWithStyle:style];
    if (self) {
        // This table displays items in the Todo class
        self.parseClassName = @"Announce";
        self.pullToRefreshEnabled = YES;
        self.paginationEnabled = NO;
        self.objectsPerPage = 25;
    }
    return self;
}
- (PFQuery *)queryForTable {
    PFQuery *query = [PFQuery queryWithClassName:self.parseClassName];

    // If no objects are loaded in memory, we look to the cache
    // first to fill the table and then subsequently do a query
    // against the network.
    if ([self.objects count] == 0) {
        query.cachePolicy = kPFCachePolicyCacheThenNetwork;
    }

    [query orderByDescending:@"createdAt"];

    return query;
}
- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
                        object:(PFObject *)object {
    static NSString *CellIdentifier = @"HawkCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                      reuseIdentifier:CellIdentifier];
    }

    // Configure the cell to show todo item with a priority at the bottom
    cell.textLabel.text = [object objectForKey:@"Header"];
    cell.detailTextLabel.text = [NSString stringWithFormat:@"Body: %@",
                                 [object objectForKey:@"Body"]];

    return cell;
}
@end

我对XCode很新,但我会尽力回答你可能遇到的任何问题。

非常感谢

马特

1 个答案:

答案 0 :(得分:0)

您可以发布更多代码吗?我没有看到任何明显的错误,但我会确保所有标识符和Parse类名称的拼写都是正确的。此外,

if ([self.objects count] == 0) {
    query.cachePolicy = kPFCachePolicyCacheThenNetwork;
}

确保您没有启用本地数据存储,否则会导致错误,可能是SIGABRT。此外,

    self.paginationEnabled = NO;
    self.objectsPerPage = 25;

我很好奇为什么要禁用分页但指定每页的对象数。这没有任何效果。分页也是PFQueryTableViewController最好的东西之一,如果你不需要它,你可能最好使用常规的UITableViewController。此外,

cell.textLabel.text = [object objectForKey:@"Header"];
cell.detailTextLabel.text = [NSString stringWithFormat:@"Body: %@",
                             [object objectForKey:@"Body"]];

确保对objectForKey的所有调用都返回字符串而不是nil或其他内容。