Objective-C 宏类型
Objective-C macro type
我有以下宏:
#define MReachabilityReachable (((AppDelegate *)[UIApplication sharedApplication].delegate).reachableAzureMobileServices);
下面的工作正常。
BOOL internetReachable = MReachabilityReachable;
if (internetReachable){
// do someting
}
有没有办法改成:
if (MReachabilityReachable){
// do something
}
编译器不接受第二个片段。
宏通过直接扩展您编写的表达式来工作。在您的情况下,您的问题可能是宏末尾的 ;
。
让我们用一个更简单的宏来展示这个
#define MReachabilityReachable ([appDelegate isReachable]);
然后
BOOL internetReachable = MReachabilityReachable;
扩展为
BOOL internetReachable = ([appDelegate isReachable]);;
有效但是
if (MReachabilityReachable) {
扩展为
if (([appDelegate isReachable]);) {
其中 ;
使表达式无效。
我有以下宏:
#define MReachabilityReachable (((AppDelegate *)[UIApplication sharedApplication].delegate).reachableAzureMobileServices);
下面的工作正常。
BOOL internetReachable = MReachabilityReachable;
if (internetReachable){
// do someting
}
有没有办法改成:
if (MReachabilityReachable){
// do something
}
编译器不接受第二个片段。
宏通过直接扩展您编写的表达式来工作。在您的情况下,您的问题可能是宏末尾的 ;
。
让我们用一个更简单的宏来展示这个
#define MReachabilityReachable ([appDelegate isReachable]);
然后
BOOL internetReachable = MReachabilityReachable;
扩展为
BOOL internetReachable = ([appDelegate isReachable]);;
有效但是
if (MReachabilityReachable) {
扩展为
if (([appDelegate isReachable]);) {
其中 ;
使表达式无效。