自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (21)
  • 收藏
  • 关注

转载 《从零开始学Swift》学习笔记(Day67)——Cocoa Touch设计模式及应用之MVC模式

MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在Smalltalk语言中。现在,很多计算机语言和架构都采用了MVC模式。MVC模式概述MVC模式是一种复合设计模式,由 “观察者”(Observer)模式、“策略”(Strategy)模式和“合成”(Composite)模式等组成。MVC模式由3个部分组成,如图所示,这3个部分

2016-12-27 13:16:17 640

转载 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制

通知(Notification)机制是基于观察者(Observer)模式也叫发布/订阅(Publish/Subscribe)模式,是 MVC( 模型-视图-控制器)模式的重要组成部分。问题提出天气一直是英国人喜欢讨论的话题,而最近几年天气的变化也成为中国人非常关注的话题。我会根据天气预报决定是坐地铁还是开车上班,我的女儿也会根据天气预报决定明天穿哪件衣服。于是我在移动公司为我的手机定制

2016-12-27 11:05:44 358

转载 《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下:button.addTarget(self, action: "onClick:",                                                forControlEvents: UIControlEvents.T

2016-12-27 10:05:36 315

转载 《从零开始学Swift》学习笔记(Day 64)——Cocoa Touch设计模式及应用之目标与动作

目标(Target)与动作(Action)是iOS和OS X应用开发的中事件处理机制。问题提出如图所示是一个ButtonLabelSample案例设计原型图,其中包含一个标签和一个按钮,当点击按钮的时候,标签文本会从初始的Label替换为HelloWorld。  ButtonLabelSample案例首先要解决的问题是

2016-12-27 09:51:12 305

转载 《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象

内存托管对象Swift中调用Core Foundation函数获得对象时候,对象分为:内存托管对象和内存非托管对象。内存托管对象就是由编译器帮助管理内存,我们不需要调用CFRetain函数获得对象所有权,也不需要调用CFRelease函数放弃对象所有权。获得这些内存托管对象的方法,是采用了CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,示

2016-12-27 09:40:17 370

转载 《从零开始学Swift》学习笔记(Day 61)——Core Foundation框架之内存管理

在Swift原生数据类型、Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,虽然是大部分是可以零开销桥接,零开销并不意味着内存什么都不用管。Swift类型内存管理是采用ARC,Foundation类型和Core Foundation类型内存管理都是采用MRC或ARC,Core Foundation类型内存管理是基于C语言风格的,它有一个对象所有权的概念。

2016-12-26 14:55:55 325

转载 《从零开始学Swift》学习笔记(Day60)——Core Foundation框架

Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API。虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS X和iOS开发过程中,有时候使用Core Foundation框架的API是非常方便的,例如在与C语言混合编码的时候。Core Foundation框架与Foundation框架紧密相关,他们具有与相同的接口,

2016-12-26 14:30:05 421

转载 《从零开始学Swift》学习笔记(Day 59)——代码排版

代码排版包括: 空行、空格、断行和缩进等内容。代码排版内容比较多工作量很多,但是非常重要。空行空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是添加空行: 类型声明之前。 import语句前后。 两个方法或函数之间。 块注释或单行注释之前。 方法或函数内的两个逻辑段之间,用以提高可读性。 一个源文件的两个片段之间。空格在代码中有些位

2016-12-26 14:05:59 379

转载 《从零开始学Swift》学习笔记 (Day 58)—— Swift编码规范之变量或常量声明规范

声明是在声明变量、常量、属性、方法或函数和自定义类型时候需要遵守的规范。首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释。示例代码如下。推荐使用:let level = 0var size = 10不推荐使用:let level = 0; var size = 10变量或常量的数据类型,如果有可能应尽可能采用类型推断,这样代码很简洁。示例代码如

2016-12-23 17:23:07 345

转载 《从零开始学Swift》学习笔记(Day 57)——Swift编码规范之注释规范:文件注释、文档注释、代码注释、使用地标注释

前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/)。这里来介绍一下他们的使用规范。1、文件注释就在每一个文件开头添加注释,文件注释通常包括如下信息:版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容和作用等。下面看一个文件注释的示例:/*Copyright (C) 2015 Eorient Inc. All Rights Reserved

2016-12-23 15:13:31 325

转载 《从零开始学Swift》学习笔记(Day 56)——Swift编码规范之命名规范

程序代码中到处都是自己定义的名字,取一个有样并且符合规范的名字非常重要。命名方法很多,但是比较有名的,广泛接受命名法有: 匈牙利命名,一般只是命名变量,原则是:变量名=类型前缀+描述,如bFoo表示布尔类型变量,pFoo表示指针类型变量。匈牙利命名还是有一定争议的,在Swift编码规范中几本不采用匈牙利命名。 驼峰命名(Camel-Case),又称骆驼命名法,是指混合使用大小写字母

2016-12-23 15:09:59 301

转载 《从零开始学Swift》学习笔记(Day 55)——使用try?和try!区别

在使用try进行错误处理的时候,经常会看到try后面跟有问号(?)或感叹号(!),他们有什么区别呢?1.使用try? try?会将错误转换为可选值,当调用try?+函数或方法语句时候,如果函数或方法抛出错误,程序不会发崩溃,而返回一个nil,如果没有抛出错误则返回可选值。示例代码如下://查询所有数据方法func findAll() throws -> [Note] {

2016-12-23 14:35:00 310

转载 《从零开始学Swift》学习笔记(Day54)——抛出错误

能放到try后面调用函数或方法都是有要求的,他们是有可能抛出错误,在这些函数或方法声明的参数后面要加上throws关键字,表示这个函数或方法可以抛出错误。声明抛出错误方法示例代码如下://删除Note记录方法func remove(model: Note) throws {        ...}//查询所有记录数据方法func findAll() throws ->

2016-12-23 11:53:31 318

转载 《从零开始学Swift》学习笔记(Day 53)——do-try-catch错误处理模式

Swift 1.x的错误处理模式存在很多弊端,例如:为了在编程时候省事,给error参数传递一个nil,或者方法调用完成后不去判断error是否为nil,不进行错误处理。let contents = NSString(contentsOfFile: filePath,                                encoding: NSUTF8StringEncod

2016-12-21 14:15:38 460

转载 《从零开始学Swift》学习笔记(Day 52)——Cocoa错误处理模式

Swift错误处理模式,在Swift 1.x和Swift 2.0是不同的两种模式。Swift 1.x代码错误处理模式采用Cocoa框架错误处理模式,到现在Objective-C还沿用这种处理模式,而Swift 2.0之后采用了do-try-catch错误处理模式。下面的示例代码是从文件中读取字符串到内存中,如果使用Swift 1.x错误处理模式代码如下:import Foundat

2016-12-21 13:09:57 323

转载 《从零开始学Swift》学习笔记(Day 51)——扩展构造函数

扩展类型的时候,也可以添加新的构造函数。值类型与引用类型扩展有所区别。值类型包括了除类以外的其他类型,主要是枚举类型和结构体类型。值类型扩展构造函数扩展结构体类型中定义构造函数的示例:struct Rectangle {        var width : Double    var height : Double        init(width : Do

2016-12-21 11:31:42 424

转载 《从零开始学Swift》学习笔记(Day 50)——扩展计算属性、方法

可以在原始类型上扩展计算属性,包括实例计算属性和静态计算属性。添加计算属性的定义,与普通的计算属性的定义是一样的。实例计算属性示例:在网络编程时,为了减少流量,从服务器端返回的不是信息描述,而是编码,然后在本地再将编码转换为描述信息。为此定义了如下Int类型扩展:extension Int { //定义Int类型的扩展    var errorMessage : String { //

2016-12-21 10:09:29 344

转载 《从零开始学Swift》学习笔记(Day 49)——扩展声明

extension 类型名 {    //添加新功能}声明扩展的关键字是extension,“类型名”是Swift中已有的类型,包括类、结构体和枚举,但是我们仍然可以扩展整型、浮点型、布尔型、字符串等基本数据类型,这是因为这些类型本质上也是结构体类型。打开Int的定义如下:struct Int : SignedInteger {    init()    init(_

2016-12-21 09:46:51 275

转载 《从零开始学Swift》学习笔记(Day48)——类型检查与转换

继承会发生在子类和父类之间,是一系列类的继承关系。例如:Person是类层次结构中的根类,Student是Person的直接子类,Worker是Person的直接子类。这个继承关系类的具体实现代码如下:class Person {    var name: String    var age: Int        func description() -> Strin

2016-12-20 15:32:06 362

转载 《从零开始学Swift》学习笔记(Day 47)——final关键字

在类的定义中使用final关键字声明类、属性、方法和下标。final声明的类不能被继承,final声明的属性、方法和下标不能被重写。下面看一个示例: final class Person { //声明为final,说明它是不能被继承的        var name: String        final var age: Int //定义的age属性    

2016-12-20 15:20:52 373

转载 《从零开始学Swift》学习笔记(Day 46)——下标重写

下标是一种特殊属性。子类属性重写是重写属性的getter和setter访问器,对下标的重写也是重写下标的getter和setter访问器。下面看一个示例:class DoubleDimensionalArray {    let rows: Int, columns: Int    var grid: [Int]    init(rows: Int, columns:

2016-12-20 14:53:48 281

转载 《从零开始学Swift》学习笔记(Day 45)——重写方法

重写实例方法在子类中重写从父类继承来的实例方法和静态方法。先介绍实例方法的重写。下面看一个示例:class Person {    var name: String    var age: Int    func description() -> String { //实例方法        return "\(name) 年龄是: \(age)"    }

2016-12-20 13:35:57 459

转载 《从零开始学Swift》学习笔记(Day 44)——重写属性

重写实例属性我们可以在子类中重写从父类继承来的属性,属性有实例属性和静态属性之分,他们在具体实现也是不同的。实例属性的重写一方面可以重写getter和setter访问器,另一方面可以重写属性观察者。计算静态属性需要使用getter和setter访问器,而存储属性不需要。子类在继承父类后,也可以通过getter和setter访问器重写父类的存储属性和计算属性。下面看一个示例:cl

2016-12-19 14:16:33 280

转载 《从零开始学Swift》学习笔记(Day43)——构造函数继承

Swift中的子类构造函数的来源有两种:自己编写和从父类继承。并不是父类的所有的构造函数都能继承下来,能够从父类继承下来的构造函数是有条件的,如下所示。 条件1:如果子类没有定义任何指定构造函数,它将自动继承所有父类的指定构造函数。 条件2:如果子类提供了所有父类指定构造函数的实现,无论是通过条件1继承过来的,还是通过自己编写实现的,它都将自动继承所有父类的便利构造函数。下面看

2016-12-19 11:34:11 330

转载 《从零开始学Swift》学习笔记(Day 42)——构造函数调用规则

在构造函数中可以使用构造函数代理帮助完成部分构造工作。类构造函数代理分为横向代理和向上代理,横向代理只能在发生在同一类内部,这种构造函数称为便利构造函数。向上代理发生在继承的情况下,在子类构造过程中,要先调用父类构造函数初始化父类的存储属性,这种构造函数称为指定构造函数。构造函数调用规则Person和Student类示例:class Person {    var name:

2016-12-19 10:30:52 421

转载 iOS开发之widget实现

前言    iOS extension的出现,方便了用户查看应用的服务,比如用户可以在Today的widgets中查看应用的简略信息,然后点击进入相关的应用界面。暂且不表网络上现有的widget文章,本篇文章主要说明本人具体实现widget的步骤,希望能够帮助到需要实现widget的同行朋友。图1 Today的widget展示----以支付宝为例说明文章将依次从

2016-12-02 13:23:19 4011

iOS原生代码生成二维码

大神写的用原生代码生成二维码。 喜欢研究的朋友下载。 不用原生代码生成的demo我之前有发过那个还有条形码的生成 都可以使用

2016-07-18

iOS.OC各种加密方法

iOS-OC 各种实用的加密方式 包括: DES。AES。MD5。SHA1。RC4。。。等 其中还包括2进制转16进制代码 还包括数组,字典,DATA与JSON字符串格式相互转换

2016-07-18

网络请求省市区选择器

之前写过一个用本地plist文件获取省市区的pickerView 说过会再之后不忙的时间给大家传一个用网络获取的demo 之前就写好了一直比较忙忘记传了。 现在发出来供大写学习分享批评指教 谢谢 不懂的Q交流:305814832 (由于不便,接口部分用注释代替了。换成自己的接口即可) 有一起在奋斗路上的ios开发者也可以加我一起学习一起进步

2016-04-12

ios卡片堆叠效果。仿ApplePay

ios卡片堆叠效果。仿ApplePay 代码简单易懂, 适合新手学习,交流,使用

2016-03-04

iOS饼状图环形图

iOS饼状图,环形图 点击变粗, 任意修改颜色大小。半径,宽度

2016-02-03

iOS系统自带各平台分享功能

iOS系统自带平台分享功能, 快捷方便简单。 只需用设备登录相应的平台即可分享 包括facebook,新浪微博,腾讯微博等

2016-02-01

iOS自定义AlertView

iOS自定义AleatView 可以随意选择子视图的内容。 点击按钮的个数 和点击按钮的样式 希望童鞋喜欢, 大家一起学习分享研究 Q"305814832 email:ioszhaoyi@163.com

2016-02-01

iOS贝塞尔曲线制作动画进度条,一次二次曲线

应用贝塞尔曲线与NSTimer结合使用 制作动态进度条。 简单实用,易懂,易学习 贝塞尔一次二次曲线的简单绘制,应用。 供各位童鞋学习使用分享 Q:305814832 email:ioszhaoyi@163.com

2016-02-01

iOS折线图标进度条制作

可以自定义x,y周坐标 可以自定义网格颜色。 可以自定义折线数量,点数,宽度,颜色等等。 调用简单。使用方便。容易适配。 欢迎各位童鞋学习使用分享 QQ;305814832 email:ioszhaoyi@163.com

2016-02-01

iOS图表,曲线图,条形图,饼状图

iOS图表,曲线图,条形图,饼状图 可以随意修改颜色,内容个数等。 调用方法简单易懂

2016-02-01

iOS瀑布流及各种UICollectionView样式

重写UICollctionViewFlowLayout实现瀑布流 实现左边大右边小的样式 或者左边1个右边2个item的样式等等 很好用欢迎各位童鞋下载学习使用分享 email:ioszhaoyi@163.com

2016-01-27

两个UITableView关联

两个或多个UItableView的关联使用 欢迎新手下载学习使用 良心不坑分

2016-01-27

自定义选择器弹出背景变暗

简单的弹出视图 基于UIWindow上面创建子视图 对UIPickerView 和 自定义AlertView有兴趣的童鞋可以下载学习分享使用 Q:305814832 Email: ioszhaoyi@163.com

2016-01-27

自定义UIAlertController+省市区

UIAlertController与UIPicker的完美结合 在iOS8.0之前 我们可以使用UIAlertView 和 UIActionSheet 但是在9.0之后 官网默认用UIAlertController取代了这两个 在弹框上面选择省市区 按钮一是ActionSheet模式 按钮二是AlertView模式 欢迎各位童鞋学习使用 QQ305814832 email : ioszhaoyi@163.com

2016-01-27

iOS省市区选择器UIPickerView

简单的省市区选择器 使用UIpickerView完成 欢迎各位童鞋学习使用 本代码是使用的本地plist的省市区文件完成的。 如果遇到需要省市区全在网络获取 而不会写的可以联系我 (因为我在项目中省市区就是网络获取的,京东的也是) QQ305814832

2016-01-27

iOS判断网络状态

2种iOS判断网络状态的方法。 一种用系统自带statusBar状态判断 一种基于AFNetWorking来对网络状态做出的判断 欢迎大家下载学习分享使用

2016-01-26

UILabel改变任意位置字体大小颜色

UILabel改变任意位置字体大小颜色 对UILabel类的扩展。 可以改变label中任意位置字体大小颜色。 好用实惠。 供新手使用学习分享

2016-01-26

iOS自带回收键盘的UITextField

对UITextField的类的扩展。 很好用的键盘扩展及键盘回收的使用 只要调用一句话方法 键盘随心所以

2016-01-26

iOS的MD5加密

iOS的MD5加密方法封装, 简单易懂易调用 供学习分享使用

2016-01-26

iOS数组和字典转JSON格式

iOS数组和字典转JSON格式的方法封装 简单易懂 供新手学习使用

2016-01-26

iOS上传任意张图片方法封装

iOS上传任意张图片方法封装 直接调用 简单易懂 供新手学习使用

2016-01-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除