面试总结

关于自我介绍好好弄一弄!!!!


为什么在主线程更新UI?

  • 主要原因还是为了线程的安全,但是UIkit的线程不是安全的,假如在两个线程中设置同一张背景图片的话,这个图片当被释放的时候就会被释放两次,当前这个线程设置图片地址会把上一个线程赋值的图片地址给覆盖,因为他们设置的是同一个地址,这样就会出现野指针错误,会发生程序崩溃。虽然apple对大部分的绘图方法改成线程安全可用,但是官方还是建议我们在主线程进行UI更新,这样就会保证线程安全。 主要的目的还是为了线程安全,防止程序崩溃。围绕着线程安全说。

支付宝,微信,银联有什么区别?

  • Apple pay非常屌,可以看一看。
  • 支付宝支付需要三个东西,私钥,appKey,还有签约商户
  • 支付宝借口文档中写了3p参数列表:
    • 合作者身份ID
    • 接口名称
    • 签名
    • 服务器异步通知页面路径
  • 微信只需要appKey
    • 注册开发者账号
    • 注册应用通过审核
    • 开始计数开发
    • 签署在线协议
  • 请求之前都会向后台请求接口来获取订单号
  • 还有一点比较总要是后台的区别,后台原来和我说过,但是我现在不太记得了
  • 银联

数据库上传格式不对会出现什么问题

  • 不会出现问题,只是在我们想要获取数据的时候,查找数据比较麻烦一些。

  • 数据库相关东西好好复习一下


推送怎么推送给指定的人群?

这个网站上有说明可以看一下:链接


图片上传

  • 从相册中选取图片或者拍照
  • 处理完毕,回到个人信息页面
  • 保存图片到document
  • 保存到NSUserDefaults
  • 上传服务器
  • document获取图片设置UI
    代码链接地址:链接

使用数据库的好处?关于事物的解释?

  • SQLite3是一款轻型的数据库,设计目标是嵌入式的,占用资源非常低,在嵌入式设备中,可能只需要几百K的内存就够了,他的处理速度比MysqlPostgreSQL这两款著名的数据库还快。

  • 将网络数据存储在本地,不用每次都去网络加载,减少用户网络流量开销。在没网的情况下也能显示界面,增强用户体验。

  • 提供的字段有 integer、real、text、blob、null

  • 创建表:create 删除表:drop

  • 添加:insert 删除:delete 改:update 查:select

  • 系统本身提供的存储数据的方式,只能保存OC对象。

  • CoreData介绍

    • CoreData是苹果公司封装的数据持久化框架。说白了就是对SQLite进行的封装 CoreDataiOS 3.0中开始开放, 它允许用户按照实体-属性-值模型组织数据,数据最终的存储形式可以是:二进制、XML、SQLite数据库、内存里、活自定义数据类型
    • 优势:
    1. 它是苹果公司原生的产品
    2. 它可以节省代码量 大概是30% - 70%
    3. 它支持可视化建模型。
    4. CoreData支持数据库版本升级
    • CoreData基本使用:链接

FMDB

  • 优点: 使用起来更加面向帝乡,省去了很多麻烦、冗余的C语言代码,对比苹果自带的CoreData框架,更加轻量级和灵活,提供了多线程安全的数据库操作方法,有效的防止数据混论

  • 三大主要类:

    • FMDatabase:一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQLite语句、
    • FMResultSet:使用FMDatabase执行查询后的结果集、
    • FMDatabaseQueue:用于在多线程中执行多个查询或更新,它是线程安全的
  • 关于事物

    • 事物就是把所有的东西打包在一起,一次性处理他,如果当前操作没有执行完毕,下次执行会从头开始,把之前执行的删除,这样更安全。而非事务就是一条一条的执行,如果中线断开,则不会删除上次的不安全。

核心动画有什么缺点,和UIView动画的区别?

  • 核心动画只能添加到CALayer,UIView没有办法使用核心动画,核心动画一切都是假象,并不会改变真实的值。
  • 如果需要与用户交互就使用UIView的动画,不需要交互可以使用核心动画,在转场动画中,核心动画的类型比较多。
  • 核心动画有代理方法,动画执行完毕的时候回调用代理方法。

推送的三种模式

  • App正在运行,App在后台,App结束。

HTTP,Socket

  • Socket是进程通讯的一种方式,既调用这个网络库的一些API函数实现分布在不同主机的相关进程质检的数据交换

  • HTTP的链接很简单,是无状态的,HTTPS协议是SSL+HTTP协议构建的,可以进行加密传输、身份证的网络协议,要被比HTTP协议安全。

  • HTTPS安全性更高,但HTTP效率更高。但是如果要想安全效率就会降低,鱼和熊掌不可兼得。

  • HTTPHTTPSTCP连接时间是差不多的,为0.031和0.032,但是HTTPS的SSL过程耗时达到了0.182,差不多是TCP连接时间的6倍。


TCP和UDP

  • TCP
    • Transmission Controller Protocol是传输控制协议
    • 提供的是面向连接、可靠的字节流服务。
  • UDP
    • User Data Protocol是用户数据协议
    • 是一个简单的面向数据包的运输层协议。

三次握手:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。完成三次握手,客户端与服务器开始传送数据.


AFN的底层实现原理?

  • AFN 3.0之前用的是NSURLConnection ,AFN 3.0之后放弃 connection 的接口,使用 NSURLSesstion,
  • AFN 封装了 reachability 的类,用于检测网络连接转态
  • 还有请求的发送请求的使用如果JSON格式不对,需要修改AFNHTTPRequestsSruakizer请求方式,默认是AFNjsonRequestSerializer.
  • 我们一般使用AFN都使用GET和POST请求,然后你就看着和他扯。

怎么监听子线程结束?

  • (不太确定)可以使用调度组来监听子线程结束,会发送一条消息。

@synthesize 的语义是如果你没有手动实现 setter 方法和 getter 方法,那么编译器会自动为你加上这两个方法。
@dynamic 告诉编译器:属性的 setter 与 getter 方法由用户自己实现,不自动生成。


APP 上架流程总结

  • 通过钥匙串获取开发者证书,获取发布证书,获取PP证书
  • 首先要创建一个开发者账号
  • 登陆网站新建APP,然后去开发者账号,填写name和bundle ID,获取套装ID
  • 打包项目,设置版本信息,把debug模式改成release,Product --> Archive
  • 设置app类别和预览图片

平时怎么解决creach原因的

  • 可以说打断点来解决,还可以使用第三方bugly.

你是怎么检查你程序的性能的?

  • 使用苹果系统提供的instruments来测试程序的性能如何。

weak和assign的区别

  • weak不会引用计数器+1,如果指向对象被销毁,指针会自动清空指向nil
  • assgin指针不会执行nil 不会清空,导致程序崩溃

关于列表的优化


C语言与OC混编的时候需要注意什么

  • 需要注意内存管理,比如过画图的时候创建一个路径,当你不使用的时候你要把它释放掉。

屏幕分辨率是多少

  • iPhone5 ~ 5s 的分辨率 320 * 568 @2X
  • iPhone6 ~ 6s 的分辨率 375 * 667 @2X
  • iPhone6P ~ 6SP 的分辨率 414 * 736 @3X

你什么时候会考虑用XIB,什么时候用纯代码

  • 使用纯代码的好处是合作开发方便,重用性好,缺点开发周期长,自动布局困难
  • xib开发速度快,管理起来和纯代码差不多,缺点容易被代码所覆盖。

app使用GIT管理上传版本

  • 我们一把需要开始开发新版本的时候,会开个分支,然后在分支上面进行开发,在开发完毕的后,在合并分支,如果上个版本出现错误,直接回退版本,修复bug在合并。

socker的基本概念

  • 又称套接字

  • 网络上的两个程序通过一个双向的通信连接实现数据的交换

  • 通过socket向网络发出请求或者应答网络请求

  • 发送网络请求之前一定要建立一个通信的连接.

  • TCP在连接中进行大数据传输(数据大小不受限制)通过三次握手来建立连接

  • 是可靠的协议,安全送达

  • 必须建立连接,效率比较低

  • UDP不需要建立连接就可以发送数据(大小限制在64K之内)

  • 不需要创建连接,不安全

  • 不需要建立连接,效率快

  • Socket通信流程
  • 绑定端口、链接端口,监听有没有客户端链接 、链接端口、建立链接、 发送请求、读取请求、处理请求、回应数据、结束链接

为啥子要使用单例

  • 使用dispatch_once 创建单例是为了线程安全

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 一、深复制和浅复制的区别? 1、浅复制:只是复制了指向对象的指针,即两个指针指向同一块内存单元!而不复制指向对象的...
    iOS_Alex阅读 1,376评论 1 27
  • 1、OC中创建线程的方法是什么?如果指定在主线程中执行代码?如何延时执行代码。【难度系数★★】 1)创建线程的方法...
    木旁_G阅读 1,958评论 2 16
  • 问题归纳 1.如何在OC中调用swift的文件? 步骤:直接托swift文件 --> 建立桥接头文件 --> ta...
    chen千千万万遍阅读 3,849评论 0 16
  • 经典链接: 1.android最全知识点 2.android开源项目 3.启舰android开发 4.java面试...
    this_is_for_u阅读 448评论 1 8
  • 背景介绍 在iOS开发中,也不知道是谁先起头的,喜欢用Object-C的动态特性。一个比较普遍的应用是JSON解析...
    勇往直前888阅读 755评论 0 0