我正准备将我的应用程序安装到iOS7并遇到一个奇怪的问题:
当我试图获取一个空的TextField文本时,我得到“nil”,而在过去它曾经返回@“”(空字符串)。
这是正式的变更还是错误?
由于 沙尼
答案 0 :(得分: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:@""]) {
答案 1 :(得分:6)
我认为你可以做的另一件事是: -
if([self.tf.text length] != 0)
{
// do whatever
}
以上将处理空字符串以及nil。由于将长度消息发送到nil会返回0。
答案 2 :(得分: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
}