你的位置:首页 > 软件开发 > 操作系统 > iOS开发日记56

iOS开发日记56

发布时间:2015-12-28 15:00:07
今天博主有一个浅析NSobject API的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.我们都知道NSObject自身遵循NSObject这个协议,从协议开始说协议- (BOOL)isEqual:(id)object对比对象之间是否相同,地址相同,hash值也要相同 ...

今天博主有一个浅析NSobject API的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

我们都知道NSObject自身遵循NSObject这个协议,从协议开始说

协议

  • - (BOOL)isEqual:(id)object

    • 对比对象之间是否相同,地址相同,hash值也要相同,才会返回YES
  • @property (readonly) NSUInteger hash / + (NSUInteger)hash

    • 一般用来比较,注意:新创建的实例之间一般不同,类的静态方法返回值是一样的,比如有个类叫Man ,[Man hash]值是相同的,Man *man = [Man new]; [man hash]值不同
  • @property (readonly) Class superclass / + (Class)superclass

    • 返回父类的类名
  • - (Class)class / + (Class)class

    • 返回自己的类名
  • - (instancetype)self 

    • 返回自身,相当于Java 中的this
  • - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2

    • 执行aSelector方法,带参数,与[class do]这种方式比较,编译不会报错,只会警告,运行时检查是否有该方法,如没有,crash
  • - (BOOL)isProxy

    • 检查是否不继承自NSObject(比如NSProxy),返回NO说明继承
  • - (BOOL)isKindOfClass:(Class)aClass

    • 是否属于aClass类或者aClass子类的成员
  • - (BOOL)isMemberOfClass:(Class)aClass

    • 是否属于aClass类的成员
  • - (BOOL)conformsToProtocol:(Protocol)aProtocol 

     

    海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

    原标题:iOS开发日记56

    关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。