加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 检查NSString崩溃的子串

发布时间:2020-12-14 19:26:48 所属栏目:百科 来源:网络整理
导读:我试过用两种方式检查NSString中子串的出现,两者都崩溃了.这是我从NSManagedObject的一个属性获取的NSString对象. 使用NSRange NSString * searchString = @“drive”; NSRange range = [text rangeOfString:searchString options:(NSCaseInsensitiveSearc
我试过用两种方式检查NSString中子串的出现,两者都崩溃了.这是我从NSManagedObject的一个属性获取的NSString对象.

>使用NSRange

NSString * searchString = @“drive”;

NSRange range = [text rangeOfString:searchString options:(NSCaseInsensitiveSearch)];

if(range.location!= NSNotFound){
????的NSLog(@ “实测值”);
}
>使用NSScanner

NSScanner * scanner = [NSScanner scannerWithString:text];

NSLog(@“%d”,[scanner scanString:searchString intoString:nil]);

当text = @“drive”时,这两个都有效,但当文本为“i drive”或“drive to”时,导致EXC_BAD_ACCESS崩溃.如果文本是“idrive”或“driveto”,则没有任何反应.

甚至更奇怪,有时示例抛出NSInvalidArgumentExceptions,说我试图将NSCFSet或DateComponents对象传递给rangeOfString:,我在我的应用程序中都没有使用它们.

有任何想法吗?

解决方法

如果你有时得到EXC_BAD_ACCESS并且有时会得到消息“类型对象 – 你不期望没有对方法做出响应”,那么你很可能没有长时间保留对象并且在你到达之前它被释放了在哪里使用它.

如果到达目的地后内存没有被重用,事情就会起作用.如果空间已被重用于另一个对象并且完全对齐,即同一指针,则会得到类似“x不响应选择器”的内容.如果以指针未指向有效对象的方式覆盖它,您将获得EXC_BAD_ACCESS

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读