私は初心者のiOSプログラマーであり、問題があります。
私は現在iOS Core Dataで作業していますが、私の問題は、UISwitch
の値を取得して、データベースのブール属性にデータを挿入することです。
問題は、私が呼び出す必要があるメソッドがわからないことです(たとえば、.textはUITextFieldに対して同じことを行います)。小規模なGoogle検索を実行しましたが、結果はありません。ここにいくつかのコードがあります:
[newContact setValue:howMany.text forKey:@"quantity"];
[newContact setValue:important.??? forKey:@"important"];
howmanyはテキストフィールドで、重要なのはUISwitchです
保存するには
[newContact setObject:[NSNumber numberWithBool:important.on] forKey:@"important"];
それを取得するには
BOOL on = [[newContact objectForKey:@"important"] boolValue];
UISwitch
のドキュメントを見ましたか?一般に、情報を検索するときは、ドキュメントを最初の呼び出しポイントにしてから、googleに切り替えて、目的のものが本当に見つからない場合はスタックオーバーフローにする必要があります。
次のような@property(nonatomic, getter=isOn) BOOL on
プロパティが必要です。
important.isOn
プリミティブを使用するコアデータセットがない場合は、そのブール値をNSNumber
でラップする必要があります。
[NSNumber numberWithBool:important.isOn]
他の投稿者は正しいですが、isOnメソッドを使用して値を取得する必要がありますが、これはBOOL値を返します。このメソッドはオブジェクトを想定しているため、setValue:forKeyに直接渡すことはできません。
コアデータオブジェクトに値を設定するには、まず次のようにNSNumberでラップします。
NSNumber *value = [NSNumber numberWithBool:important.on];
[newContact setValue:value forKey:@"important"];
使った
[NSString stringWithFormat:@"%d",(self.allNotificationSwitch.isOn ? 0:1)];
そして
[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];
[newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];