【发布时间】:2011-04-16 16:12:38
【问题描述】:
我有一个名为 getTitle 的方法,它属于 NSString 类别,它会删除字符串 "(" 和 ")" 之间的任何内容,并且还会删除这些字符串。但是,当输入字符串不包含上述任何一个字符串时,该方法将崩溃并报错:
* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[NSArray objectAtIndex:]: index 1 beyond bounds [0 .. 0]”
这是由于 NSArray 'a' 没有对象造成的。
但是,我似乎无法修复它。请您看看下面的代码并指出问题所在吗?
- (NSString *)getTitle {
NSArray *a = [self componentsSeparatedByString:@"("];
if ([a count] > 0) {
if ([a objectAtIndex:1] != [NSNull null]) {
NSString *b = [a objectAtIndex:1];
NSArray *c = [b componentsSeparatedByString:@")"];
if ([c count] == 0)
return self;
if ([a objectAtIndex:0] != nil && [c objectAtIndex:1] !=nil)
return [[[a objectAtIndex:0] stringByAppendingString:[c objectAtIndex:1]] stringByReplacingOccurrencesOfString:@" -" withString:@" -"];
else
return self;
}
else
return self;
}
else {
return self;
}
return self;
}
【问题讨论】:
-
仅供参考:编译器理解长度超过一个字符的变量名
标签: objective-c xcode ios4 string nsarray