我最近下载了Xcode 9.2并将我的项目设置更新为推荐。现在,我在我的代码中收到了警告,表示我已经使用断言的所有地方,例如:
String timeStamp = new
SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
对此有什么选择?
答案 0 :(得分:2)
如果您使用的是Objective-C,则需要调用NSAssert()
,而不是assert()
(这是一个C函数)。
NSAssert(NO, @"Must be implemented by subclass");
如果您想继续使用assert()
,则应将其视为C函数。
assert(0); // <-- Note: no message is provided
你可能会离开
assert(/* Must be implemented by subclass */ 0);
或
assert("Must be implemented by subclass" == NULL); // <-- Note: No `@`
答案 1 :(得分:1)
您的assert
条件是一个始终通过测试的字符串。
您应该检查assert
答案 2 :(得分:0)
a)断言需要检查条件。你把字符串视为一个条件,它是非空的...做
b)你使用NSString而不是char *所以你将objC对象传递给C,在这种情况下它不会起作用... do
assert(codition & "Message");
c)你应该使用NSAssert for ObjC Code ..做
NSAssert(codition, @"Message");