0

CoreDataBooks サンプル アプリをカスタマイズし、Bools のホスト全体を追加しています。基本的にはレストランアプリにしていますので、「ディナー」「シーフード」「カクテル」「キッズフレンドリー」などはBool値にしたいと思っています。

Detailview Controller でアイテム (本) を選択し、CoreData の Bool 値を変更できます。

     self.book.seafood = NO;

また

     self.book.seafood = YES;

これらの値はそれぞれ独自のボタンで切り替えられます (実際には私のアプリではチェックボックスのように見えます)

ただし、60 個または 80 個の Bool が存在する可能性があり、後でさらに追加したいので、タグを使用するかパラメーターを渡すすべての関数に使用できる 1 つの関数を作成したいと思います。みたいなことを書きたいのですが、一歩抜けているような気がします。self.book.button にパラメーターを渡せないことは明らかです。

      -(IBAction) switchValue:(*UIButton)button{

      tmpBool = self.book.button

     if (tempBool == YES) {
            self.book.button = NO;

            UIImage *buttonImage = [UIImage imageNamed:@"checkOff.png"];
            [self.button setImage:buttonImage forState:UIControlStateNormal];

            NSLog(@"nwSwitched to NO");
        }
        else{

            self.book.button = YES;

            UIImage *buttonImage = [UIImage imageNamed:@"checkOn.png"];
            [self.button setImage:buttonImage forState:UIControlStateNormal];

            NSLog(@"nwSwitched to YES");
        }

As it stands now, the only way I can make it work is with a huge series of if/thens or with switch, but I know there must be a more elegant way.

4

1 に答える 1

0

カールが言ったように、これは洗練されていないアプローチでした。代わりに切り替えて、すべてのタグを「タグ」と呼ばれる 1 つの CoreData 属性に保持するようにしました。それらを加算および減算するには、単に文字列に加算するか、@" " で置き換えてそれらを削除します。後でそれらを検索できます。

タグの長いリストを管理し、それらに簡単に追加するために、NSUserDefaults に保存する NSMutableArray を使用して設定された PickerView を使用しました。(再ロードするときは変更可能なコピーを作成する必要があります。)

はい、タグのリストを CoreData に保持することもできますが、これは私の目的には簡単に思えました。

于 2013-01-21T17:20:11.650 に答える