Iphone 检查NSString的子字符串是否崩溃
我试着用两种方法检查NSString中是否出现子字符串,但都失败了。这是从NSManagedObject的一个属性中获取的NSString对象Iphone 检查NSString的子字符串是否崩溃,iphone,objective-c,xcode,ios5,Iphone,Objective C,Xcode,Ios5,我试着用两种方法检查NSString中是否出现子字符串,但都失败了。这是从NSManagedObject的一个属性中获取的NSString对象 使用NSRange NSString*searchString=@“驱动器” NSRange range=[字符串的文本范围:搜索字符串选项:(NSCaseInsensitiveSearch)] if(range.location!=NSNotFound){ NSLog(@“找到”); } 使用NSScanner NSScanner*scanner=[N
NSString*searchString=@“驱动器”代码>
NSRange range=[字符串的文本范围:搜索字符串选项:(NSCaseInsensitiveSearch)]
if(range.location!=NSNotFound){
NSLog(@“找到”);
}
NSScanner*scanner=[NSScanner scannerWithString:text]
NSLog(@“%d”,[scanner scanString:searchString intoString:nil])代码>
有什么想法吗?以下内容对我非常有用,包括空格
NSString *string = @"hello one two three";
if ([string rangeOfString:@"one two"].location == NSNotFound) {
NSLog(@"string does not contain substring");
} else {
NSLog(@"string contains substring!");
}
如果希望它不区分大小写,只需将字符串和搜索字符串都转换为小写。我想你应该知道该怎么做。如果你有时收到
EXC\u BAD\u ACCESS
消息,有时会收到“你不期望的类型的对象没有响应方法”的消息,那么很可能是你没有将对象保留足够长的时间,并且在你到达使用它的地方之前,它正在被释放
如果在你到达那里时内存没有被重用,事情就会看起来正常。如果空间已被重新用于另一个对象,并且完全对齐,即相同的指针,则会出现类似“x不响应选择器”的情况。如果它被覆盖,指针没有指向有效的对象,你会得到
EXC\u BAD\u ACCESS
什么是文本?它包含什么?它在哪个方法调用上崩溃?如何创建文本?我打赌文本被过度释放,不再有效。@JeremyP我想发生的是我从我的NSManagedObject中得到了string属性,比如:text=managedObject.text;然后我删除managedObject。所以我说文本不包含字符串,它包含一个指向managedObject.text的指针,而managedObject.text已经不存在了,对吗?啊,这很有道理。非常感谢。我希望我能投你一票,但我没有名声。@ntesler:谢谢。不管怎样,接受的答案值15次。