メインビューコントローラから黄色い影を持つビューを削除しようとしています。コアデータ:コアデータに保存されているビューを削除する
番号を正しく登録しますが、削除しません。 (それは私がsetNeedsDisplayとそれらの行のすべてを呼び出そうとしたビューを更新しませんが、動作しません。それは、アプリケーションを終了したときに更新するだけです。私が何かをリリースしていないのですか?)もしそれを持っていたら、それは1つの項目を渡しただけです..削除するためにそれをクリックすると、それは働いていましたが、これは影では機能しません。あなたはなぜか分かりますか?
更新: 私はコアデータ(ページ)に保存されているビューを持っており、選択されたときにそのページを削除して、黄色の影を残したいと思います。ビューを配列などに追加する方法が必要な場合は、シャドウを追加してから削除する必要があるときにそれらを見つけます。
-(void)trashitems{
for (NSString *itemKey in [itemViews allKeys]){
UIView<CollectionViewItemView> *itemview = [itemViews objectForKey:itemKey];
if ([itemview layer].shadowColor == [UIColor yellowColor].CGColor){
NSLog(@"remove %i",[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]);
if ([dataDelegate respondsToSelector:@selector(collectionView:canDeleteItemAtIndex:)]
&& [dataDelegate collectionView:self canDeleteItemAtIndex:[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]]
&& [dataDelegate respondsToSelector:@selector(collectionView:didDeleteItemAtIndex:)])
{
[itemViews release];
NSUInteger itemsCountBeforeDeletion = [dataDelegate countOfItemsInCollectionView:self];
[dataDelegate collectionView:self didDeleteItemAtIndex:[[NSDecimalNumber decimalNumberWithString:itemKey] unsignedIntegerValue]];
NSUInteger itemsCountAfterDeletion = [dataDelegate countOfItemsInCollectionView:self];
if (itemsCountBeforeDeletion - 1 != itemsCountAfterDeletion){
[NSException raise:@"Collection View Deletion Exception" format:@"Count of items in collection view before deletion (%u) must equal one more than count of items in collection view after deletion (%u) but did not.", itemsCountBeforeDeletion, itemsCountAfterDeletion];
}
}
}
}
}
あなたの質問は紛らわしく、UIViewとコアデータを削除する間の接続がわかりにくいです。また、 'trashitems'メソッドは' removePageAtIndex'を呼び出すのではなく、その逆もあります。そのため、どうやって接続されているのかは分かりません。マネージオブジェクトのコンテキストはUIViewを制御しないので、ここで実際に何をしようとしていますか? –
コードを更新しようとしましたが、部品を忘れましたが、コアデータ(ページ)に保存されているビューがあり、選択されたときにそのページを削除して、黄色の影が残るようにしたい。 – BDGapps
レイヤのシャドーカラーを比較することは、削除するデータを判断するうえで貧弱な方法です。モデルオブジェクトに 'shouldDelete'のようないくつかの属性をテストして、どのようなシャドウカラーを使うのか決定するようにしてください。現在のスキームがMVCの明確な違反であることを除けば、これが間違っている可能性がある方法が多すぎます。 '[UIColor yellowColor] .CGColor'は常に同じCGColorRefを返しますか?あなたはグラフィックスシステムで何もあなたが割り当てる色を変えることはないと確信していますか? – Caleb