我正在尝试从名为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很新,但我会尽力回答你可能遇到的任何问题。
非常感谢
马特
答案 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或其他内容。