iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – isEqualToString始终返回False大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我开始之前有一点背景知识,基本上我们希望将UDP响应与存储在Parse数据库中的字符串进行比较.这个问题是我似乎无法通过isEqualToString函数让字符串被认为是相等的.这是我现在运行的代码,我尝试了一些我在其他问题中看到的解决方法,但它仍然无效.

- (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,请注明来意。
标签: