我照书上的方法,写了一个函数来处理可变参数,为什么老是出现错误呢?
-(void)sayHelloTo:(NSString *)first, ...{
va_list names;
if (first) {
va_start(names, first);
NSString* name = nil;
while ((name = va_arg(names, id))) {
NSLog(@"%@", name);
}
va_end(names);
}
}
运行时,名字是都打印出来了,不过最后出现了异常,异常信息如下:Thread1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)
请问这是什么原因?本人是初学者,谢谢!!!!
-(void)sayHelloTo:(NSString *)first, ...{
va_list names;
if (first) {
va_start(names, first);
NSString* name = nil;
while ((name = va_arg(names, id))) {
NSLog(@"%@", name);
}
va_end(names);
}
}
运行时,名字是都打印出来了,不过最后出现了异常,异常信息如下:Thread1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)
请问这是什么原因?本人是初学者,谢谢!!!!
解决方案 »
- 这个用cocos2d-x怎么写?
- 请教原因,XP下安装苹果系统停留在灰苹果界面
- [摄像头问题] 远程 连接摄像头的原理是什么
- 新手请教如何让用户在触摸的时候执行一个循环,松开的时候就停止
- 有熟悉iOS开发的不?
- OC中alloc内存分配大小的问题
- 在看一个ios项目的时候在搜索栏输入项目中存在的图片名居然搜索不到,为什么?难道设置权限了还是搜索方法有错误?求大神指点
- 如何在xcode测试手机网页?
- iOS TableViewCell 里面嵌套的CollectionView如何点击里面的CollectionViewCell跳转页面
- 请教关于网络上传数据的问题
- Voip后台实现过程中的问题,底层用sip的库,求支援求帮助求分析解决
- socket通信中多线程问题
va_list names;
if (first) {
va_start(names, first);
NSString* name = nil;
while ((name = va_arg(names, id))) {
NSLog(@"%@", name);
}
va_end(names);
}
}这样就可以了....没有那个,......的意思是还可以用更多的参数例如-(void)sayHelloTo:(NSString *)first second:(NSString *)sec 是这个意思........
这样也可以
2. 请在参数最后加nil,如[self sayHelloTo:@"abc", @"def", nil];如果没加nil就会出现楼主描述的错误。