uitableview重新加载无法在arm64设备上运行

时间:2016-12-09 15:12:12

标签: ios objective-c iphone xcode uitableview

我有一个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];

0 个答案:

没有答案