0

多対多の関係にあるNoteとTagの2つのエンティティがあります。ノートをタップして、存在するすべてのタグが入力されたUITableViewを作成できるようにしたいのですが、タップされたノートと関係のあるすべてのタグの右側にUITableViewCellAccessoryCheckmarkがあります。

私が試したのは、すべてのタグを含む配列と関連するタグを含む配列の2つの配列をフェッチすることです。それから私はこのようなことをしました:

 for (int i = 0; i < [self.tagArray count]; i++) {
    Tag *new = [self.tagArray objectAtIndex:i];
    if ([self.all containsObject: new])
    {
        new.isIn = TRUE;
    }
    else {
        new.isIn = FALSE;
    }

}

isInはTagのプロパティであり、次のように初期化されます。

Tag.hの場合:

@property BOOL isIn;

Tag.mの場合:

@synthesize isIn;

しかし、これは間違ったアプローチだと感じています。誰かがより良い解決策を考えることができますか?

4

1 に答える 1

1

私のコメントによると、とにかくすべてのタグを表示している場合は、タグにチェックマークを付ける必要があるかどうかを事前に確認する必要はありません。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // not going to go into basic cell generation logic here
    Tag *currentTag = [self.tagArray objectAtIndex:indexPath.row];
    if([self.all containsObject: currentTag])
    {
       // checkmark
    }
    else
    {
       // no checkmark
    }
    return cell;
}
于 2012-09-26T21:13:50.153 に答える