2012-02-26 100 views
-2

嘿,我是新的xcode編碼,所以我正在學習我的自我。'||'之前的預期表達式令牌在xcode

我寫了這段代碼,出現一個錯誤指向第一個「|」在'||'之前說預期表達TOKEN。 這是我的if語句:

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

而null是wright?

對此有幫助嗎?

+0

歡迎來到SO。在您的帖子中添加語言標籤。 – Mahesh 2012-02-26 01:51:00

+0

Hehehehe耶男人如此看待我在我的世界工作:P:P – Ram 2012-02-27 01:34:20

回答

2

的幾個問題:

  • 在C(和Objective-C),因爲你已經使用了單個等號是轉讓,不比較
  • 其次,正確的方式做的目的字符串比較-C是使用NSString方法isEqualToString:
  • Objective-C中使用的nil代替null
  • 在Objective-C的指針是零,將評估爲假,因此代替使用isEqual你可以測試!secretPin(這將返回true是secretPin爲零)
  • 正如其他人所指出的那樣,你的括號錯誤地在您的條件

所以更正確的重寫設置爲:

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

編輯:

另外請注意,我已經編輯這個例子讓nametextfield現在是self(屬性,其中self在這種情況下是你的視圖控制器)。 「意外標識符」錯誤使我認爲你沒有將Text Field對象(在storyboard或xib文件中創建)正確連接到視圖控制器。你應該確保你在聲明的標題的文本字段作爲你這樣的視圖控制器的屬性文件(.h):

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

和綜合屬性在您的實現(.M)文件:

@synthesize nametextfield; 

然後在您的故事板或xib中將UITextField附加到此IBOutlet。

+0

Jonkroll我感謝你的幫助。 但我的nametextfield不是NSString是一個UItextfield,所以我使用nametextfield.text = @「」和3個錯誤出現: 1-Expected identifier。由早先的錯誤困惑,救助。 3-expected':'之前的]]「令牌。 – Ram 2012-02-26 21:16:37

+0

jonkroll我創建了一個名爲Empty的NSString類型的變量,並且給了nametexttext.text以便我的代碼正確運行。 NSString * Empty = nametextfield.text; if([空isEqualToString:@「」] ||!secretPin){ – Ram 2012-02-26 22:06:37

+0

糟糕,你是對的,我錯過了我的代碼示例中的「.text」屬性。此外,您的「預期標識符」錯誤使我認爲您沒有正確連接到您的視圖控制器的UITextField。看到我的編輯,我的答案上面。 – jonkroll 2012-02-26 22:45:19

0

我認爲這是Objective-C?如果是這樣,你有一個錯位的括號:

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

而且,[email protected]""是錯在兩個方面,和標準的Objective-C的空指針值nil

0

你甚至不需要表達式的parens。它應該是

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

這爲我編譯和運行與虛擬數據。

相關問題