IOS 宏定义

1、__OSX_AVAILABLE_STARTING


有时候我们会看到这样的东西 
CA_EXTERN NSString * const kCATransitionFromRight
    __OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);
__OSX_AVAILABLE_STARTING 是什么意思呢?
我们知道 Mac OS X and iOS有不同的版本号,__OSX_AVAILABLE_STARTING 宏允许你同时指定Mac OS X and iOS的版本号。
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0)它表示从 mac os x10.5 和ios 2.0 才开始使用的,两种平台都支持。
 
有时候我们只想支持一种平台,怎么办呢?
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA)
它表示 只支持mac os x  不支持ios平台,最后的NA 表示not  applicable ,是这两个单词的缩写

2、__OSX_AVAILABLE_BUT_DEPRECATED

我们在开发的过程中会发现某些方法被deprecated了,这是因为这些方法已经被更好的方法代替了,

或者是这些放在在当初设计的时候考虑不全面等。

__OSX_AVAILABLE_BUT_DEPRECATED() 宏说明,在某个版本开始引进一个方法,

但是在某个版本之后废弃了。

__OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)

在mac os x 10.0 开始引进这个方法,但是在10.5之后废弃了,ios上从来没只支持过。


我们可以自己写一些方法

extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);

这个函数在mac os x 10.5之后可用,在ios上不可用

     @interface MyClass : NSObject
            -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);

            -(void) mymacandiosmethod
      @end

这个类中的mymacmethod 在mac os x 10.5可用,在ios上不可用

但是mymacandiosmethod就没有限制了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值