李洪强iOS经典面试题125
1、objective-c 是所有对象间的交互是如何实现的?
在对象间交互中每个对象承担的角色不同,但总的来说无非就是”数据的发送者”或”数据的接收者”两种角色,我们可以通过代理去进行通信,或者通过观察者消息模式,blocks,appdelegagte
通过:代理协议”或者”通知中心”方式的实现能最大限度的降低两交互对象之间的耦合,不错的设计;
2、如何将产品进行多语言发布,开发?
xcode 对多语言支持比较好,除了h,m文件外所有其他东西都可以多语言
3、objective-c中是如何实现线程同步的?
Mutexlock (互斥锁)、NSCondition lock (条件锁)消息传送
4、什么是UDP和TCP的区别是什么?
TCP 的全称是传输控制协议,这种协议可以提供面向连接的、可靠的、点到点的通信。
UDP 的全称是用户数据包协议。他可以提供非连接的不可靠的点懂啊多点的通信,是osi参考模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传输,_IETF RFC 768 是UDP 的正式规范;
选择何种协议,看程序注重那个方面,可靠抑或快速。
5、TCP/IP 建立连接的过程
?
在TCP/IP 协议中,TCP协议提供可靠的连接服务,采用三次握手建立连接;
第一次握手:建立连接时,客户端发送连接请求到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到客户端连接请求,向客户端发送允许连接应答,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的允许连接应答,向服务器发送确认,客户端和服务器进入通信状态,完成三次握手。
(所谓的三次握手,就是要有三次连接信息的发送、接收过程。TCP连的建立需要进行三次连接信息的发送、接收。)
6、全局变量可不可以定义在被多个.c文件包含的头文件中?为什么?
可以,在不同的c文件中以static 形式来声明同名全局变量。前提是其中只能有一个c文件中对此变量赋初值,此时连接不会出错。
7、如何引用一个已经定义过的全局变量?
extern
可以用引用头文件的方式,也可以用extern 关键字,如果用引用头文件的方式来引用某个在头文件中的全局变量,假定你那个变量写错了,那么编译期间会报错,如果用extern 方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。
8、什么叫数据结构?
数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。
通常,精心选择的数据结构可以带来更高的运行或者存储效率。
9、编程中,保存数据有哪几种方式?
数组、自定义类、文件操作,数据库:如(SQLite 、core data、 plist 、NSUserDefaults、file )—持久保存数据
1、Sizeof 和strlen 的区别和联系?
Sizeof() 是运算符,可以用类型做参数,还可以用函数做参数,功能是获得保证能容纳实现所建立的最大对象的字节大小;
strlen()是函数,要在运行时才能计算。参数必须是字符行指针且必须是以”\″结尾的。功能为:返回字符串的的长度。
11、什么是抽象类?抽象类有什么作用?能实例化吗?
在c++中,含有纯虚拟函数的类称为抽象类,他不能生成对象;
在java中,含有抽象方法的类称为抽象类,同样不能生成对象;
抽象类是不完整的,没有完全实现,只能用作基类;不能实例化。
12、你对@interface和@property的理解?
@interface 申明一个类
@property就是申明2个人函数,getter和setter,编译器会自动产生2个函数;
13、调用一个类的静态方法需不需要release?
静态方法,就是类方法,不需要,类方法对象放在autorelease中
15、do while和while do 的区别?
do while 是先执行后判断,条件不满足也要执行一次;
while do 是先判断后执行,条件不满足就一次都不执行。
16、写出几个死循环?
while(1){}、 for(;;){}。
17、用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略润年问题)
#define SECONS_PER_YER(6**6*24*365)UL
18、assign和retain ,copy区别?
assign就是和普通语言的赋值一样,不改变引用计数
retain 在一个对象中保存该对象需要拥有的对象,对该对象引用计数+1,指针拷贝;
copy 对NSString,内容拷贝,拷贝之前都会释放旧的对象
retain 对其他NSObject 和其子类
readonly 表示这个属性是只读的,就是只生成getter 方法,不生成setter 方法。
read write 设置可供访问级别
19、类之间的继承关系,比如UIview 的父类是哪一个等等?
UIResponder ,处理触摸,touchBegin、touchEnd ,nextResponder
const和volatile 分别代表什么意思?
const 简单说是只读,用来保护那些不希望被改变的参数,防止其被那些恶意的代码修改。
李洪强iOS经典面试题125的更多相关文章
- 李洪强iOS经典面试题156 - Runtime详解(面试必备)
李洪强iOS经典面试题156 - Runtime详解(面试必备) 一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...
- 李洪强iOS经典面试题155 - const,static,extern详解(面试必备)
李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一.const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽 ...
- 李洪强iOS经典面试题154- 通知与推送
李洪强iOS经典面试题154- 通知与推送 通知与推送 本地通知和远程推送通知对基本概念和用法? image 本地通知和远程推送通知都可以向不在前台运行的应用发送消息,这种消息既可能是即将发生的事 ...
- 李洪强iOS经典面试题153- 补充
李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了... UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模 ...
- 李洪强iOS经典面试题147-WebView与JS交互
李洪强iOS经典面试题147-WebView与JS交互 WebView与JS交互 iOS中调用HTML 1. 加载网页 NSURL *url = [[NSBundle mainBundle] UR ...
- 李洪强iOS经典面试题144-数据存储
李洪强iOS经典面试题144-数据存储 数据存储 sqlite中插入特殊字符的方法和接收到处理方法. 除'其他的都是在特殊字符前面加"/",而 ' -> '' .方法:k ...
- 李洪强iOS经典面试题143-绘图与动画
李洪强iOS经典面试题143-绘图与动画 绘图与动画 CAAnimation的层级结构 CAPropertyAnimation是CAAnimation的子类,也是个抽象类,要想创建动画对象,应该使 ...
- 李洪强iOS经典面试题142-第三方框架及其管理
李洪强iOS经典面试题142-第三方框架及其管理 第三方框架及其管理 使用过CocoaPods吗?它是什么?CocoaPods的原理? CocoaPod是一个第三方库的管理工具,用来管理项目中的第 ...
- 李洪强iOS经典面试题141-报错警告调试
李洪强iOS经典面试题141-报错警告调试 报错警告调试 你在实际开发中,有哪些手机架构与性能调试经验 刚接手公司的旧项目时,模块特别多,而且几乎所有的代码都写在控制器里面,比如UI控件代码.网络 ...
随机推荐
- 函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结 (转)
函数fgets和fputs.fread和fwrite.fscanf和fprintf用法小结 字符串读写函数fgets和fputs 一.读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符 ...
- gdb调试小结
gdb最基本的调试命令. 1以调试程序test.cpp为例: 进入调试环境 gdb test 2.b 12 在文件的第12行设置断点. 删除断点: info b 列出所有的断点信息 (gdb) inf ...
- 用PowerShell脚本实现对SharePoint页面Title的修改
存在这样一种情况,对应的page已经部署到product的SharePoint环境中,那么在部署下一个版本的时候就不允许把已经创建好的page删除再创建,因此page中修改过的属性就不能再次部署到Sh ...
- pythonchallenge之C++学习篇-02
第二关任然是一个字符处理的关卡 查看网页源码发现有一大串字符需要处理,这么多的字符如果放在源代码里就很不好了 所以要用到C++对文件的操作,用到的头文件是fstream 这里参照了这个博文 对文件处理 ...
- Comet:基于 HTTP 长连接的“服务器推”技术解析
原文链接:http://www.cnblogs.com/deepleo/p/Comet.html 一.背景介绍 传统web请求,是显式的向服务器发送http Request,拿到Response后显示 ...
- php echo return exit 区别
echo.print().printf().sprintf().vardump().varexport():都可以输出内容到网页,但不退出函数或程序. return:返回并立即退出,函数级别. die ...
- .net发邮件【转】
对于.NET而言,从2.0开始,发邮件已经是一件非常easy 的事了.下面我给出一个用C#群发邮件的实例,做了比较详细的注解,希望对有需要的朋友有所help. // 引入命名空间using Syste ...
- express-7 请求和响应对象(2)
获取更多信息 如果正在寻找某些功能,首先要查看Express的API文档 如果需要的信息没在文档中,有时就不得不深入研究Express源码; 下面是Express源码的路径说明 lib/applica ...
- Codeforces 335C Sorting Railway Cars
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- [转] FastMM使用详解
FastMM使用详解 一.引言 FastMM 是适用于delphi的第三方内存管理器,在国外已经是大名鼎鼎,在国内也有许多人在使用或者希望使用,就连 Borland 也在delphi2007 ...