我正在将我的应用从App Store版本更新到新版本。我的应用是一个简单的UITableViewController
,用户可点击UINavigationBar
按钮项并将信息添加到UITextFields
中。当用户保存时,信息将保存到Core Data,UITableViewController
将填充NSFetchedResultsController
。
模型很简单:具有notes属性的Transaction Entity(还有其他属性,但这不相关)。
现有的App Store版本无法让用户创建备注,但新版本可以在“添加条目”屏幕中使用UITextView
。
如果条目有注释,UITableViewCell
包含图钉图像。
该引脚正在整个应用程序中运行,但如果我从App Store版本更新到新版本,它会在所有单元格上显示一个不应该可能的引脚,考虑到它们当然没有注释。我知道我在这里错过了一些简单但我无法弄明白的事情:
此代码位于我的cellForRow
:
self.pin = [[UIImageView alloc] initWithFrame:CGRectMake(13, 30, 24, 25)];
self.pin.image = [UIImage imageNamed:@"pin"];
self.pin.tag = 777;
if (!transaction.notes)
{
NSLog(@"No notes");
[[customCell viewWithTag:777] removeFromSuperview];
}
if ([transaction.notes isEqualToString:@""] || ([transaction.notes isEqualToString:@" "] || ([transaction.notes isEqualToString:@" "] || ([transaction.notes isEqualToString:@" "]))))
{
NSLog(@"Remove Notes");
[[customCell viewWithTag:777] removeFromSuperview];
}
else
{
NSLog(@"Notes");
[customCell addSubview:self.pin];
}
我正在初始化viewDidLoad
和viewWillAppear
中的self.pin。
我在第一个if语句中添加了因为在我的脑海中,更新前的单元格不应该有任何注释。
当我运行此代码时,所有单元格在更新后第一次运行应用程序时继续使用该引脚。
非常感谢任何有关解决此问题的指导!
答案 0 :(得分:1)
您需要更新主线程上的UI:
if (!transaction.notes) {
dispatch_async (dispatch_get_main_queue (), ^{
NSLog(@"No notes");
[[customCell viewWithTag:777] removeFromSuperview];
});
}