Ios NSString认为它是空的

Ios NSString认为它是空的,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我遇到过这样的问题 我的NSString有一种奇怪的行为 在此之后: NSMutableArray *_keys = [[NSMutableArray alloc]initWithArray:[[_currentContact.phoneNumbers allKeys]mutableCopy]]; NSString *fail = [_keys objectAtIndex:0]; 我的NSString*fail(在调试器中)说它是null,但当我打印它时,它有正确的字符串 我想它有点类似于 但

我遇到过这样的问题 我的
NSString
有一种奇怪的行为 在此之后:

NSMutableArray *_keys = [[NSMutableArray alloc]initWithArray:[[_currentContact.phoneNumbers allKeys]mutableCopy]];
NSString *fail = [_keys objectAtIndex:0];
我的
NSString*fail
(在调试器中)说它是
null
,但当我打印它时,它有正确的字符串

我想它有点类似于

但如何解决这个问题呢?我如何解决该问题,使我的失败字符串不会为
null
,并在其中保留正确的字符串

编辑:

紧接着

  [_selectedphoneType setText:[_currentContact.phoneNumbers objectForKey:fail]];

我有一个无法识别的选择器崩溃,我想这是因为失败是
null

您需要检查密钥在您的情况下是否真的是字符串。我对此表示怀疑


本应作为评论添加。。但是名声不太好,所以请忽略。

您发布的链接是关于未经证实的选择器异常的,似乎与您的问题无关@Droppy我以后在代码中有无法识别的选择器,因为字符串为空。如果在设置fail NSString后立即执行if(fail!=nil)之类的if语句,是否输入它?@Will Yes I do enter in ITI它似乎是
电话号码
类的实例,而不是字符串。顺便说一句,你对这个问题的标题,你认为它是空的,显然不是这样。但我需要它是一个NSString无论如何@user3351949好的,您可能需要从这个对象中提取一些字符串值。您必须确定此对象的类(显然是
PhoneNumber
)的哪个属性/方法将检索字符串表示形式。