Jus*_*zic 2 iphone objective-c
类似于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);
}
Run Code Online (Sandbox Code Playgroud)
我在这篇博客中关注了"Cocoa中的'va_list"部分: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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2172 次 |
| 最近记录: |