对象ios程序员工作总结

ios 5 0  时间:2021-02-08  阅读:()

精品文档助力人生欢迎关注小编

io s程序员工作总结

一、判断题每题2分共20分

1、UI Tab le Vie w能够绑定多个数据源。 错

2、一个UIVie wC ontro ller可以管理多个UI Tab leView。 对

3、 Object-c的类可以多重继承。 错

4、 obj ective-c类里面的方法只有两种,静态方法和实例方法。 对

5、NSFileManager和NSWorkspace在使用时都是基于进程进行单件对象的实例化。对

6、用类别增加方法时不能与原来类中的方法产生名称冲突。 错

7、 frame指的是该view在本身坐标系统中的位置和大小。 错

8、method是一个方法的名字 se lec tor是一个组合体。 错

9、ARC是编译特性不是运行时特性在编译时编译器会自动加上释放代码。 对

10、从iOS4之后 Safari支持全屏浏览 Siri支持普通话。 对

二、填空题每空2分共20分

1、 iOS是使用Objective-C语言编写的使用该语言开发的Cocoa是一款功能强大的用户界面工具包也是iOS的核心。

2、数组是将元素在内存中连续存放 由于每个元素占用内存相同可以通过下标迅速访问数组中任何元素。链表恰好相反其中的元素在内存中不是顺序存储的而是通过存在元素中的指针联系到一起。

3、发送同步请求程序将停止用户交互直至服务器返回数据完成才可以进行下一步操作。而发送异步请求不会阻塞主线程会建立一个新的线程来操作之后程序可以继续运行。

4、 autorelease只是把Object放入了当前的autorelease pool中当它被释放时其中的所有Object都会被调用Release。

5、作为Obj ective-C导入头文件的关键字 #impo rt用来包含系统的头文件 #import””用来包含用户头文件。

三、简述题每题4分共20分

精品文档助力人生欢迎关注小编

1、 de le gate和no tificatio n有什么区别什么情况下使用

答de le gate消息的发送者sender告知接收者rece iver某个事件将要发生de le gate同意然后发送者响应事件 de le gate机制使得接收者可以改变发送者的行为。

通常发送者和接收者的关系是直接的一对多的关系。notificatio n消息的发送者告知接收者事件已经发生或者将要发生仅此而已接收者并不能反过来影响发送者的行为。通常发送者和接收者的关系是间接的多对多关系。

2、Object-C中创建线程的方法是什么如果在主线程中执行代码方法是什么如果想延时执行代码、方法又是什么

答线程创建有三种方法使用N S Thread创建、使用GC D的d isp atc h、使用子类化的N SOperatio n然后将其加入N SOperatio nQ ueue。

在主线程执行代码方法是performSe lectorO nMainThread。

如果想延时执行代码可以用performSe lector:onThread:withObject:waitUntilDone。

3、 iOS有哪些数据持久化方式

答 四种属性列表、对象归档、 SQLite3和Core Data。

4、 Obj ective-C如何对内存管理的,说说你的看法和解决方法

答 O bj ective-C的内存管理主要有三种方式ARC 自动内存计数、手动内存计数、内存池。解决方法的话谁持有谁释放。

5、如何对iOS设备进行性能测试

答 Pro file- Ins trume nt s -Time Pro fi ler。

四、 问答题每题10分共20分

1、什么是MVC为什么使用MVC有什么好处描述一下iO S S DK中如何实现MVC的开发模式。

答MVC分别为模型(Mode l)视图(View)和控制C o ntro ller)。

模型Model 即“数据模型”用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。 “模型”有对数据直接访问的权力例如对数据库的访问。

视图Vie w视图层能够实现数据有目的显示。

控制器Contro ller控制器起到不同层面间的组织作用用于控制应用程序的流程。

对于iOS SDK所有的View都是视图层的它应该独立于模型层 由视图控制层来

精品文档助力人生欢迎关注小编

控制。所有的用户数据都是模型层它应该独立于视图。所有的Vie wC o ntro lle r都是控制层 由它负责控制视图访问模型数据。

2、请阐述UI Vie wC ontro ller的生命周期包括代码的执行顺序。 答 当一个视图控制器被创建并在屏幕上显示的时候。代码的执行顺序

//视图显示在屏幕上的顺序

1、 a lloc创建对象分配空间。

2、 init (initWithN ibName)初始化对象,初始化数据。

3、viewload从nib载入视图,这一步不需要去干涉。除非没有使用xib文件创建视图。

4、 viewD idLoad加载完毕可以进行自定义数据以及动态创建其他控件。

5、 viewWillAppear视图将出现在屏幕之前马上这个视图即将显示在屏幕上。

6、 viewD idAppear视图已在屏幕上渲染完成。

//视图将被从屏幕上移除的顺序

1、 viewWillD isappe ar视图将被从屏幕上移除之前执行。

2、 viewD idD isappear视图已经被从屏幕上移除。

3、 dea lloc视图被销毁此时需要在init和vie wD idLoad中创建的对象进行释放。

4、viewDidUnload出现内存警告在内存不足时执行并对所有非当前显示的contro ller执行。

本视图的所有子视图将被销毁 以释放内存此时开发者需要手动对viewLoad、viewD idLoad中创建的对象释放内存。

因为当这个视图再次显示在屏幕上的时候 viewLoad、 viewD idLoad再次被调用 以便再次构造视图。

五、论述题20分

请针对正泰中自智慧水务APP的需求见现场展示的原型论述您的开发思路和使用的开发技术。

输入和输出

IO分类

1输入和输出流

2节点流和处理流

精品文档助力人生欢迎关注小编

3字节流byte 和字符流(c har)

输入流

字节流

抽象基类Inp utS tre a m

读取文件的FileInp utStream

缓冲流Buffe redInp utStream

读取各种j ava基本数据类型的DataInp utStream

读取对象ObjectInputStream

字符流

抽象基类Reader

读取文本文件的FileReader

实现缓冲的Buffe redRe ad读取一个行readLine();newline()输出流

字节流

抽象基类O utp utS tream

写文件的FileO utputStream\\\\

缓冲输出流Buffe redOutp utStream

写各种java基本数据类型的DataO utputS tream

写对象的ObjectOutputStreamwriteObject(Object obj) ;字符流

对象的序列化

一个对象所属的类如果实现java.io.Serializable

则这个类是序列化类此类创建的对象就是序列化对象序列化对象可以通过文件流在文件中进行读和写。

数据存储★★

1、 IO S中常用的数据存储方式有哪些

答 1.数据存储有四种方案NSUserDefault,KeyChain,File,DB.2.其中File有三种方式plist,Archiver,Stream 3.DB包括core Data和FMDB

2、说一说你对s q lite的认识

S Q L ite是目前主流的嵌入式关系型数据库其最主要的特点就是轻量级、跨平台当

精品文档助力人生欢迎关注小编

前很多嵌入式操作系统都将其作为数据库首选。虽然S Q L ite是一款轻型数据库但是其功能也绝不亚于很多大型关系数据库。学习数据库就要学习其相关的定义、操作、查询语言也就是大家日常说得SQL语句。和其他数据库相比 SQLite中的SQL语法并没有太大的差别因此这里对于SQL语句的内容不会过多赘述大家可以参考SQ Lite中其他SQL相关的内容这里还是重点讲解iO S中如何使用SQLite构建应用程序。先看一下SQ Lite数据库的几个特点

1.基于C语言开发的轻型数据库

2.在iOS中需要使用C语言语法进行数据库操作、访问无法使用ObjC直接访问因为lib q lite 3框架基于C语言编写

3.SQLite中采用的是动态数据类型 即使创建时定义了一种类型在实际操作时也可以存储其他类型但是推荐建库时使用合适的类型特别是应用需要考虑跨平台的

情况时

4.建立连接后通常不需要关闭连接尽管可以手动关闭

在iO S中操作S Q L ite数据库可以分为以下几步注意先在项目中导入lib sq lite 3框架

1.打开数据库利用sq lite 3_op e n()打开数据库会指定一个数据库文件保存路径如果文件存在则直接打开否则创建并打开。打开数据库会得到一个s q lite 3类型的对象后面需要借助这个对象进行其他操作。

2.执行SQL语句执行SQL语句又包括有返回值的语句和无返回值语句。 3.对于无返回值的语句如增加、删除、修改等直接通过s q lite 3_e xe c()函数执行

4.对于有返回值的语句则首先通过sq lite 3_prep a re_v2()进行sq l语句评估语法检测然后通过sq lite 3_st ep()依次取出查询结果的每一行数据对于每行数据都可以通过对应的s q lite 3_c o lumn_类型()方法获得对应列的数据如此反复循环直到遍历完成。当然最后需要释放句柄。

3、说一说你对FMDB的认识

F MDB是一个处理数据存储的第三方框架框架是对sq lite的封装整个框架非常轻量级但又不失灵活性而且更加面向对象。 FMDB有如下几个特性

1.F MDB既然是对于lib sq lite 3框架的封装 自然使用起来也是类似的使用前也要打开一个数据库这个数据库文件存在则直接打开否则会创建并打开。这里FMDB引入了一

精品文档助力人生欢迎关注小编

个MFDataba se对象来表示数据库打开数据库和后面的数据库操作全部依

赖此对象。

2.对于数据库的操作跟前面KCDbManager的封装是类似的在FMDB中FMDatab ase类提供了两个方法exec ute Update:和e xec uteQ uery:分别用于执行无返回结果的查询和有返回结果的查询。当然这两个方法有很多的重载这里就不详细解释了。唯一需要指出的是如果调用有格式化参数的sql语句时格式化符号使用“?”而不是“%@”、等。

3.我们知道直接使用lib s q lit e 3进行数据库操作其实是线程不安全的如果遇到多个线程同时操作一个表的时候可能会发生意想不到的结果。为了解决这个问题建议在多线程中使用FMDataba seQueue对象相比FMDatabase而言它是线程安全的。

4.将事务放到FMDB中去说并不是因为只有FMD B才支持事务而是因为FM DB将其封装成了几个方法来调用不用自己写对应的sql而已。其实在在使用libsqlite3操作数据库时也是原生支持事务的因为这里的事务是基于数据库的 F MD B还是使用的S Q L ite数据库只要在执行sql语句前加上“begin transaction;”执行完之后执行“committransaction;”或者“rollback transaction;”进行提交或回滚即可。另外在Core Data中大家也可以发现所有的增、删、改操作之后必须调用上下文的保存方法其实本身就提供了事务的支持只要不调用保存方法之前所有的操作是不会提交的。在FMDB中FMDatabase有beginTrans actio n、 co mmit、 ro llback三个方法进行开启事务、提交事务和回滚事务。

4、说一说你对C ore Data的认识

C ore Data使用起来相对直接使用S Q Lite3的API而言更加的面向对象操作过

程通常分为以下几个步骤

1.创建管理上下文

创建管理上下可以细分为加载模型文件-指定数据存储路径-创建对应数据类型的存储-创建管理对象上下方并指定存储。

经过这几个步骤之后可以得到管理对象上下文NSManagedObjectContext以后所有的数据操作都由此对象负责。同时如果是第一次创建上下文Core Data会自动创建存储文件

例如这里使用SQLite3存储并且根据模型对象创建对应的表结构。

2.查询数据

对于有条件的查询在C ore Data中是通过谓词来实现的。首先创建一个请求然后

精品文档助力人生欢迎关注小编

设置请求条件最后调用上下文执行请求的方法。

3.插入数据

插入数据需要调用实体描述对象NSEntityDe scription返回一个实体对象然后设置对象属性最后保存当前上下文即可。这里需要注意增、删、改操作完最后必须调用管理对象上下文的保存方法否则操作不会执行。

4.删除数据

删除数据可以直接调用管理对象上下文的deleteObject方法删除完保存上下文即可。注意删除数据前必须先查询到对应对象。

5.修改数据

修改数据首先也是取出对应的实体对象然后通过修改对象的属性最后保存上下文。

5、 OC中有哪些数据存储方式,各有什么区别?OC中有四种数据存储方式:

1).N SUserDe faults,用于存储配置信息2).S Q Lite,用于存储查询需求较多的数据

3).CoreData,用于规划应用中的对象

4).使用基本对象类型定制的个性化缓存方案.NSUserDefaults:对象中储存了系统中用户的配置信息,开发者可以通过这个实例对象对这些已有的信息进行修改,也可以按照自己的需求创建新的配置项。S Q Lite擅长处理的数据类型其实与N SUse rDe faults差不多,也是基础类型的小数据,只是从组织形式上不同。开发者可以以关系型数据库的方式组织数据,使用SQLDML来管理数据。一般来说应用中的格式化的文本类数据可以存放在数据库中,尤其是类似聊天记录、 Time line等这些具有条件查询和排序需求的数据。

C oreData是一个管理方案,它的持久化可以通过S Q Lite、XML或二进制文件储存。它可以把整个应用中的对象建模并进行自动化的管理。从归档文件还原模型时CoreData并不是一次性把整个模型中的所有数据都载入内存,而是根据运行时状态,把被调用到的对象实例载入内存。框架会自动控制这个过程,从而达到控制内存消耗,避免浪费。无论从设计原理还是使用方法上看,C o re D ata都比较复杂。因此,如果仅仅是考虑缓存数据这个需求,C oreData绝对不是一个优选方案。 C oreData的使用场景在于:整个应用使用C oreData规划,把应用内的数据通过CoreData建模,完全基于CoreData架构应用。使用基本对象类型定制的个性化缓存方案:从需求出发分析缓存数据有哪些要求:按Key查找,快速读取,写入不影响正常操作,不浪费内存,支持归档。这些都是基本需求,那么再进一步或许还需要固定缓存

精品文档助力人生欢迎关注小编

项数量,支持队列缓存,缓存过期等。

数据存储这一块,面试常问,你常用哪一种数据存储?什么是序列化?s q lite是直接用它还是用封装了它的第三方库?尤其是会问sq lite和core d ata的区别?

5、 IO S平台怎么做数据的持久化?coredata和sq lite有无必然联系?coredata是一个关系型数据库吗?iO S中可以有四种持久化数据的方式:属性列表、对象归档、 SQLite3和Core Datac o re d ata可以使你以图形界面的方式快速的定义ap p的数据模型,同时在你的代码中容易获取到它。 c o re d ata提供了基础结构去处理常用的功能,例如保存,恢复,撤销和重做,允许你在ap p中继续创建新的任务。在使用c o re d ata的时候,你不用安装额外的数据库系统,因为coredata使用内置的sq lit e数据库。 cor edata将你app的模型层放入到一组定义在内存中的数据对象。 coredata会追踪这些对象的改变,同时可以根据需要做相应的改变,例如用户执行撤销命令。当coredata在对你app数据的改变进行保存的时候,core data会把这些数据归档,并永久性保存。mac os x中sqlite库,它是一个轻量级功能强大的关系数据引擎,也很容易嵌入到应用程序。可以在多个平台使用,s q lite是一个轻量级的嵌入式s q l数据库编程。与coredata框架不同的是,sq lit e是使用程序式的,sq l的主要的AP I来直接操作数据表。 C oreData不是一个关系型数据库,也不是关系型数据库管理系统(RD BMS)。虽然C ore Dta支持SQLite作为一种存储类型,但它不能使用任意的SQ Lite数据库。 Core Data在使用的过程种自己创建这个数据库。 C ore Data支持对

一、对多的关系。

6、如果后期需要增加数据库中的字段怎么实现如果不使用C oreData呢

编写SQL语句来操作原来表中的字段增加表字段

ALTER TABLE表名ADD COLUMN字段名字段类型; •删除表字段

ALTER TABLE表名DROP COLUMN字段名;

.

修改表字段

ALTER TABLE表名RENAME COLUMN旧字段名TO新字段名;

7、 S Q L ite数据存储是怎么用

添加S Q L ite动态库

精品文档助力人生欢迎关注小编

导入主头文件 #import利用C语言函数创建\\\\打开数据库编写SQ L语句

8、简单描述下客户端的缓存机制

1缓存可以分为 内存数据缓存、数据库缓存、文件缓存2每次想获取数据的时候3先检测内存中有无缓存

4再检测本地有无缓存(数据库\\\\文件)5最终发送网络请求

6将服务器返回的网络数据进行缓存内存、数据库、文件 以便下次读取

9、你实现过多线程的C ore Data么N SPers is te ntSto reC oord inator

NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递你是用什么样的策略来实现的

1 C oreData是对S Q Lite数据库的封装

2CoreData中的N SManagedObj ectCo ntext在多线程中不安全

3如果想要多线程访问C o re D ata的话最好的方法是一个线程一个

NSManagedObjectContext 4每个NSManagedObj ectContext对象实例都可以使用同一个N SPersistentStoreCoordinato r实例这是因为N SManagedObjectCo nte xt会在便用N SPersiste ntStoreC oord inato r前上锁

10、 core data数据迁移

博客地址:http://blog.c sdn.net/jasonblog/article/details/17842535

11、 FMDB的使用和对多张表的处理

博客地址:http://b lo g.c sdn.net/wscqqlucy/article/details/8464398

12、说说数据库的左连接和右连接的区别

数据库左连接和右连接的区别主表不一样通过左连接和右连接最小条数为3 记录条数较小的记录数最大条数为12 3×4技术博客的地址:http:///

、程序启动画面大小iOS设备现在有三种不同的分辨率 iPhone320x480、 iPhone4640x960、 iPad768x1024。以前程序的启动画面(图片)只要准备一个Default.png就可以了但是现在变得复杂多了。下面就是CocoaChina会员做得总结

如果一个程序既支持iPhone又支持iPad那么它需要包含下面几个图片

Default-Portrait.png iPad专用竖向启动画面768 x1024或者768 x1004

Sharktech:鲨鱼机房1Gbps无限流量美国服务器;丹佛$49/月起,洛杉矶$59/月起

sharktech怎么样?sharktech鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主打高防产品,独立服务器免费提供60Gbps/48Mpps攻击防御。机房提供1-10Gbps带宽不限流量服务器,最低丹佛/荷兰机房每月49美元起,洛杉矶机房最低59美元...

Digital-VM暑期全场六折优惠,8个机房

Digital-VM商家目前也在凑热闹的发布六月份的活动,他们家的机房蛮多的有提供8个数据中心,包括日本、洛杉矶、新加坡等。这次六月份的促销活动全场VPS主机六折优惠。Digital-VM商家还是有一点点特点的,有提供1Gbps和10Gbps带宽的VPS主机,如果有需要大带宽的VPS主机可以看看。第一、商家优惠码优惠码:June40全场主机六折优惠,不过仅可以月付、季付。第二、商家VPS主机套餐1...

DiyVM(50元起)老牌商家,香港沙田CN2直连vps/不限流量/五折终身优惠

diyvm怎么样?diyvm是一家国内成立时间比较久的主机商家了,大约在6年前站长曾经用过他家的美国机房的套餐,非常稳定,适合做站,目前商家正在针对香港沙田机房的VPS进行促销,给的是五折优惠,续费同价,香港沙田机房走的是CN2直连的线路,到大陆地区的速度非常好,DiyVM商家采用小带宽不限流量的形式,带宽2Mbps起步,做站完全够用,有需要的朋友可以入手。diyvm优惠码:五折优惠码:OFF50...

ios 5 0为你推荐
google地球打不开google地球无法打开怎么办百度抢票浏览器百度浏览器怎么抢票?ps抠图技巧ps抠图多种技巧,越详细越好,急~~~~~~~彩信中心联通手机的彩信中心如何设置?云挂机趣头条后台云挂机辅助后台云挂机辅助有谁用过?想了解实际情况。blogcnblogcn的博客可以搬家到哪些网站?微信电话本怎么用微信电话本短信管理功能怎么用?网站营运网站运营都分为哪些方面qq等级表QQ等级天数表网页打不开的原因为什么我的网页打不开
免费虚拟空间 vps主机 com域名注册 美国免费虚拟主机 seovip 最好的空间 cpanel空间 gspeed 免费吧 卡巴斯基试用版 gtt 网页提速 主机返佣 测试网速命令 阿里dns hdsky 海外加速 so域名 winserver2008下载 更多