DaiSuke

Who am I


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Commonweal 404

浅析iOS的浅复制与深复制

置顶 | Posted on 2018-06-11 | In iOS | | Visitors:

最近同事问我一个问题:原数组A,进行复制得到数组B,改变数组B的Person元素对象,不影响数组A的Person元素对象,如何操作?
第一感觉是进行深复制,同样数组里面的元素对象也要进行深复制,于是就找到相关的API:

1
- (instancetype)initWithArray:(NSArray<ObjectType> *)array copyItems:(BOOL)flag;

然后同事跟我说还有其他方法吗?要不分享一下iOS的复制吧?然后就有了这篇文章。文章如有错误欢迎指出更正,小弟虚心受教,也怕误人子弟。

Read more »

基于CocoaPods实现私有库的组件化

置顶 | Posted on 2018-05-30 | In iOS | | Visitors:

emmmmm,打开博客、社区很多都是说组件化。。。所以现在参考着各路大神的博客&思路自己也跟着实现一下。

什么是组件化?

对于什么是组件化,我的概念其实是模糊的,不敢说大话,怕误人子弟,只能按照自己的理解说说:组件化跟模块化有着本质的相似,模块化又是什么呢?举个例子,例如微信,有微信、通讯录、发现、我四个业务大模块。那么模块化就是根据业务的不同一个一个来划分模块。每个程序员单独开发一个模块,其他模块不需要他管理维护甚至开发,提供个接口就可以了,这样就简单实现模块化了。模块也有大模块和小模块之分,不仅仅表现于大模块,每一个view或者每一个功能都是模块。

组件化的思想也是一样的,组件化也是根据业务或者功能来划分的,例如:工程上的请求库,如果使用是AFN,必然要封装多几层吧,这样既解耦又容易抽取第三方库。把封装的代码与第三方库集成一起作为请求网络数据的组件。上述例子是按照功能划分的,也可以往大的方向划分,例如苹果公司:Mac是一个组件、iPhone是一个组件、iPod是一个组件等等。

Read more »

Swift-微博

置顶 | Posted on 2018-04-27 | In Swift | | Visitors:

Swift的基础知识基本学完,这次写的不是别的,是培训常模仿的微博项目,现在我也是边模仿边学习的心态。我会记录小码哥中模仿微博的从0到1的过程,希望以后看到自己写的烂文章会笑起来,哈哈。

另外文章篇幅可能很长很长,所以想看的同学可以好好收藏一下。如果觉得可以帮助到你的话,请Star我,也可以Fort一下工程关注项目的进展情况。当然过程中有什么问题的话,随时欢迎Issues

如有侵权,请联系删除。

image

Read more »

图享APP

置顶 | Posted on 2018-04-15 | In iOS | | Visitors:

最近整理文章的时候发现自己的一个旧项目,原来已经一年时间没有完善了,现在有时间顺便完善一点再写个文章描述一下吧!

图享APP是基于Unsplash外国一个网站的API完成的,Unsplash是分享图片为主要的一个网站,网站上的图片是可以任意使用的,不受侵权限制。当然为了不必要的纷争还是慎用吧。从2017/2/16开始到2017/4/19利用晚上时间完成大部分功能,目前是没有上线的,因为是使用第三方API。

首页

Read more »

阿里的BeeHive框架初探

置顶 | Posted on 2018-02-20 | In iOS | | Visitors:

好久没有写文章了,感觉自己快要生锈了,最近忙完公司的新项目。趁下一个版本还没有出来,抽空看看有什么新的框架,学习一波。
看看现在的MVC、MVP、MVVM等设计模式,无非就是为了解耦、组件化等优点。项目一大,各种跨模块跳转就变得很平常了,所以有时候想抽一个模块出来,但是一动牵扯全身,连测试一个小功能都要运行整个项目。
其实我关注阿里的BeeHive也有一段时间了,也第一时间运行了demo,发现功力不够,理解不了,可能是当时急躁吧。现在想着闲着,为什么不挑战一下呢。


我结合官方文档以及其他作者写的文章看看框架的原理,可能理解的不对或者写的不好,如果有错误欢迎更正,毕竟还是小白,一起共勉吧。
至于对框架的陈述,看官方文档就可以了,这里不再累述。


一个非常重要的提示:我写的非常啰嗦,逻辑经常跳转,只做自己学习笔记

Read more »

真的是手把手教你如何Hexo一个你自己的github网站

置顶 | Posted on 2016-06-03 | In Hexo | | Visitors:

结合本人的个人经验,自己也摸索很久了,网上的资源很多,翻阅了很多资料,但是感觉不全。原谅作者是一个菜鸟。但是呢, 你摸索久了,自然而然也会总结出经验。好了废话不多,先看看作者的个人网站。DaiSuke。现在结合自己操作流程,你们也来操作一下吧。

Read more »

一个不太完善的即时通讯流程架构图

Posted on 2018-07-17 | In iOS | | Visitors:

即时通讯作为社交软件必不可少的功能,较好的通讯体验不仅提升用户的好感度,也增加用户对APP的粘度。

即时聊通讯功能应用广泛,例如:微信、QQ、微博等社交为主的应用。但是对于大部分并不是以社交为主体的小应用来说,更关心的是如何快速搭建并实现即时通讯功能,那么使用第三方SDK能满足基本需求,也能快速达到预期效果。常见的即时通讯SDK有:环信、融云、云通信、腾讯云、阿里云等等。无论集成还是使用都很方便,甚至还提供了配套的UI来帮助开发者,所以开发者只需要根据业务以及设计稿做一些调整就能完成即时通讯功能,大大地减少开发周期以及因为能力不足无法完成等问题。

本文介绍的不是如何使用SDK,也不是如何构建通讯架构,更不是如何实现具体的通讯功能。本文介绍的是应用中基于阿里云完成的即时通讯功能的实现流程图,围绕自己制作的一个流程图+解释,所以想要看完整的实现即时通讯功能的话,下面的内容就不适合看了,当然流程图只是个参考方向,功能不完全完善,看管自己把握,不喜勿喷。

Read more »

Swift-访问控制

Posted on 2018-04-26 | In Swift | | Visitors:

访问控制可以限定其他源文件或模块中的代码对代码的访问级别

  • 可以明确地给单个类型(类、结构体、枚举)设置访问级别,也可以给这些类型的属性、函数、基本类型、下标索引等设置访问级别
  • 可以限定协议在一定的范围内使用,包括协议里的全局变量、变量和函数

访问控制基于模块与源文件之间:

  • 模块指的是以独立单元构建和发布的framework或application。在Swift中的一个模块可以使用import关键字引入另外一个模块
  • 源文件是单个源码文件,它通常属于一个模块,源文件可以包含多个类、函数和属性的定义。

Swift为代码中的实体提供了四种不同的访问级别:public、internal、fileprivate、private。

Read more »

Swift-泛型

Posted on 2018-04-24 | In Swift | | Visitors:
  • Swift提供了泛型,可以写出灵活且可重用的函数和类型
  • Swift标准库是通过了泛型代码构建出来的
  • Swift的数组和字典类型都是泛型集
Read more »

Swift-协议(protocol)

Posted on 2018-04-23 | In Swift | | Visitors:

协议定义了一个蓝图,规定了用来实现某一特定任务或者功能的方法、属性,以及其他需要的东西。类、结构体或枚举都可以遵循协议,并为协议定义的要求提供具体实现。某个类型能够满足某个协议的要求,就可以说该类遵循了协议

除了遵循协议的类型必须实现的要求外,还可以对协议进行扩展,通过扩展来实现一部分要求或实现一些附加功能,这样遵循协议的类型就能够使用这些功能

Read more »
12…4
DaiSuke

DaiSuke

just's like IT

36 posts
5 categories
22 tags
GitHub E-Mail
© 2015 — 2018 DaiSuke
本站访客数: Powered by Hexo
|
Theme — NexT.Muse v5.1.4