- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有以下代码:
static void foo(CFStringRef str)
{
CFStringEncoding encoding = CFStringGetSystemEncoding();
const char * cString = CFStringGetCStringPtr(str, encoding);
//.....
}
它自 iOS 5 以来就已存在,并且始终有效。自 iOS 7 发布以来,CFStringGetCStringPtr
返回 NULL
。添加以下代码,已解决:
if (cString==NULL)
{
cString = [
((NSString *)str) cStringUsingEncoding:[NSString defaultCStringEncoding]
];
}
不过,我想知道是否有人知道导致问题的原因?
最佳答案
CFStringGetCStringPtr() 不保证返回非 NULL。来自文档(添加了重点):
Whether or not this function returns a valid pointer or NULL depends on many factors, all of which depend on how the string was created and its properties. In addition, the function result might change between different releases and on different platforms. So do not count on receiving a non-NULL result from this function under any circumstances.
始终使用 CFStringGetCString(),但更好的是,使用 Objective-C 和 NSString 的辅助方法(例如 UTF8String)。
关于ios7 - CFStringGetCStringPtr 在 iOS7 上返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976485/
我的应用程序中有以下代码: static void foo(CFStringRef str) { CFStringEncoding encoding = CFStringGetSystemEn
我是一名优秀的程序员,十分优秀!