8

我正在为 iOS7 准备我的应用程序并遇到一个奇怪的问题:

当我试图获取一个空的 TextField 文本时,我得到“nil”,而过去它曾经返回 @""(空字符串)。

那是正式的更改还是错误?

谢谢沙妮

4

3 回答 3

10

这是从iOS6到iOS7的正式变化。文本字段用于返回一个空字符串,但现在您有一个nil字符串。

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

// iOS6
if (![self.tf.text isEqualToString:@""]){

// iOS7    
if (self.tf.text != nil && ![self.tf.text isEqualToString:@""]) {
于 2013-09-11T12:38:42.050 回答
6

我认为您可以做的另一件事是:-

if([self.tf.text length] != 0)
{
// do whatever
}

上面将处理空字符串和 nil。由于向 nil 发送长度消息返回 0。

于 2013-09-11T14:43:04.247 回答
5

是的,它是一个正式的变化。所以你需要这样处理

// For iOS 6
if (![self.tf.text isEqualToString:@""])
{
}

// For iOS 7    
if (self.tf.text != nil && [self.tf.text length] != 0)
{
}

或者

此条件适用于 iOS 7 和更早版本。

if([self.tf.text length] != 0)
{
// do your stuff
}
于 2013-09-12T12:18:06.363 回答