我有一个UITableView,它不会在arm64设备上重新加载数据。 tableview在首次启动应用程序时加载数据,但后续重新加载不会加载数据。 相同的应用程序版本适用于armv7s设备。有趣的是,当我将一个arm64设备连接到XCode进行调试时,表视图会重新加载数据。如果我删除应用程序并在没有XCode的情况下再次运行应用程序,则表格视图不会重新加载。
我能够通过日志验证在[self.tableView reloadData]
之后调用tableview的以下委托方法。但是,该表不会在UI中更新。
- numberOfSectionsInTableView
- numberOfRowsInSection
- scrollViewDidScroll
- cellForRowAtIndexPath
这就是我将其缩小到的范围。如果我在Build Settings中使用arm64支持进行编译,则表视图不会在arm64设备上刷新。如果我从构建设置中删除arm64,则tableview会刷新,但我无法上传到App Store,因为它没有启用64位。
有没有其他人看到过这种行为,或者是否可能指出任何导致这种情况的事情?
这里的代码为黑色,我调用了tableview重新加载
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
// The request is complete and data has been received
// You can parse the stuff in your instance variable now
NSError* error;
NSMutableArray *newFeeds;
newFeeds = [NSJSONSerialization JSONObjectWithData:_responseData options:NSJSONReadingMutableContainers error:&error];
#if DEBUG
//[Flurry logEvent:newFeeds.description];
#endif
NSLog(@"newFeeds count %lu", (unsigned long)newFeeds.count);
if([self.requestType isEqual:@"top"])
{
//feeds = [feeds arrayByAddingObjectsFromArray:newFeeds];
NSLog(@"requestType isEqual:@top");
NSComparator compareDates = ^(NSDictionary *feed1, NSDictionary *feed2){
NSDate *date1 =[feed1 objectForKey:@"d"];
NSDate *date2 =[feed2 objectForKey:@"d"];
if ([date1 compare:date2] == NSOrderedDescending){
return NSOrderedAscending;
}
else if ([date1 compare:date2] == NSOrderedAscending){
return NSOrderedDescending;
}
else{
return NSOrderedSame;
}
};
for (NSDictionary *feed in newFeeds)
{
//int i = -1;
int j = -1;
//NSDate *feedDate = [feed objectForKey:@"d"];
NSUInteger newIndex = [self.feeds indexOfObject:feed inSortedRange:(NSRange){0, [self.feeds count]} options:NSBinarySearchingInsertionIndex usingComparator:compareDates];
//i = [self.feeds indexOfObject:feed inRange:(NSMakeRange)(newIndex,(self.feeds.count-newIndex))];
j = [self.feeds indexOfObject:feed];
if(j == NSNotFound)
{
[self.feeds insertObject:feed atIndex:newIndex];
}
}
[self.refreshControl endRefreshing];
}
else
{
NSLog(@"requestType isNotEqual:@top");
self.feeds = newFeeds;
}
[self archiveFeeds:self.feeds];
[self.tableView reloadData];