web-dev-qa-db-ja.com

UISwitchの値を取得する方法?

私は初心者のiOSプログラマーであり、問​​題があります。

私は現在iOS Core Dataで作業していますが、私の問題は、UISwitchの値を取得して、データベースのブール属性にデータを挿入することです。

問題は、私が呼び出す必要があるメソッドがわからないことです(たとえば、.textはUITextFieldに対して同じことを行います)。小規模なGoogle検索を実行しましたが、結果はありません。ここにいくつかのコードがあります:

[newContact setValue:howMany.text forKey:@"quantity"]; 
[newContact setValue:important.??? forKey:@"important"]; 

howmanyはテキストフィールドで、重要なのはUISwitchです

22
Eristikos

保存するには

[newContact setObject:[NSNumber numberWithBool:important.on] forKey:@"important"]; 

それを取得するには

BOOL on = [[newContact objectForKey:@"important"] boolValue];
22
Joel Kravets

UISwitchのドキュメントを見ましたか?一般に、情報を検索するときは、ドキュメントを最初の呼び出しポイントにしてから、googleに切り替えて、目的のものが本当に見つからない場合はスタックオーバーフローにする必要があります。

次のような@property(nonatomic, getter=isOn) BOOL onプロパティが必要です。

important.isOn

プリミティブを使用するコアデータセットがない場合は、そのブール値をNSNumberでラップする必要があります。

[NSNumber numberWithBool:important.isOn]
17
Paul.s

他の投稿者は正しいですが、isOnメソッドを使用して値を取得する必要がありますが、これはBOOL値を返します。このメソッドはオブジェクトを想定しているため、setValue:forKeyに直接渡すことはできません。

コアデータオブジェクトに値を設定するには、まず次のようにNSNumberでラップします。

NSNumber *value = [NSNumber numberWithBool:important.on];
[newContact setValue:value forKey:@"important"];
5
Nick Lockwood

使った

[NSString stringWithFormat:@"%d",(self.allNotificationSwitch.isOn ? 0:1)];

そして

[NSString stringWithFormat:@"%@",(self.allNotificationSwitch.isOn ? @"Yes":@"No")];
4
Avijit Nagare
[newContact setBool:[NSNumber numberWithBool:important.on] forKey:@"important"];
0
NeverBe