摘要: 前言 为什么不要在init和dealloc方法中调用getter和setter:Apple在Mac与iOS中关于内存管理的开发文档中,有一节的题目为:“Don’tUse Accessor Methods in Initializer Methods and dealloc”,文中说:“Theonly 阅读全文
posted @ 2016-12-12 10:05 oneSong 阅读(1019) 评论(0) 推荐(1) 编辑
摘要: 前言 今天整理了下自己电脑里的一些碎片笔记,时间有限只整理了这篇文章——类的本质,大家可以进行参考。 1.本质 类的本质其实也是一个对象(类对象) 程序中第一次使用该类的时候被创建,在整个程序中只有一份。 此后每次使用都是这个类对象,它在程序运行时一直存在。 类对象是一种数据结构,存储类的基本信息: 阅读全文
posted @ 2016-12-12 10:04 oneSong 阅读(6392) 评论(0) 推荐(3) 编辑
摘要: 转载自 Model-View-ViewModel for iOS [译] 如果你已经开发一段时间的iOS应用,你一定听说过Model-View-Controller, 即MVC。MVC是构建iOS app的标准模式。然而,最近我已经越来越厌倦MVC的一些缺点。在本文,我将重温一下MVC是什么,详述它 阅读全文
posted @ 2016-12-10 20:28 oneSong 阅读(1996) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://www.henishuo.com/masonry-tableviewcell-layout/ 前言 说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,笔者并不喜欢,也不支持。对于后者,更是麻烦,到处计算高 阅读全文
posted @ 2016-04-10 01:02 oneSong 阅读(1140) 评论(0) 推荐(0) 编辑
摘要: 前言 上一篇《数据结构和算法之时间复杂度和空间复杂度》中介绍了时间复杂度的概念和常见的时间复杂度,并分别举例子进行了一一说明。这一篇主要介绍线性表。 线性表属于数据结构中逻辑结构中的线性结构。回忆一下,数据结构分为物理结构和逻辑结构,逻辑结构分为线性结构、几何结构、树形结构和图形结构四大结构。其中, 阅读全文
posted @ 2016-02-15 23:23 oneSong 阅读(15774) 评论(4) 推荐(7) 编辑
摘要: 前言 上一篇《数据结构和算法》中我介绍了数据结构的基本概念,也介绍了数据结构一般可以分为逻辑结构和物理结构。逻辑结构分为集合结构、线性结构、树形结构和图形结构。物理结构分为顺序存储结构和链式存储结构。并且也介绍了这些结构的特点。然后,又介绍了算法的概念和算法的5个基本特性,分别是输入、输出、有穷性、 阅读全文
posted @ 2016-02-02 22:38 oneSong 阅读(10523) 评论(2) 推荐(4) 编辑
摘要: 前言 2016年又是一个全新的开始,每到一年的这个时候,总是颇有感慨。想对过去的一年做一些总结,但又觉得经历和精力总是不够。 俗话说,一年之计在于春,当然,新的一年,也总是计划着N多事情,想做什么事情?做到什么程度?哪些一定要做好?哪些一定要完成?每一年都会列出来,到最后却发现,在这走过的一年里,有 阅读全文
posted @ 2016-01-31 02:03 oneSong 阅读(57091) 评论(10) 推荐(24) 编辑
摘要: 信号的传输总要符合一定的协议。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一抽象信号。这样一个“狼烟=敌人入侵”就是一个简单的协议。信号的传输总要符合一定的协议(protocol)。比如说长城上放狼烟,是因为人们已经预先设定好狼烟这个物理信号代表了“敌人入侵”这一... 阅读全文
posted @ 2016-01-25 23:09 oneSong 阅读(1451) 评论(0) 推荐(1) 编辑
摘要: 本文通过图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。 图1 TCP 三次握手四次挥手 图1主要包括三部分:建立连接、传输数据、断开连接。 1)建立TCP连接很简单,通过三次握手便可建立连接。 阅读全文
posted @ 2016-01-25 23:00 oneSong 阅读(5461) 评论(4) 推荐(15) 编辑
摘要: 写界面可以说是每位移动应用开发者的基本功,也是一位合格移动应用开发者绕不过去的坎。但就如不是每一位开发者都能够成为合格的开发者一样,本人在 不同的团队中发现,甚少有人能够编写出合格的UI代码;而非常奇怪的是,在很多的开发者论坛上看到我们移动开发者更多关注于某个控件或者是动画,但却很少 看到深入剖析U... 阅读全文
posted @ 2016-01-11 01:47 oneSong 阅读(2010) 评论(0) 推荐(1) 编辑
摘要: 转载自:http://www.infoq.com/cn/articles/rethinking-mvc-mvvm 原文作者:唐巧被误解的 MVCMVC 的历史MVC,全称是 Model View Controller,是模... 阅读全文
posted @ 2016-01-07 20:21 oneSong 阅读(445) 评论(1) 推荐(0) 编辑
摘要: 上一篇文章已经介绍了如何在github上创建一个代码仓库,也介绍了使用HTTPS方式验证身份,实现与github远程代码仓库的代码共享。本篇文章主要介绍github上的另一中身份验证方式-SSH。通过SSH方式验证身份SSH的操作步骤比HTTPS复杂一些,需要用到公钥和私钥。具体操作步骤如下:1.同... 阅读全文
posted @ 2016-01-06 03:26 oneSong 阅读(893) 评论(0) 推荐(0) 编辑
摘要: github托管源代码;github的HTTPS和SSH身份验证方式 阅读全文
posted @ 2016-01-06 03:22 oneSong 阅读(1717) 评论(0) 推荐(1) 编辑
摘要: git的基本原理,git的常用命令,git管理源代码 阅读全文
posted @ 2016-01-05 15:25 oneSong 阅读(3787) 评论(3) 推荐(3) 编辑
摘要: UITableView的组头视图、组尾视图悬停效果。 UITableView的组投标题,组尾标题悬停效果。 阅读全文
posted @ 2016-01-03 16:16 oneSong 阅读(10566) 评论(0) 推荐(2) 编辑
摘要: 事件的产生和传递(如何寻找最合适的view、寻找最合适的view的底层实现、拦截事件额处理)->事件的处理(touches方法的重写)->事件的响应 阅读全文
posted @ 2015-10-07 15:45 oneSong 阅读(749) 评论(1) 推荐(0) 编辑
摘要: 1.什么是RunLoop 运行循环 一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(调用run方法) RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source(Sources0、Sources1)、Timer,那么就直接退出 阅读全文
posted @ 2015-08-26 03:17 oneSong 阅读(1043) 评论(0) 推荐(1) 编辑
摘要: 什么是Podfile ? CocoaPods是用ruby实现的,因此Podfile文件的语法就是ruby的语法。podfile是一个说明文件,用以描述管理一个或者多个Xcode project的target的依赖库。这个文件应该且必须被命名为Podfile。Podfile可以非常简单,下面的例子增加 阅读全文
posted @ 2016-12-12 10:03 oneSong 阅读(6550) 评论(0) 推荐(0) 编辑
摘要: 什么是cocoapods CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。这么说可能还不是很理解,当我们开发iOS应用时,会经常使用到很多第 阅读全文
posted @ 2016-12-12 10:01 oneSong 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 如果不用__block修饰变量,在block内强行修改变量会报错: 增加__block后,可以在block内部修改num: block调用完后再修改num: block对对象类型的使用和对基本数据类型的使用一样: 不用__block修饰: 使用__block修饰: block内部修改对象: bloc 阅读全文
posted @ 2016-09-13 13:36 oneSong 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 如果是通过UIButton自定义UIBarButtonItem,那么通过如下这个方式设置title是无效的。必须要直接给button设置title。 阅读全文
posted @ 2016-09-09 12:02 oneSong 阅读(428) 评论(0) 推荐(0) 编辑
摘要: weak和nonull是相互排斥的,所以weak和null不能同时使用,如下图: 阅读全文
posted @ 2016-09-06 16:15 oneSong 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 如果父类中有delegate属性,并且子类中也具有同名的属性,那么会报一下警告⚠️。解决办法:在.m文件中添加:@dynamic delegate;具体请搜索动态绑定。如下图: // Auto property synthesis will not synthesize property 'dele 阅读全文
posted @ 2016-09-05 18:27 oneSong 阅读(3221) 评论(0) 推荐(0) 编辑
摘要: // 方式一typedef enum : NSUInteger { MyEnumValueA, MyEnumValueB, MyEnumValueC, } MyEnum; // 方式二typedef NS_ENUM(NSUInteger, MyEnum) { MyEnumValueA, MyEnumValueB, MyEnumValueC,... 阅读全文
posted @ 2016-09-05 17:22 oneSong 阅读(287) 评论(0) 推荐(0) 编辑