Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSString内容在对象创建期间从原始文本更改_Ios_Objective C_Regex_Nsstring - Fatal编程技术网

Ios NSString内容在对象创建期间从原始文本更改

Ios NSString内容在对象创建期间从原始文本更改,ios,objective-c,regex,nsstring,Ios,Objective C,Regex,Nsstring,这是我看到的最好的简化案例 NSString * test = @"??( "; NSLog(@"'%@'", test); console> '[' 我有工作要做 NSString * test = @"\x3f\x3f("; NSLog(@"'%@",test); console> '??(' 这似乎是由NSString对象活体化中的字符串插值或类似过程引起的。我发布这个问题有两个原因 1) 有人知道这到底是什么原因吗? 2) 我没有在NSString的这个“特性”上找到

这是我看到的最好的简化案例

NSString * test = @"??( ";
NSLog(@"'%@'", test);

console> '['
我有工作要做

NSString * test = @"\x3f\x3f(";
NSLog(@"'%@",test);

console> '??('
这似乎是由NSString对象活体化中的字符串插值或类似过程引起的。我发布这个问题有两个原因

1) 有人知道这到底是什么原因吗?
2) 我没有在NSString的这个“特性”上找到任何东西,我花了一个小时才找到这个bug,所以这只是未来程序员的面包屑。为字符使用十六进制代码是解决方法。

NSlog(“%@”,test)在语法上不正确。你是如何用这个语法错误编译它的


如果我将其更改为
NSLog(@“%”,test),它工作正常(注意NSLog中表示@的字符串文字和大写字母L)。

雷姆斯说的是真话(投票)。NSLog需要和NSString文字作为它的第一个参数。这是一个双引号字符串,前缀为@符号。只有双引号的字符串是C字符串,它是一个简单的以null结尾的字节数组。这两者是不可互换的,你应该得到一个编译器警告。这与实际问题无关。但是谢谢你赶上了这个节目typo@Nathan真的很难说,因为做得很好,我无法重现您的问题…您使用的是什么版本的Xcode?你在为哪个iOS版本构建?xcoode 6.1 ios6(但我在其他iOS版本中也看到过)很难诊断,因为它在Xcode 6.1/iOS 8中不可复制。如果感觉到这主要是为了面包屑,我不会担心。