Ios 使用Parse PFQueryTableViewController时出现SIGABRT
我试图从名为Ios 使用Parse PFQueryTableViewController时出现SIGABRT,ios,objective-c,sigabrt,Ios,Objective C,Sigabrt,我试图从名为annound的解析类中提取数据,但在main.m中出现错误。我尝试过很多事情,包括重置模拟器 #import "AnnouncementTable.h" #import "ParseUI/PFQueryTableViewController.h" #import <Parse/Parse.h> @interface AnnouncementTable : PFQueryTableViewController @end @implementation Announceme
annound
的解析类中提取数据,但在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
#导入“AnnouncementTable.h”
#导入“ParseUI/PFQueryTableViewController.h”
#进口
@接口公告表:PFQueryTableViewController
@结束
@实现公告表:PFQueryTableViewController
-(id)initWithStyle:(UITableViewStyle)样式{
self=[super initWithStyle:style];
如果(自我){
//此表显示Todo类中的项目
self.parseClassName=@“宣布”;
self.pullToRefreshanbled=是;
self.paginationEnabled=否;
self.objectsPerPage=25;
}
回归自我;
}
-(PFQuery*)queryForTable{
PFQuery*query=[pfqueryquerywithclassname:self.parseClassName];
//如果内存中没有加载任何对象,我们将查看缓存
//首先填写表格,然后进行查询
//反对网络。
如果([self.objects count]==0){
query.cachePolicy=kPFCachePolicyCacheThenNetwork;
}
[查询orderByDescending:@“createdAt”];
返回查询;
}
-(UITableView单元格*)表格视图:(UITableView*)表格视图
cellForRowAtIndexPath:(NSIndexPath*)indexPath
对象:(PFObject*)对象{
静态NSString*CellIdentifier=@“HawkCell”;
UITableViewCell*单元格=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
如果(单元格==nil){
单元格=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier];
}
//将单元格配置为在底部显示优先级为的待办事项
cell.textLabel.text=[object objectForKey:@“Header”];
cell.detailTextLabel.text=[NSString stringWithFormat:@“正文:%@”,
[objectobjectforkey:@“Body”];
返回单元;
}
@结束
我对XCode相当陌生,但我会尽力回答您可能有的任何问题
非常感谢
马特你能再发一些代码吗?我没有发现任何明显的错误,但我会确保所有标识符和解析类名的拼写都是正确的。而且
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或其他内容。您能再发布一些代码吗?我没有发现任何明显的错误,但我会确保所有标识符和解析类名的拼写都是正确的。而且
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或其他内容。请参阅