从UITableViewCell隐藏UIImageView以查找不存在的Core Data条目

时间:2014-04-15 19:11:12

标签: ios core-data uitableview nsfetchedresultscontroller

我正在将我的应用从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];

}

我正在初始化viewDidLoadviewWillAppear中的self.pin。

我在第一个if语句中添加了因为在我的脑海中,更新前的单元格不应该有任何注释。

当我运行此代码时,所有单元格在更新后第一次运行应用程序时继续使用该引脚。

非常感谢任何有关解决此问题的指导!

1 个答案:

答案 0 :(得分:1)

您需要更新主线程上的UI:

if (!transaction.notes) {
 dispatch_async (dispatch_get_main_queue (), ^{
      NSLog(@"No notes");
      [[customCell viewWithTag:777] removeFromSuperview];
                });
}