textField = [ [ UITextField alloc ] initWithFrame:CGRectMake(100, 14, 205, 20) ];
textField.placeholder = _(@"Input sms filter content");
textField.font = [ UIFont systemFontOfSize:14 ];
textField.keyboardType = UIKeyboardTypeDefault;
textField.tag = NewRuleControlFilterContentViewTag;
记住此时textField.text为nil
千万不要出现类似
strcpy(szTel, [ textField.text UTF8String ]);
如果这样会导致程序出现异常。因为textField.text为nil [ textField.text UTF8String ] 返回一个nil
会导致strcpy函数出现异常。
如何避免这种问题呢?
我们需要手动的为textField.text分配空间。
例如:
textField.text = [ [ [ NSString alloc ] init ] autorelease ];
为textField.text分配一块内存,这样[ textField.text UTF8String ]就会返回包含一个0字符的字符串。
如果我们不这样做。
[ textField becomeFirstResponder ];
同样不会出现异常,原因是becomeFirstResponder已经做了这个操作。
看贴要回贴啊。