gpt4 book ai didi

iphone - 使用 va_list 并获取 EXC_BAD_ACCESS

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

与 NSLog 如何获取变量参数列表类似,我想创建自己的方法。

我的方法是这样声明的,但是当我尝试访问“args”变量时,我得到一个 EXEC_BAD_ACCESS。我在这里做得不正确是什么?

- (void)info:(NSString *)formatString, ...
{
va_list args;
va_start(args, formatString);

NSLog(@"formatString value: %@", formatString);

// The following line causes the EXEC_BAD_ACCESS
NSLog(@"args value: %@", args);

// This is what I'm trying to do:
NSLog(formatString, args);

va_end(args);
}

我正在关注此博客中的“va_list in Cocoa”部分: http://cocoawithlove.com/2009/05/variable-argument-lists-in-cocoa.html

最佳答案

您的代码中有一些错误。首先,args不能直接按原样打印。它是对多个参数的引用,尝试使用 NSLog("%@") 打印它是行不通的。您可以做的是使用 NSLogv() 来打印它(例如 NSLogv(format, args);)。

或者你可以像我一样,使用这个功能:

void print (NSString *format, ...) {
va_list args;
va_start(args, format);

fputs([[[[NSString alloc] initWithFormat:format arguments:args] autorelease] UTF8String], stdout);

va_end(args);
}

关于iphone - 使用 va_list 并获取 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886286/

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