代码之家  ›  专栏  ›  技术社区  ›  PruitIgoe

Objective-C NSString isEqualToString未得到匹配〔已关闭〕

  •  -3
  • PruitIgoe  · 技术社区  · 13 年前

    如果我有一个这样创建的数组:

    NSArray* arrItems = [[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil];
    

    并且我有一个具有NSString属性的类:

    myClass.myClassString = @"One";
    

    如果我这样做,isEqualToString就不应该工作:

    NSString* strToCheck = myClass.myClassString
    
    for(int i=0; i<arrItems.count; i++) {
    
        NSString* strThisItem = [arrItems objectAtIndex:i]; 
    
        if ([strThisItem isEqualToString:strToCheck]) { 
           NSLog(@"Okley dokley!");
        }
    
    }
    

    编辑:

    真实世界的结果:

    在我的应用程序中,我甚至没有得到匹配的结果——这是我的登录输出,包含两个字符串及其长度——看看安全营销的匹配情况——这里应该也记录了一个“OK”。

    2013-08-28 09:20:02.339 oer[3081:c07] ALDAHOL_7::Safety Marketing_16
    2013-08-28 09:20:02.341 oer[3081:c07] ALDAHOL_7::Acecide-C Marketing_19
    2013-08-28 09:20:02.341 oer[3081:c07] ALDAHOL_7::ALDAHOL Marketing_17
    2013-08-28 09:20:02.342 oer[3081:c07] ALDAHOL_7::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.342 oer[3081:c07] Acecide-C_9::Safety Marketing_16
    2013-08-28 09:20:02.343 oer[3081:c07] Acecide-C_9::Acecide-C Marketing_19
    2013-08-28 09:20:02.343 oer[3081:c07] Acecide-C_9::ALDAHOL Marketing_17
    2013-08-28 09:20:02.344 oer[3081:c07] Acecide-C_9::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.344 oer[3081:c07] Competitor_10::Safety Marketing_16
    2013-08-28 09:20:02.345 oer[3081:c07] Competitor_10::Acecide-C Marketing_19
    2013-08-28 09:20:02.345 oer[3081:c07] Competitor_10::ALDAHOL Marketing_17
    2013-08-28 09:20:02.345 oer[3081:c07] Competitor_10::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.346 oer[3081:c07] Safety_Marketing_16::Safety Marketing_16
    2013-08-28 09:20:02.346 oer[3081:c07] Safety_Marketing_16::Acecide-C Marketing_19
    2013-08-28 09:20:02.347 oer[3081:c07] Safety_Marketing_16::ALDAHOL Marketing_17
    2013-08-28 09:20:02.347 oer[3081:c07] Safety_Marketing_16::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.348 oer[3081:c07] Acecide-C_Marketing_19::Safety Marketing_16
    2013-08-28 09:20:02.348 oer[3081:c07] Acecide-C_Marketing_19::Acecide-C Marketing_19
    2013-08-28 09:20:02.349 oer[3081:c07] Acecide-C_Marketing_19::ALDAHOL Marketing_17
    2013-08-28 09:20:02.349 oer[3081:c07] Acecide-C_Marketing_19::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.350 oer[3081:c07] ALDAHOL_Marketing_17::Safety Marketing_16
    2013-08-28 09:20:02.350 oer[3081:c07] ALDAHOL_Marketing_17::Acecide-C Marketing_19
    2013-08-28 09:20:02.351 oer[3081:c07] ALDAHOL_Marketing_17::ALDAHOL Marketing_17
    2013-08-28 09:20:02.351 oer[3081:c07] ALDAHOL_Marketing_17::OER-Pro Service Marketing_25
    2013-08-28 09:20:02.352 oer[3081:c07] OER-Pro Service_Marketing_25::Safety Marketing_16
    2013-08-28 09:20:02.352 oer[3081:c07] OER-Pro Service_Marketing_25::Acecide-C Marketing_19
    2013-08-28 09:20:02.353 oer[3081:c07] OER-Pro Service_Marketing_25::ALDAHOL Marketing_17
    2013-08-28 09:20:02.353 oer[3081:c07] OER-Pro Service_Marketing_25::OER-Pro Service Marketing_25
    
    1 回复  |  直到 13 年前
        1
  •  3
  •   Vrasidas    13 年前

    是的,这应该有效。 在isEqualToString检查之前,myClass.myClassString可能没有得到您想要的值。

    NSLogs打印myClass.myClassString、strToCheck和arrItems应该可以帮助您找到问题所在。

    现在我看到了你的编辑:

    安全_市场营销16<-两个下划线

    安全营销_16<-一个下划线

    ;)

    (非常感谢!:D)