0

連絡先アプリのラジオ ボタン システムの一種として、セグメント化されたコントロールを使用しています。3 つのボタンがあり、質問は連絡先が既存の顧客かどうかです。ボタンの名前は「いいえ」「はい」「その他の部門」

私はiOSの開発に完全にグリーンであり、これは私の最後の残りの白髪を引き抜いています

selectedSegmentIndex 値を Core Data のデータベースに保存できるようにしたいので、次のビューでステータスを正しく表示できますが、値を保存する方法を理解するのに本当に苦労しています:

if (self.existCustSelection.selectedSegmentIndex == 2)
    [self.currentContact setExistCust:[existCustSelection stringWithFormat:@"%d", @"2"]];

-これにより、コンパイルエラーが発生します

「UISegmentedControl」の目に見える @Interface がセレクター「stringWithFormat:」を宣言していません

私はそれを理解しています-私の問題は、existCust代わりにを設定したいのですexistCustSelectionが、何らかの理由で、コードの作成中にそのオプションを取得できません。

私の読み取りは次のようになり、エラーや警告は表示されません。

if ([currentContact existCust] == @"2") {
            self.existCustSelection.selectedSegmentIndex = 2;
    }

うまくいけば、そこに素晴らしい解決策がありますか?:)

前もってありがとう、ミッキー

4

1 に答える 1

1

presentCustは文字列である必要がありますか?数値のみを格納する場合は、次の使用を検討してNSNumberください。

NSNumber* custNumber = [NSNumber numberWithInteger:existCustSelection.selectedSegmentIndex];

どうしても文字列が必要な場合は、stringWithFormatを使用してインデックスを文字列に変換する方法は次のとおりです。

NSString* custString = [NSString stringWithFormat:@"%d", existCustSelection.selectedSegmentIndex];

次の呼び出しには2つの問題がありますstringWithFormat

  1. stringWithFormatのクラスメソッドですNSString。あなたはあなたのインスタンスにUISegmentedControl文字列を返すように頼んでいます、そしてそれはそれをする方法を知りません。
  2. stringWithFormatでを要求した場合、最初の引数は、文字列ではなく%d、などの整数である必要があります。2@"2"
于 2012-04-07T03:06:06.443 に答える