Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 传递给需要非Null参数的被调用方的Xcode 7 Null_Ios_Xcode - Fatal编程技术网

Ios 传递给需要非Null参数的被调用方的Xcode 7 Null

Ios 传递给需要非Null参数的被调用方的Xcode 7 Null,ios,xcode,Ios,Xcode,我更新了xcode 7并给出了这个错误 传递给需要非Null参数的被调用方的Null _recorder = [[AVAudioRecorder alloc]initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.%@", [NSHomeDirectory() stringByAppendingString:@"/Documents"], name, extension]] settings:nil error

我更新了xcode 7并给出了这个错误

传递给需要非Null参数的被调用方的Null

 _recorder = [[AVAudioRecorder alloc]initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.%@", [NSHomeDirectory() stringByAppendingString:@"/Documents"], name, extension]] settings:nil error:nil];

一种简单的检查方法是使用
显示完成情况
-转到方法名称并按Ctrl空格键,或在菜单
编辑器中按Ctrl键
显示完成情况
。一扇窗户会弹出。查找带有
(非空)
的条目-这些条目不得为
nil
。例如:

我在
[NSString stringWithFormat:…]中按了Ctrl空格键,光标位于
。正如您所看到的,许多参数都标记为
(非null)


当您在方法调用中显式传递
nil
时,您已经发现了问题。如果您传递了一个变量,请检查该变量当时是否为
nil

如果让您烦恼的是警告,您可以使用此
-Wnonnull

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"

_recorder = [[AVAudioRecorder alloc]initWithURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.%@", [NSHomeDirectory() stringByAppendingString:@"/Documents"], name, extension]] settings:nil error:nil];

#pragma clang diagnostic pop

我在使用自定义完成处理程序时遇到此问题。传递处理程序的nil值时出现警告。因此,我添加了带补全的
\uu nullable

typedef void (^ __nullable completionHandler)(void);

显示完整的错误消息和堆栈跟踪。无错误只是警告如下:Null传递给需要非Null argumentOK的被调用方,请将该语句拆分为单独的语句。这样,您就可以在调试器中检查哪个是
nil
,并真正了解它的功能。你在用这么长的复合语句为自己的后背做一根棒子。“Esc”代替了Ctrl空格键(更容易击中)@Mindaugas啊是的-我记得,“Esc”-弹出框让我很恼火:-)