2012-02-26 16 views
-2

こんにちは私はxcodeコーディングで新しいですので、私は自分自身を学んでいます。'||'の前に期待される式xcodeのトークン

私はこのコードを書いており、エラーは最初の "|" '||'の前にEXPERED EXPRESSIONを言ってトークン。

if (([email protected]"")) || ([secretPin isEqual:null]) 

、ヌルがライトである: これは私のif文のですか?

他に助けがありますか?

+0

ようこそ。あなたの記事の後ろに言語タグを追加してください。 – Mahesh

+0

Hehehehe yeah manは見たように私の世界で働いています:P:P – Ram

答えて

2

いくつかの問題:C(とObjective-C)で

  • あなたが使用しているように、単一の等号は、第二比較
  • 、割り当てのために客観的に文字列比較を行うための適切な方法ではありませんが-CはNSString方法isEqualToString:
  • のObjective-Cはnil代わりにObjective-Cでnull
  • ポインタは、それが偽と評価されるゼロであるので、代わりにの使用を使用して使用することですあなただけ!secretPinテストすることができます(trueを返しますsecretPinであることであるゼロ)他の人が指摘したように、あなたの括弧が誤ってあなたの条件

ので、より正確な書き換えに設定されている

  • は次のとおりです。

    if ([self.nametextfield.text isEqualToString:@""] || !secretPin) { 
        // do something 
    } 
    

    EDIT:

    は、この場合にもselfはあなたですnametextfieldは(今selfの財産であるように、私はこの例を編集したことに注意してくださいビューコントローラ)。 「予期しない識別子」エラーにより、あなたのテキストフィールドオブジェクト(あなたのストーリーボードまたはxibファイルで作成されたもの)をView Controllerに正しく接続していないと思われます。

    @property (nonatomic, weak) IBOutlet UITextField* nametextfield; 
    

    と実装(.M)ファイルにプロパティを合成:

    あなたのヘッダファイル(.h)にこのようなあなたのビューコントローラのプロパティとしてテキストフィールドを宣言していることを確認する必要があります
    @synthesize nametextfield; 
    

    あなたのストーリーボードまたはxibのUITextFieldをこのIBOutletに添付してください。

  • +0

    Jonkrollあなたの助けに感謝します。 しかし、私のnametextfieldはNSStringのUItextfieldではないので、nametextfield.text = @ ""を使用し、3つのエラーが表示されます。 1 - 期待される識別子。 2つ前のエラーで混乱し、救済されました。 3つの ':'の前に "]"トークンが必要です。 – Ram

    +0

    jonkroll私は、NSString型のEmptyという名前の変数を作成し、私のコードが正しく実行されるようにnametextfield.textを与えます。 NSString * Empty = nametextfield.text; if([Empty isEqualToString:@ ""] ||!secretPin){ – Ram

    +0

    あなたは正しいです、私のコード例では ".text"プロパティが見つかりませんでした。また、あなたの "期待された識別子"のエラーはあなたがあなたのView Controllerに正しくUITextFieldを接続していないと思うようになります。上記の私の答えに私の編集を参照してください。 – jonkroll

    0

    私はこれをObjective-Cとしますか?

    if (([email protected]"") || ([secretPin isEqual:null])) 
    

    しかし、また、[email protected]""は、2つのカウントに間違っている、と標準Objective-CのNULLポインタ値がnilです:もしそうなら、あなたは見当違い括弧を持っています。

    0

    式に括弧は必要ありません。それはする必要があります

    if (nametextfield.text = @"" || [secretPin isEqual:null]) 
    

    私のためにコンパイルし、ダミーデータで実行されます。

    関連する問題