- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 NSString 中获取一个 NSMutabledictionary 对象,如下所示:
NSString *state=[d valueForKey:@"State"];
现在有时状态可能为空,有时填充文本。所以我比较它。虽然比较状态有时变成 NSString,有时变成 NSCFString..所以无法获得所需的结果..
if([state isEqualToString@""])
{
//do something
}
else
{
//do something
}
因此在比较时有时会返回 nil。因此立即跳到 else block 。
我需要一种标准方法来比较状态是否为空,无论它是 NSString 还是 NSCFString ...
我该怎么做?
最佳答案
如果您无法获得所需的结果,我可以向您保证,这不是因为您获得的是 NSCFString
而不是 NSString
。
在 Objective-C 中,框架充满了簇类;也就是说,您在文档中看到一个类,实际上,它只是一个接口(interface)。该框架有自己的这些类的实现。例如,正如您所指出的,NSString
类通常由 NSCFString
类表示;还有其他一些,例如 NSConstantString
和 NSPathStore2
,它们实际上是 NSString
的子类,并且其行为就像您所期望的那样。
据我所知,你的问题...
Now sometimes state may be null and sometimes filled with text.
...在 Objective-C 中,在 nil
上调用方法是合法的。 (Nil
是 Objective-C 的概念,在 C# 和 Java 等其他语言中为 null
。)但是,当您这样做时,返回值始终为零;因此,如果您的字符串为 nil
,则使用方法对其进行的任何相等比较都将返回 NO
,即使您与 nil
进行比较也是如此。即便如此,请注意,空字符串与nil
并不相同,因为nil
可以被视为不存在任何东西。空字符串没有字符,但是嘿,至少它在那里。 nil
表示什么都没有。
因此,您可能需要检查 state
是否不 nil
,而不是使用方法将 state
与空字符串进行比较,使用简单的指针相等。
if(state == nil)
{
//do something
}
else
{
//do something
}
关于iphone - xcode 中的 NSString 还是 NSCFString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13717310/
我一直在解决很多内存泄漏问题,但没有成功解决这个问题。由于 [NSCFString substringWithRange:] 导致大量 NSCF 内存泄漏。我一直在检查所有的字符串分配,并在适当的地方
我正在从事一个需要格外小心内存的项目。我在仪器上运行了模拟,它显示了下一个泄漏: 泄露的对象:NSCFString 大小:80 字节 负责图书馆:基金会 责任框架:NSPlaceHolderStrin
我遇到了一个奇怪的问题,将 NSDictionary 存储到 NSUserDefaults,然后检索它会将其转换为 NSCFString。 这是我保存数据的地方: - (void)saveProgre
我正在遍历通过 API 调用获得的一组数字: 例如[6000, 6001, 2000] 这是我的代码: for(NSNumber* arrayID in array){
这是我使用 JSON 从 MySQL 表中检索数据的代码: //URL definition where php file is hosted int categoriaID = [[cate
我有一个小问题,在 Google 中找不到:UITableView 工作正常,直到我开始滚动。 Error Message: `-[NSCFString objectAtIndex:]: unreco
仪器告诉我 NSCFString 16Bytes 基础 -[NSPlaceholderString 我的代码是这样的: BOOL rslt = [self sendLogInfo:[NSString
我正在开发一个 iOS 4 应用程序。 我有一个具有 NSMutableDictionary 属性的类: @interface CardHelper : NSObject { ...
我的 json : { "name": "notification", "args": [ "{\"data\": [{\"foreignId\":\"BF7E9276D860
我只是出于测试目的编写以下代码: NSString *aStr = [[NSString alloc] initWithFormat:@"Foo"]; aStr = [aStr initWithFor
在我的 iOS 项目中,我收到此警告: Local declaration of data hides instance variable. 当我运行它时,它崩溃并给出了这个错误: NSCFStrin
我只是为了测试目的编写了以下代码: NSString *aStr = [[NSString alloc] initWithFormat:@"Foo"]; aStr = [aStr initWithFo
我阅读了有关 S.O 的资料,并在谷歌上做了一些搜索,但我无法找到我的问题的答案...... 我有一个 NSDictionary,它返回 NSCFString's,我需要的是一个 NSString,这
我正在从服务器获取字典 myDictionary = { "rank":"1", "color":"red", "position":"middle" } 现在我想在 if 条件下检查键“positi
我正在尝试使用此代码捕获按键。我的问题是 Instruments 会抛出一条关于泄漏的消息。 我在没有垃圾收集的情况下工作。 -(void)keyDown:(NSEvent *)theEvent {
我有以下产生此错误的代码。我不明白为什么将 subarrayWithRange 消息发送到字符串?什么时候明明是数组? static const int kItemsPerView = 20; NSR
我的目标非常简单——我试图为一些测试数据设置一个 NSString,然后返回类,它应该是 NSString。这是我的代码: NSString* stringer = [NSString stringW
我正在 NSString 中获取一个 NSMutabledictionary 对象,如下所示: NSString *state=[d valueForKey:@"State"]; 现在有时状态可能为空
我是 iPhone 开发新手,一直很难弄清楚为什么我的 table 无法工作。我不确定,这可能与核心数据有关。 viewDidLoad 方法一开始工作正常,但是当我尝试滚动 TableView 时,当
我仅从一位用户那里收到了30多个崩溃报告。没有人显示相同的行为。通常,我可以找出问题所在,因为总是有对我的代码的引用,但是没有引用。 它们都是来自类型: Exception Type: EXC_CR
我是一名优秀的程序员,十分优秀!