我正在尝试解决最近移植到64位的iOS程序中的问题。
我发现stringWithUTF8String总是返回nil,我能够将问题缩小到非常简单的12个衬里。这是我的main.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");
}
}
当我在iPad Air 2上调试程序时,s1,s2和s3为零!
我倾向于认为代码中可能存在明显的问题,或者项目设置中存在配置错误,因为它被移植到64位(此代码用于完美地工作)。
有没有人有线索?
提前致谢
编辑: 我刚刚在OSX(文件|新项目|命令行工具)下的新项目中测试了代码,它可以工作。 所以,我的问题似乎是由于项目设置。我不知道在哪里看。