iOS 7 UITableViewCell textLabel不保留文本

时间:2014-02-22 01:21:49

标签: ios iphone uitableview ios7

这让我发疯,并不确定最新情况。我有一个UITableView,我正在填充UITableViewCells的内容,如此

- (UITableViewCell *)tableView:(UITableView *)a_tableView cellForRowAtIndexPath:(NSIndexPath *)a_indexPath
{
    NewsItemCell * cell = (NewsItemCell *)[a_tableView dequeueReusableCellWithIdentifier:@"NewsItemCell"];
    if(cell == nil)
    {
        cell = [[[NewsItemCell alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 0)] autorelease];

    }
    if(!m_isLoading)
    {
        NewsFeed * feed = [NewsFeed sharedNewsFeed];
        NewsEntry * entry = [[feed feedEntries] objectAtIndex:[a_indexPath row]];

        [cell setNewsEntry:entry];
    }
    else 
    {
        if([a_indexPath row] < [m_visibleCells count])
        {
            return [m_visibleCells objectAtIndex:[a_indexPath row]];
        }
    }

    return cell;
}

包含[cell setNewsEntry:entry]的行接受NewsEntry对象,并将单元格textLabel.text设置为条目中包含的字符串。这在iOS 6中工作正常,但在iOS 7中,标签没有显示文本。

- (void)setNewsEntry:(NewsEntry *)a_newsEntry
{
    self.textLabel.text = a_newsEntry.title;
    self.detailTextLabel.text = a_newsEntry.summary;
    self.imageView.image = [self getIconForFeedType:[a_newsEntry feedType]];   
}

我已经在setNewsEntry中做了一些事情,如果我将self.textLabel.text设置为字符串文字,例如@“你好”然后它工作正常。我在setNewsEntry中也没有很多NSLog,以确保a_newsEntry实际上有一个有效的title和summary属性,但是由于某种原因,textLabel似乎没有保留它们。

起初我认为这是NewsEntry对象的一些内存问题但是对我来说没有意义为什么在iOS 7而不是iOS 6中会出现这种情况。不应该将textLabel.text属性保留在它被设置为NSString?

如果有人对于为什么会这样做有任何想法,请告诉我,我可以为您提出的任何问题提供答案。

谢谢。

编辑:NewsEntry界面

@interface NewsEntry : NSObject
{
    NSString * m_title;
    NSString * m_summary;
    NSString * m_published;
    NSString * m_updated;
    NSString * m_link;
    int m_feedType;
}

@property (nonatomic, readonly) NSString * title;
@property (nonatomic, readonly) NSString * summary;
@property (nonatomic, readonly) NSString * published;
@property (nonatomic, readonly) NSString * updated;
@property (nonatomic, readonly) NSString * link;
@property (nonatomic, readonly) int feedType;

- (NSDictionary *)properties;
- (NewsEntry *)initWithProperties:(NSDictionary *)a_properties;
- (NSComparisonResult)compareEntry:(NewsEntry *)entry;

@end

1 个答案:

答案 0 :(得分:-1)

你能解决的地方? 我有一个类似的问题,其中detailTextLabel没有在iOS7上更新,而它在iOS6上工作正常。在我的情况下,如果我在顶部呈现另一个视图而不是回到tableview,我看到标签已经更新。