kok*_*uch 8 64-bit exc-bad-access nsstring ios ios-simulator
使用64位iOS模拟器时,下面的init函数崩溃,出现EXC_BAD_ACCESS(code = 1)错误.谁会知道为什么?以及如何正确地解决它.
有关信息:'format'不是零,它可以在32位模拟器和任何32/64位iPhone/iPad设备上正常工作.
void Log (NSString * format, ...)
{
va_list argList;
va_start(argList, format);
NSLogv(format, argList);
NSString* string = [[NSString alloc] initWithFormat: format arguments: argList];
va_end(argList);
...
}
Run Code Online (Sandbox Code Playgroud)
在AppDelegate中称为第一件事
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
Log(@"app options %@", launchOptions);
...
}
Run Code Online (Sandbox Code Playgroud)
kok*_*uch 11
不知怎的,A-Live评论给了我一个想法,我发现了如何避免崩溃.
我在同一个va_start/va_end块中使用了两次argList
[[NSString alloc] initWithFormat: format arguments: argList];
Run Code Online (Sandbox Code Playgroud)
和
NSLogv(format, argList);
Run Code Online (Sandbox Code Playgroud)
似乎iOS 64位模拟器不喜欢它.不知道为什么它只能在任何其他平板电脑(以及真实设备)中找到它.所以我通过制作两个不同的bock来修复它
va_list argList;
va_start(argList, format);
NSString* string = [[NSString alloc] initWithFormat: format arguments: argList];
va_end(argList);
va_start(argList, format);
NSLogv(format, argList);
va_end(argList);
Run Code Online (Sandbox Code Playgroud)
希望它会帮助某人.如果有人知道为什么,我仍然很想知道它.
归档时间: |
|
查看次数: |
2067 次 |
最近记录: |