gpt4 book ai didi

iphone - 返回强制转换为ARC下CFStringRef的NSString * -如何摆脱分析器警告?

转载 作者:行者123 更新时间:2023-12-01 17:45:25 26 4
gpt4 key购买 nike

这是我的功能:

CFStringRef nameWithType (someEnum type) {
NSString* r;
switch (type) {
case type1:
r=@"type1";
break;
case type2:
r=@"type2";
break;
case type3:
r=@"type3";
break;
}
return (__bridge CFStringRef)r; // analyzer warns: Address of stack memory associated with local variable 'r' returned to caller.
}

最佳答案

实际上,有一种“传统方式”(从出现NSObject之前的时间开始)不使用NSString文字,而是像这样使用CFSTR宏:

CFStringRef nameWithType2(someEnum type){
CFStringRef string = NULL;
switch (type) {
case type1:
string = CFSTR("type1");
break;
case type2:
string = CFSTR("type2");
break;
case type3:
string = CFSTR("type3");
break;
}
return string;
}
CFSTR(c_string)是创建CFStringRef的最短方法,比 (__bridge CFStringRef)@"NSString"短得多

另外,如果有人看到此代码,您也会因了解CFSTR而获得较高的信誉。创建NSString文字,然后将其转换为CFStringRef并需要添加ARC内存管理所有权转移标记....而不是立即创建CFStringRef,这有点像N00B。

关于iphone - 返回强制转换为ARC下CFStringRef的NSString * -如何摆脱分析器警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com