美文网首页
简历中主要知识解析

简历中主要知识解析

作者: 天蝎座沫沫 | 来源:发表于2018-03-30 16:14 被阅读25次

    instruments

    https://www.jianshu.com/p/e09f6d52f390

    Charles

    http://blog.csdn.net/wangwei1138568289/article/details/51222661

    HTTP****和****HTTPS****网****络协议

    http://blog.csdn.net/FreeTourW/article/details/52222213

    我们的网络请求加密:随机数,时间戳,token,签名,MD5加密

    ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)

    http://blog.csdn.net/baihuaxiu123/article/details/50867427

    iOS存储方式之归档

    http://blog.csdn.net/cloudox_/article/details/55001487

    iOS的消息推送机制到底是怎样的?

    https://www.zhihu.com/question/59195951

    数据存储-沙盒

    · 每个应用程序的活动范围都限定在自己的沙盒里。

    · 不能随意跨越自己的沙盒去访问别的应用程序沙盒中的内容。

    · 应用程序向外请求或接收数据都需要经过权限认证。

    简单数据存储: 沙盒,存储。NSString、NSArray、NSDictionary、NSData

    复杂对象的存储:归档就是通过将复杂对象(自定义Person类型的对象)转换为NSData类型对象,遵守NSCoding协议

    • (void)encodeWithCoder:(NSCoder *)aCoder//归档

    <pre style="background:whitesmoke">- (instancetype)initWithCoder:(NSCoder *)aDecoder//反归档</pre>

    http://blog.csdn.net/a787188834/article/details/78804937

    核心动画(三)关键帧动画、动画组、转场动画

    属性动画,不可直接使用,改变属性值,改变动画效果

    基础动画 即平移动画(2点变化)

    帧动画,根据数组路径,改变运动轨迹

    动画组,可以达到多种动画效果

    转场动画,切换视图时添加的动画

    http://blog.csdn.net/wangwei1138568289/article/details/51106492

    http://blog.csdn.net/wangwei1138568289/article/details/51162714

    http://blog.csdn.net/wangwei1138568289/article/details/51194463

    iOS 视频剪切、旋转,视频添加音频、添加水印,视频导出

    http://blog.csdn.net/wangwei1138568289/article/details/51965271

    TableView的优化

    http://blog.csdn.net/wangwei1138568289/article/details/51408216

    iOS常用的存储方式介绍

    NSUserDefaults基本的用户设置,数据量很小
    Plist文件 直观的看到文件的内容,不需要经常地修改,如保存不同主题的数据
    解归档 自定义的对象进行存储
    手动存放沙盒 沙盒中只能保存OC中的基本数据,自定义的对象不能直接存入
    CoreData

    https://www.cnblogs.com/FBiOSBlog/p/5819418.html

    ios开发中的基本设计模式(代理,观察者,MVC,单例,策略,工厂,MVVM,原型,Target-Action,通知(notification)机制)

    http://blog.csdn.net/baihuaxiu123/article/details/50867427

    代理

    当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。

    1有多个相关方法2为了避免循环引用3 cellForRowAtIndexPath用代理,block会被创建多次就会造成内存占用的情况

    block在使用上和代理的性质没有多大区别 其实就是开辟空间和指针指向

    关键是看有没有造成空间浪费和循环引用

    block 和 delegate 都可以通知外面。block 更轻型,使用更简单,能够直接访问上下文,这样类中不需要存储临时数据,使用 block 的代码通常会在同一个地方,这样读代码也连贯。delegate 更重一些,需要实现接口,它的方法分离开来,很多时候需要存储一些临时数据,另外相关的代码会被分离到各处,没有 block 好读。

    观察者模式

    一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息

    MVC模式

    数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分

    model-即数据模型,view-视图展示,controller进行UI展现和数据交互的逻辑控制

    [图片上传失败...(image-121c9-1522397563179)]

    单例模式

    确保程序运行期某个类,只有一份实例,用于进行资源共享控制

    策略模式

    定义算法族,封装起来,使他们之间可以相互替换

    实例:排序算法,NSArray的sortedArrayUsingSelector;

    工厂模式

    工厂负责制造各种产品,客户端,需要什么产品,工厂就会相应的生产出什么样的产品。

    MVVM模式

    MVVM模式是Model-View-ViewMode模式的简称。由视图(View)、视图模型(ViewModel)、模型(Model)三部分组成

    [图片上传失败...(image-a4023c-1522397563179)]

    在MVVM里,view和view controller正式联系在一起,我们把它们视为一个组件。视图view仍然不能直接引用模型model,当然controller也不能。相反,他们引用视图模型viewmodel。

    viewmodel是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。有一件事情不应归入view model,那就是任何视图本身的引用(不要在view model中使用 #import UIKit.h )

    借助了IOS响应式编程框架ReactiveCocoa作为辅助

    1. 低耦合。View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。   2. 可重用性。可以把一些视图的逻辑放在ViewModel里面,让很多View重用这段视图逻辑。   3. 独立开发。开发人员可以专注与业务逻辑和数据的开发(ViewModel)。设计人员可以专注于界面(View)的设计。   4. 可测试性。可以针对ViewModel来对界面(View)进行测试

    原型模式

    对一个基类对象进行克隆复制创建出模型一样的副本

    Target-Action模式

    目标-行为,给imageView添加点击事件

    通知(notification)机制

    在通知机制中对某个通知感兴趣的所有对象都可以成为接受者

    投送对象和接受者是一对多的关系

    removeObserver:name:Object:消息解除注册,以后不再接受通知

    iOS****并发编程对比总结****,NSThread,NSOperation,GCD - iOS

    进程

    · 正在进行中的程序被称为进程,负责程序运行的内存分配

    · 每一个进程都有自己独立的虚拟内存空间

    线程

    · 线程是进程中一个独立的执行路径(控制单元)

    · 一个进程中至少包含一条线程,即主线程

    · 可以将耗时的执行路径(如:网络请求)放在其他线程中执行

    创建线程的目的就是为了开启一条新的执行路径,运行指定的代码,与主线程中的代码实现同时运行

    并发:指两个或多个任务在同一时间间隔内发生,但是,在任意一个时刻点上,CPU只会处理一个任务

    NSThread 建立一个线程非常方便,管理多个线程难。[NSThread currentThread]当前线程

    NSOperation/NSOperationQueue 使用GCD实现的,限制最大并发数量、操作之间的依赖关系

    GCD 基于C语言的底层API,用Block定义任务

    · 队列的特点是先进先出(FIFO)的

    • GCD的函数都是以dispatch(分派、调度)开头的

    队列dispatch_queue_t

    · 串行队列,队列中的任务只会顺序执行

    · 并行队列,队列中的任务通常会并发执行

    操作

    · dispatch_async 异步操作,会并发执行,无法确定任务的执行顺序

    · dispatch_sync 同步操作,会依次顺序执行,能够决定任务的执行顺序

    注:

    • 队列不是线程?也不表示对应的CPU
    • 队列就是负责调度的!谁空闲,就把任务给谁!
    • 多线程技术的目的,就是为了在一个CPU上实现快速切换!
    • 串行同步不会新建线程,操作顺序执行,没用
    • 串行异步会新建线程,操作顺序执行,非常有用(既不影响主线程,又需要顺序执行的操作;应用:从网络上下载图片,滤镜)

    · http://blog.csdn.net/zyq522376829/article/details/52373154

    · http://blog.csdn.net/cordova/article/details/69060085

    串行队列(一个接一个,排队跑步,保持队形)

    [图片上传失败...(image-f6cd2e-1522397563178)]

    并行队列 并排跑,类似于赛跑)

    [图片上传失败...(image-5c616e-1522397563178)]

    全局队列

    [图片上传失败...(image-51d29-1522397563178)]

    // 全局队列与并行队列的区别

    // 1> 不需要创建,直接GET就能用

    // 2> 两个队列的执行效果相同

    // 3> 全局队列没有名称,调试时,无法确认准确队列

    // 记住:在开发中永远用DISPATCH_QUEUE_PRIORITY_DEFAULT

    // 多线程的优先级反转!低优先级的线程阻塞了高优先级的线程!

    主队列

    [图片上传失败...(image-cf606c-1522397563178)]

    // 每一个应用程序都只有一个主线程

    // 在iOS开发中,所有UI的更新工作,都必须在主线程上执行!

    // 异步任务,在主线程上运行,同时是保持队形的

    相关文章

      网友评论

          本文标题:简历中主要知识解析

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