iphone – 检查NSString崩溃的子串
我试过用两种方式检查NSString中子串的出现,两者都崩溃了.这是我从NSManagedObject的一个属性获取的NSString对象.
>使用NSRange NSString * searchString = @“drive”; NSRange range = [text rangeOfString:searchString options:(NSCaseInsensitiveSearch)]; if(range.location!= NSNotFound){ 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby – 使用Her,Faraday在API中进行Rails分页
- oracle中两个重要的伪列-ROWNUM、ROWID
- iphone – iOS:在IBAction声明中包含发件人?
- c – 每个和自由函数的Boost mpl
- 19.Oracle杂记——数据字典dba_views
- [ReactNative集成CodePush教程][三] 集成Code Push的案例说
- objective-c – @synchronized对GCD dispatch_barrier_asyn
- vue-cli中安装方法
- VB.NET中调用系统的剪贴板完成数据的复制和粘贴
- 我应该为XML网站地图发送什么Content-Type值?