2012-02-26 107 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]) 

这为我编译和运行与虚拟数据。

相关问题