Eam*_*orr 0 string iphone compare objective-c
问候,
我试图简单地将NSString与NSArray进行比较.
这是我的代码:
NSString *username=uname.text;
NSString *regex=@"^[a-zA-Z0-9-_.]{3,20}$";
NSArray *matchArray=nil;
matchArray=[username componentsMatchedByRegex:regex];
if(matchArray[0] == "asdf"){ //this line causes the problem!
NSLog(@"matchArray %@",matchArray);
}
Run Code Online (Sandbox Code Playgroud)
我得到"无效的操作数到二进制=="错误.
我该如何比较字符串?
提前谢谢了,
您试图比较NSString一个C字符串(char *),这是错误的.matchArray是一个NSArray所以你不能把它当作C数组,你必须使用它的objectAtIndex:方法并传入索引.
请改用:
if ([[matchArray objectAtIndex:0] isEqualToString:@"asdf"]) {
NSLog(@"matchArray %@", matchArray);
}
Run Code Online (Sandbox Code Playgroud)
解决你的注释,之所以isEqualToString:没有出现在自动完成中,是因为Xcode无法猜测它matchArray包含NSStrings(它只知道它包含ids,即任意的Objective-C对象).如果你真的想确定,你可以执行一个显式的演员表,但是如果你不这样做则无关紧要:
if ([(NSString *)[matchArray objectAtIndex:0] isEqualToString:@"asdf"]) {
NSLog(@"matchArray %@", matchArray);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5023 次 |
| 最近记录: |