EXC_AD_ACCESS 好字符串
EXC_AD_ACCESS on good string
我使用自己的日志功能记录一个条目:
if(drive1SandboxBookmark)dapperLog(logWindow,100,@"Got a sandbox bookmark for %@",drive1SandboxBookmark);
我似乎无缘无故地从此函数获得错误的 Exe 访问权限。现在有时甚至在 for mat 字符串只是一个字符串,没有参数的情况下这样做......完全难倒:
void dapperLog(logWindowController *controller,int level,NSString *format, ...) {
if(logLevel<level)return;
va_list argumentList;
va_start(argumentList, format);
if(!format)return;
NSLog(@"%@",format);
NSMutableString * message = [[NSMutableString alloc] initWithFormat:format
arguments:argumentList];
va_end(argumentList);
if(currentRunningOSVersion<100900){
NSLog(@"%@",message);
return;
}
如果 format
中的第一项包含占位符(例如 %@
)但没有相应的参数,则会出现异常。顺便说一句:你根本不需要 mutable 字符串。
我使用自己的日志功能记录一个条目:
if(drive1SandboxBookmark)dapperLog(logWindow,100,@"Got a sandbox bookmark for %@",drive1SandboxBookmark);
我似乎无缘无故地从此函数获得错误的 Exe 访问权限。现在有时甚至在 for mat 字符串只是一个字符串,没有参数的情况下这样做......完全难倒:
void dapperLog(logWindowController *controller,int level,NSString *format, ...) {
if(logLevel<level)return;
va_list argumentList;
va_start(argumentList, format);
if(!format)return;
NSLog(@"%@",format);
NSMutableString * message = [[NSMutableString alloc] initWithFormat:format
arguments:argumentList];
va_end(argumentList);
if(currentRunningOSVersion<100900){
NSLog(@"%@",message);
return;
}
如果 format
中的第一项包含占位符(例如 %@
)但没有相应的参数,则会出现异常。顺便说一句:你根本不需要 mutable 字符串。