美文网首页
iOS技能要点

iOS技能要点

作者: SunshineDayss | 来源:发表于2017-08-24 14:12 被阅读0次

    1、生成二维码

            创建滤镜对象(CIFilter) -> 恢复滤镜的默认属性 -> 设置数据(NSString -> Nsdata) -> 通过KVC给滤镜设置输入值 -> 获取滤镜输出图像(CIImage -> UIImage) -> 开启上下文绘图 -> 把二维码画上去 -> logo画上去 -> 获取图片 -> 关闭图形上下文

    2、扫描二维码

            获取设备支持状态 -> 初始化 -> 生成输出对象 -> 设置代理(AVCaptureMetadataOutputObjectsDelegate) -> 生成会话 -> 产生输出 -> 采集渲染 -> 启动扫描

    3、多线程

            NSOperationQueue是用GCD封装的,GCD更底层、NSOperationQueue更抽象,所以GCD在性能上比较快

            从一步操作的顺序与依赖关系上来讲,GCD实现的代码量比NSOperationQueue多

            如果需要更多的异步交互与UI呈现,NSOperationQueue更好,如果需要更高的并发能力,GCD更好。

            UI更新必须放在主线程

            GCD通过block封装,不需要管理线程的创建/销毁/复用的过程

    4、支付

            填写APPID/私钥 -> 生成订单信息及签名 -> 将订单信息拼接成字符串 -> 调用signString函数生成签名并且base64加密 -> 把签名数据给支付宝 -> 调用支付结果开始支付

            注意事项:URL Scheme 、 检查私钥

    5、https协议

            对称加密(加密与解密使用相同密钥)

    6、iOS缓存

            CoreData:取出上下文管理者(managedObjectContext) -> 保存数据 -> 查询数据    editor->Add Model Version(更新版本修改子段) 

            plist: NSHomeDirectory()

            NSUserDefaults、FMDB

            NSKeyedArchiver(归档):继承NSObject,遵循NSCoding协议 - (void)encodeWithCoder:(NSCoder *)aCoder

    7、推送/通知

            在didRegisterForRemoteNotificationsWithDeviceToken中注册推送

            iOS10.0: willPresentNotification(前台)、didReceiveNotificationResponse(后台)

            iOS7.0-10.0:didReceiveRemoteNotification

            登录成功的时候给当前用户设置别名/唯一标识符

    1、讲一下MVC、MVVM、MVP ?

        MVC:    逻辑、视图、数据分层,实现洁柔

        MVVM:  Model—View-ViewModel,将一部分逻辑和数据处理从Controller搬到ViewModel中

                  低耦合    View和Model独立变化

                  可重用性  视图逻辑放到ViewModel中,让很多View重用这段视图逻辑

                  独立开发

                  可测试性

        2、属性(几个部分、关键字)? @dynamic、@synthesize ?

        属性:        描述类的特征

        三个部分:    带下划线的成员变量、getter、setter方法

        关键字:      readwrite、assign、atomic

        @dynamic:  修饰的属性,getter、setter方法不自动生成

        @synthesize:修饰的属性,getter、setter方法会自动生成,指定与属性相对应的成员变量

        3、滑动UITableViewCell,NSTimer是否刷新 ?

        NSDefaultRunLoopMode        空闲状态

        UITrackingRunLoopMode        UIScrollView滑动时会切换到该Mode

        UIInitializationRunLoopMode  run loop启动时,切换到该mode

        4、有a、b、c、d 4个异步请求,如何判断a、b、c、d都完成,如果需要a、b、c、d顺序执行,该如何实现 ?

        是否执行完成:GCD的group

        dispathc_group_t group = dispatch_group_create()

        dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)

        dispathc_group_async(group, queue, ^{“任务”})

        顺序执行:  放到串行队列当中

        5、多线程

        GCD:

        NSThread:

        NSOperationQueue:

        6、CoreData使用、更新版本

        使用:    新建实体,添加属性

                  获取代理和托管对象

                  链接数据库

                  KVC添加数据

        options:  nil -> options: NSDictionary

    相关文章

      网友评论

          本文标题:iOS技能要点

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