Ios textField:ShouldChangeCharactersRange:replacementString:正在传递一个nil参数
如标题所述,我有一个Ios textField:ShouldChangeCharactersRange:replacementString:正在传递一个nil参数,ios,objective-c,uitextfielddelegate,Ios,Objective C,Uitextfielddelegate,如标题所述,我有一个UITextField,正在使用textField:shouldChangeCharactersRange:replacementString:委托方法 我从用户那里得到了一个崩溃日志,因为传入replacementString的字符串参数是nil。当然,我可以简单地执行nil检查以避免崩溃,但我想知道为什么字符串是nil 有人能想出字符串为nil的原因吗?我试图删除所有字符,但无法复制该案例。 如果这有帮助的话,用户主要是日本人。我认为这可能是一个unicode问题,但没有
UITextField
,正在使用textField:shouldChangeCharactersRange:replacementString:
委托方法
我从用户那里得到了一个崩溃日志,因为传入replacementString
的字符串参数是nil
。当然,我可以简单地执行nil
检查以避免崩溃,但我想知道为什么字符串是nil
有人能想出字符串为nil
的原因吗?我试图删除所有字符,但无法复制该案例。
如果这有帮助的话,用户主要是日本人。我认为这可能是一个unicode问题,但没有成功
有关崩溃日志的信息:
- 用户正在使用iOS 11.2
- 源代码在Objective-C中。令我惊讶的是,根据Swift文档,传递的参数不应该是
:nil
- 代码崩溃
->说明:**-[\uu NSCFString StringByReplacingCharactersRange:withString::]:nil参数
实际代码如下所示:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *text = [textField.text stringByReplacingCharactersInRange:range
withString:string];
... some other code...
return YES;
}
你能显示崩溃日志吗?我用代码编辑了问题。我想知道这是否有帮助: