当我尝试返回我的newsItems数组的计数时,它会破坏我的应用程序。我使用NSLog来查看当我返回1时newsItems的值是多少。
这是来自NSLog 2010-04-13 07:48:40.656 RSS Feed [453:207] num项的值31 2010-04-13 07:48:40.656 RSS Feed [453:207]项目数31
有谁知道为什么返回[newsItems count]会导致我的应用程序崩溃?
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
NSLog(@"Values of num items %d",[newsItems count]);
NSInteger *length = (NSInteger *)[newsItems count];
NSLog(@"Number of items %d",length);
return 1;
//return [newsItems count]; //This keeps breaking it for some reason
}
答案 0 :(得分:1)
我在你的代码中发现了非常愚蠢的问题。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
NSLog(@"Values of num items %d",[newsItems count]);
NSInteger *length = (NSInteger *)[newsItems count];
NSLog(@"Number of items %d",length);
return 1;
//return [newsItems count]; //This keeps breaking it for some reason
请参阅NSInteger *length = (NSInteger *)[newsItems count];
此处遇到问题。
你需要写这个
NSInteger length = [newsItems count];
return length;
NSInteger是整数变量的typedef(其他名称),它不是一个类 - (这就是你在变量之前不需要'*'的原因)
答案 1 :(得分:0)
为什么你的NSInteger是一个指针类型?声明和初始化长度的行应为
NSInteger length = [newsItems count];
您是否检查过问题是否在另一种方法中,可能是numberOfRows还是cellForRow?
答案 2 :(得分:0)
您确定需要numberOfSectionsInTableView
而不是numberOfRowsInSection
吗? numberOfSectionsInTableView
,如果未实施,则返回1.
如果是这样,请记住,如果您实施numberOfSectionsInTableView
,则还需要实施numberOfRowsInSection
。请记住,在收到您的部分计数之后,tableview将要做的就是询问每个部分中的行数,然后询问每个部分中每行的项目。
另外,lostInTransit提到了什么:不要尝试返回指向NSInteger的指针。实际上,返回int
的东西也是有效的,并且int
将被隐式转换。否则return 1;
将无效,对吧?