这让我发疯,并不确定最新情况。我有一个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
答案 0 :(得分:-1)
你能解决的地方? 我有一个类似的问题,其中detailTextLabel没有在iOS7上更新,而它在iOS6上工作正常。在我的情况下,如果我在顶部呈现另一个视图而不是回到tableview,我看到标签已经更新。