美文网首页
Objective-C的一些小知识点

Objective-C的一些小知识点

作者: 7分醉 | 来源:发表于2018-05-26 22:16 被阅读21次

1.isMemberOfClass 和 isKindOfClass 联系与区别

isKindOfClass 用于确定一个对象是一个类的成员,或者是否是一个类的派生类的成员
isMemberOfClass 用于确定一个对象是否是一个类的成员

2.id和instencetype的区别

instencetype 可以返回方法所在类的类型
比如:

@interface TTTestTool : NSObject
+ (id)testToolWithNowTime;
+ (instancetype)testToolWithNowTime;
@end

+ (instancetype)testToolWithNowTime;该方法返回的就是TTTestTool类型的。
+ (id)testToolWithNowTime;返回的就是ID类型的。

需要注意的是:

根据Cocoa的命名规则,满足下述规则的方法:
(1)类方法中,以alloc或new开头
(2)实例方法中,以autorelease,init,retain或self开头
会返回一个方法所在类类型的对象,这些方法就被称为是关联返回类型的方法。换句话说,这些方法的返回结果以方法所在的类为类型。

也就是说如果你写了一个-(id)init;方法,虽然用了id,但还是返回的是方法所属类的类型。

3. SEL和IMP是什么,有什么区别

SEL是方法编号
IMP是函数指针,指向方法地址

联系:IMP可以通过SEL来构造出来,同一个SEL可以对应多个IMP。因为同一个SEL在不同的对象中对应不同的方法实现。

举个例子:

//在 TTTestTool和TTAlgorithmTool都有function1方法
  TTTestTool *ttTest = [TTTestTool new];
 SEL methId = @selector(function1);
 IMP imp1 = [ttTest methodForSelector:methId];
   imp1();
        
 TTAlgorithmTool *ttAlgo = [TTAlgorithmTool new];
 IMP imp2 = [ttAlgo methodForSelector:methId];
 imp2();

//log
// 这里是TTTestTool类~~~
// 这里是TTAlgorithmTool类~~

总结:通过同一个SEL构造出连个IMP,分别调用到不同类中的方法

4.如何实现准确定时器

有篇文章写的很好:http://blog.lessfun.com/blog/2016/08/05/reliable-timer-in-ios/
这里贴出代码:

相关文章

  • Objective-C的一些小知识点

    1.isMemberOfClass 和 isKindOfClass 联系与区别 isKindOfClass 用于确...

  • Objective-C知识点导图

    Objective-C 务必需要掌握的知识点。。。

  • iOS 知识点收集站

    部分链接转自 iOS基础知识点网址 Objective-C基础 禅与 Objective-C 编程艺术 类和对象 ...

  • 一些小知识点

    1、学会了使用ConcurrentHashMap,不能在遍历map的同时(循环里面)remove一个key!! 结...

  • 一些小知识点

    1. LLVM LLVM是一个模块化和可重用的编译器和工具链技术的集合,Clang 是 LLVM 的子项目,是 ...

  • swift学习笔记(二)

    继续记录swift知识点: 1)枚举 枚举语法: ** 和 C 和 Objective-C 不同,Swift 的枚...

  • Objective-C 知识点(一)

    BOOL的实际类型是signed char,所以赋值给BOOL类型时,可能会出现截断的情况。 #define指令把...

  • vue的一些小知识点

    1、MVVM层M层:数据层V层:视图层VM层:Vue(监听数据改变并作出映射) 2、如果要触发原生的绑定事件而不是...

  • vue的一些小知识点

    data{{ msg:xxxxxxxx }} 是把msg以文本形式呈现

  • HTML的一些小知识点

    HTML、XML、XHTML有什么区别HTML是超文本标记语言,语法比较松散,是不严格的web语言;XML是可扩展...

网友评论

      本文标题:Objective-C的一些小知识点

      本文链接:https://www.haomeiwen.com/subject/otlvjftx.html