大佬教程收集整理的这篇文章主要介绍了ios – isEqualToString始终返回False,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
- (BOOL) onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port { if(tag == TAG_SINGLE_GRILL) { NSString *grillId = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; if(grillId.length > 11) { grillId = [grillId substringToIndex:11]; } grillId = [NSString stringWithFormat:@"%@",grillId]; if([grillId hasPrefix:@"GMG"]) { for(int i = 0; i < [parseGrills count]; i++) { NSString *parseGrillId = [[parseGrills objectAtIndex:i] grillId]; parseGrillId = [NSString stringWithFormat:@"%@",parseGrillId]; //If we match the id,add it to found grills if([grillId isEqualToString:parseGrillId]) { //do stuff } } } NSLog(@"Grill ID : %@",grillId); } return TRUE; }
parseGrills是一个带有非常基本的Grill对象的NSMutableArray,我使用synthesize作为属性,否则.m文件基本上是空的.
#import <Foundation/Foundation.h> @interface Grill : NSObject @property (nonatomic) NSString* grillId; @property (nonatomic) NSString* ipAddress; @end
这是调试器返回false后的屏幕截图
任何帮助将不胜感激.谢谢.
我已经运行了这个实验,看到如果编码不同,它将返回NO.因此,尝试使用下面的代码将parseGrillId转换为utf8.
NSString *s1 = [NSString stringWithCString:"HELLO123" encoding:NSUTF8StringEncoding]; NSString *s2 = [NSString stringWithCString:"HELLO123" encoding:NSUTF16StringEncoding]; NSString *s3 = [NSString stringWithUTF8String:s2.UTF8String]; if ([s1 isEqualToString:s2]) { NSLog(@"s1 == s2"); } if ([s1 isEqualToString:s3]) { NSLog(@"s1 == s3"); }
将打印s1 == s3.
以上是大佬教程为你收集整理的ios – isEqualToString始终返回False全部内容,希望文章能够帮你解决ios – isEqualToString始终返回False所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。