【问题标题】:Compare NSdata carrying dictionary object to a String将携带字典对象的 NSdata 与 String 进行比较
【发布时间】:2012-07-23 09:17:58
【问题描述】:

我想知道怎么做

NSData *xxx = [xxx objectForKey:@"xxx"];
if (xxx == @"xxx")
//do somthing

【问题讨论】:

  • if ([xxx objectForKey:@"xxx"] isEqualTostring =@"xxx" )
  • 我可以问一下为什么您将结果转换为 NSData * 虽然您期望一个字符串?

标签: objective-c cocoa-touch cocoa xcode4.3


【解决方案1】:

您可以使用自省来确定一个对象是否与另一个对象具有相同的数据类型,但您必须这样做(注意类型id);

id *obj = [dict objectForKey:@"key"];

if ([obj isKindOfClass:[NSString class]])
{
    if ([obj isEqualToString:@"text"])
    {
       //...
    }
}

【讨论】:

    【解决方案2】:

    或者您可以只使用isEqual:,它允许与任何对象进行比较,而无需先测试类。

    id obj = [dict objectForKey:@"key"];
    if ( [obj isEqual:@"text"] ) {
        //...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2012-01-21
      • 2022-09-30
      相关资源
      最近更新 更多