iOS中常见面试题(不定时更新中.....)

1.什么是selector?

selector,是一个SEL类型的数据,就代表一个方法。可以间接调用方法。

SEL :是对方法的一种包装,将方法包装成一个SEL类型的数据,去找对应的方法地址,找到方法地址就可以调用。

发消息:就是发送一个SEL类型的数据。

方法在内存中的存储位置:

1》每个类的方法列表都存储在类中

2》 每个方法都有一个与之对应的SEL类型的对象

3》根据一个SEL对象就可以找到方法的地址,进而调用方法

比如:preson类中方法列表中有对象方法-(void)test;

person对象是怎么调用这个方法的呢?

1》系统会把test包装成SEL类型的数据

2》根据SEL数据找到对应的方法地址

3》根据方法地址调用对应的方法

2.SEL对象的创建

SEL *s = @selector(test);

SEL *s2 = NSSelectorFromString(@"test");

2.请写出UITableView和UIButton的继承关系

UITableView -->  UIScrollView --> UIView-->UIResponder-->NSObject;

UIButton-->UIControl-->UIView-->UIResponder-->NSObject;

时间: 2024-08-14 21:47:11

iOS中常见面试题(不定时更新中.....)的相关文章

iOS 多线程 自动释放池常见面试题代码

同步:代码依次执行,一个人执行多个任务,也是依次执行.一个人在同一时间只执行一个任务 异步:可以同时执行多个任务 进程:指在系统中运行的应用程序,每个进程都是独立的,都有独立的且安全的运行空间 线程:一个进程可以有多个线程,但只有一个主线程.进程的任务都是在线程里面完成的. 进程,线程与多线程之间的关系? 进程=公司     线程 = 员工    多线程 = 老板 多线程可以解决程序阻塞问题,也可以提高程序的执行效率 自动释放池常见面试题代码 p.p1 { margin: 0.0px 0.0px

redis知识点及常见面试题

redis知识点及常见面试题 参考: https://zm8.sm-tc.cn/?src=l4uLj4zF0NCIiIjRnJGdk5CYjNGckJLQrIqNiZaJnpOWjIvQno2LlpyTmo zQx87OxsfGztGXi5KT&uid=c9712557c9cde8bef666f89d1d708c67&hid=40c90f91312807e0fc0320b8ae fa07f7&pos=2&cid=9&time=1532475858864&fr

JAVA常见面试题及解答-java开发

JAVA常见面试题及解答 Java的垃圾回收总结  浅谈Java中的内部类 1)transient和volatile是java关键字吗? 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多

JDBC常见面试题集锦

什么是JDBC,在什么时候会用到它? JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库.JDBC接口及相关类在java.sql包和javax.sql包里.我们可以用它来连接数据库,执行SQL查询,存储过程,并处理返回的结果. JDBC接口让Java程序和JDBC驱动实现了松耦合,使得切换不同的数据库变得更加简单. 有哪些不同类型的JDBC驱动? 有四类JDBC驱动.和数据库进行交互的Java程序分成两个部分,一部分是JDB

【转载】JAVA常见面试题及解答(精华)

JAVA常见面试题及解答(精华) 1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: class T { transient int a;  //不需要维持 int b;  //需要维持 } 这里,如果T类的一个对象写入一个持久的存储区域,a的内容不被保存,但b的将被保存. volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变.在多线程程序中,有时两个或更多的线程共

数据库常见面试题总结

说明:本文仅供学习交流,转载请标明出处,欢迎转载! 数据库常见面试题总结 1.      SQL的表连接方式有哪些? SQL中连接按结果集分为:内连接,外连接,交叉连接 内连接:inner join on,两表都满足的组合.内连接分为等值连接,不等连接,自然连接. 等值连接:两表中相同的列都会出现在结果集中.  自然连接:两表中具体相同列表的列会合并为同一列出现在结果集中. 外连接:分为左(外)连接,右(外)连接,全连接 左(外)连接:A left (outer) join B,以A表为基础,A

java常见面试题——java笔试题总结

注:本文转载自http://www.cnblogs.com/huajiezh/p/5790928.html,版权归其所有! Java常见面试题总结 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4.描述一下ArrayList和LinkedList各自实现和区别 5.Java中的队列都有哪些,有什么区别. 6.反射中,Class.forName和cl

PHP常见面试题汇总(二)

PHP常见面试题汇总(二) //第51题:统计一维数组中所有值出现的次数?返回一个数组,其元素的键名是原数组的值;键值是该值在原数组中出现的次数 $array=array(4,5,1,2,3,1,2,"a","a"); $ac=array_count_values($array); /** * 输出结果: * Array( *   [4] => 1 *   [5] => 1 *   [1] => 2 *   [2] => 2 *   [3] 

JDBC常见面试题

以下我是归纳的JDBC知识点图: 图上的知识点都可以在我其他的文章内找到相应内容. JDBC常见面试题 JDBC操作数据库的步骤 ? JDBC操作数据库的步骤 ? 注册数据库驱动. 建立数据库连接. 创建一个Statement. 执行SQL语句. 处理结果集. 关闭数据库连接 代码如下: Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { /* * 加载驱动有两种方