Ios \[NSString stringWithUTF8String:“hello”\]返回零。嗯?

Ios \[NSString stringWithUTF8String:“hello”\]返回零。嗯?,ios,nsstring,Ios,Nsstring,我正在尝试解决最近移植到64位的iOS程序中的一个问题 我发现stringWithUTF8String总是返回nil,并且我能够将问题缩小到非常简单的12行。这是我的主.m文件 #import <UIKit/UIKit.h> #include <string> int main(int argc, char* argv[]) { std::string a("hello"); NSString * s1 = [NSString stringWithUTF8Str

我正在尝试解决最近移植到64位的iOS程序中的一个问题

我发现stringWithUTF8String总是返回nil,并且我能够将问题缩小到非常简单的12行。这是我的主.m文件

#import <UIKit/UIKit.h>
#include <string>

int main(int argc, char* argv[])
{
  std::string a("hello");
  NSString * s1 = [NSString stringWithUTF8String: a.c_str()];
  NSString * s2 = [[NSString alloc] initWithUTF8String: a.c_str()];
  NSString * s3 = [NSString stringWithUTF8String: "hello"];

  @autoreleasepool {
    return UIApplicationMain(argc, argv, nil, @"AppDelegate");
  }
}
#导入
#包括
int main(int argc,char*argv[])
{
std::字符串a(“hello”);
NSString*s1=[NSString stringWithUTF8String:a.c_str()];
NSString*s2=[[NSString alloc]initWithUTF8String:a.c_str()];
NSString*s3=[NSString stringWithUTF8String:“您好”];
@自动释放池{
返回UIApplicationMain(argc、argv、nil、@“AppDelegate”);
}
}
当我在iPad Air 2上调试程序时,s1、s2和s3为零

我倾向于认为代码中可能存在明显的问题,或者项目设置中存在配置错误,因为它被移植到64位(此代码过去工作得非常好)

有人有线索吗

提前谢谢

编辑: 我刚刚在OSX(File | new project | Command Line Tool)下的一个新项目中测试了该代码,它可以正常工作。
所以,我的问题似乎是由于项目设置。虽然我不知道去哪里看

您的示例代码按照我的预期运行。(也就是说,
s3
不是
nil
)@亚伦:这是iPad上的吗?不是,是iPad空气模拟器。如果你正在搜索你的项目设置,也许可以看看你的优化?(它可能被优化了。)你怎么知道你得到了零?@hotlicks:通过设置断点和检查变量