Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Iphone 函数ZAssert的隐式声明在C99中无效_Iphone_Ios_Xcode_Ipad - Fatal编程技术网

Iphone 函数ZAssert的隐式声明在C99中无效

Iphone 函数ZAssert的隐式声明在C99中无效,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我有这样的代码: ZAssert(modelURL, @"Failed to find model URL"); 但我得到了一个错误: implicit declaration of function ZAssert is invalid in C99 你们中的任何人都知道我为什么要修复或如何修复?ZAssert很可能是一个断言宏,它是从某个地方或文件中复制的,现在不是代码库的一部分。它不需要执行标准功能,因此您只需将其替换为: NSAssert(modelURL, @"Failed to

我有这样的代码:

ZAssert(modelURL, @"Failed to find model URL");
但我得到了一个错误:

implicit declaration of function ZAssert is invalid in C99

你们中的任何人都知道我为什么要修复或如何修复?

ZAssert
很可能是一个断言宏,它是从某个地方或文件中复制的,现在不是代码库的一部分。它不需要执行标准功能,因此您只需将其替换为:

NSAssert(modelURL, @"Failed to find model URL");

这将检查modelURL是否已设置,如果未设置,则引发异常。

ZAssert
可能是从某个地方或文件中复制的断言宏,而该文件现在不是代码库的一部分。它不需要执行标准功能,因此您只需将其替换为:

NSAssert(modelURL, @"Failed to find model URL");

这将检查modelURL是否已设置,如果未设置,则引发异常。

这是我从Marcus S.Zarra的核心数据手册中找到的ZAsset宏

#ifdef DEBUG
#define MCRelease(x) [x release]
#define DLog(...) NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString    stringWithFormat:__VA_ARGS__])
#define ALog(...) {NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__]);[[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__];}
#else
#define MCRelease(x) [x release], x = nil
#define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__])
#endif

#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)

这是我从Marcus S.Zarra的核心数据书中找到的ZAsset宏

#ifdef DEBUG
#define MCRelease(x) [x release]
#define DLog(...) NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString    stringWithFormat:__VA_ARGS__])
#define ALog(...) {NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__]);[[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__];}
#else
#define MCRelease(x) [x release], x = nil
#define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s(%p) %@", __PRETTY_FUNCTION__, self, [NSString stringWithFormat:__VA_ARGS__])
#endif

#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)

什么是ZAssert?你在哪里定义它?这是我的问题。我不知道那你为什么要用它?可能想了解有关NSAssertI的信息。我从其他人那里继承了此代码。断言是确保某些假设有效的检查。该检查确保modelURL存在,否则将引发异常。你可以用不同的资产替换它什么是ZAssert,你在哪里定义它?这是我的问题。我不知道那你为什么要用它?可能想了解有关NSAssertI的信息。我从其他人那里继承了此代码。断言是确保某些假设有效的检查。该检查确保modelURL存在,否则将引发异常。您可以将其替换为不同的断言测试。如果能解释一下在NSAssert上使用它的优点,那就太好了。如果您能解释一下在NSAssert上使用此选项的优点,那就太好了