`
文章列表
    大家一直期盼的《从零开始学Swift》于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5 部分,包括Swift语法篇、Cocoa Touch框架编程篇、混合编程篇、进阶篇和项目实战篇,囊括了开发工具介绍、语言基础知识,直至应用在App Store上线的所有内容。此外,本书前20 章专门配有同步练习,以帮助读者掌握所学知识。本书更加适合Swift开发者。大家可以看一下。   http://item.jd.com/10153271407.html     附《从零开始学S ...
原创文章,欢迎转载。转载请注明:关东升的博客    Swift与Objective-C API映射   在混合编程过程中Swift与Objective-C调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映射规律的,这种API映射规律主要体现在构造函数和方法两个方面。    1、构造函数映射  
原创文章,欢迎转载。转载请注明:关东升的博客  在Swift语言出现之前,开发iOS或OS X应用主要使用Objective-C语言,此外还可以使用C和C++语言,但是UI部分只能使用Objective-C语言。   选择语言   Swift语言出现后,苹果公司给 ...
原创文章,欢迎转载。转载请注明:关东升的博客    应用与用户进行交互,依赖于各种各样的事件。事件响应者对象是可以响应事件并对其进行处理的对象,响应者链是由一系列链接在一起的响应者组成的。响应者链在事件处理中是非常重要的,响应者链可以把用户事件路由给正确的对象。    响应者对象与响应链   UIResponder是所有响应者对象的基类,它不仅为事件处理,而且也为常见的响应者行为定义编程接口。UIApplication、UIView(及其子类,包括UIWindow)和UIViewController(及其子类)都直接或间接地继承自UIResponder类。
原创文章,欢迎转载。转载请注明:关东升的博客  MVC(Model-View-Controller,模型-视图-控制器)模式是相当古老的设计模式之一,它最早出现在Smalltalk语言中。现在,很多计算机语言和架构都采用了MVC模式。   MVC模式概述   MVC模式是一种复合设计模式,由“观察者”(Observer)模式、“策略”(Strategy)模式和“合成”(Compo
原创文章,欢迎转载。转载请注明:关东升的博客  通知(Notification)机制是基于观察者(Observer)模式也叫发布/订阅(Publish/Subscribe)模式,是 MVC(模型-视图-控制器)模式的重要组成部分。   问题提出  天气一直是英国 ...
《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器   原创文章,欢迎转载。转载请注明:关东升的博客   实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下: button.addTarget(self, action: "onClick:", forControlEvents: UIControlEvents.TouchUpInside)   其中的action参数"onClick:" ...
原创文章,欢迎转载。转载请注明:关东升的博客   目标(Target)与动作(Action)是iOS和OS X应用开发的中事件处理机制。   问题提出 如图所示是一个ButtonLabelSample案例设计原型图,其中包含一个标签和一个按钮,当点击按钮的时候,标签文本会从初始的Label替换为HelloWorld
原创文章,欢迎转载。转载请注明:关东升的博客   什么是设计模式。设计模式是在特定场景下对特定问题的解决方案,这些解决方案是经过反复论证和测试总结出来的。实际上,除了软件设计,设计模式也被广泛应用于其他领域,比如UI设计和建筑设计等。 下面来介绍Cocoa Touch框架中的设计模式中的单例模式。   单例模式 单例模式的作用是解决“应用中只有一个实例”的一类问题。在Cocoa Touch框架中,有UIApplication、NSUserDefaults和NSNotificationCenter等单例类。另外,NSFileManager和NSBundle类虽然属于Cocoa框架的 ...
原创文章,欢迎转载。转载请注明:关东升的博客   内存托管对象 Swift中调用Core Foundation函数获得对象时候,对象分为:内存托管对象和内存非托管对象。 内存托管对象就是由编译器帮助管理内存,我们不需要调用CFRetain函数获得对象所有权,也不需要调用CFRelease函数放弃对象所有权。 获得这些内存托管对象的方法,是采用了CF_RETURNS_RETAINED或CF_RETURNS_NOT_RETAINED注释声明,示例代码: -(CGPathRef)makeToPath CF_RETURNS_RETAINED { UIBezierPath* t ...
原创文章,欢迎转载。转载请注明:关东升的博客   在Swift原生数据类型、Foundation框架数据类型和Core Foundation框架数据类型之间转换过程中,虽然是大部分是可以零开销桥接,零开销并不意味着内存什么都不用管。Swift类型内存管理是采用ARC,Foundation类型和Core Foundation类型内存管理都是采用MRC或ARC,Core Foundation类型内存管理是基于C语言风格的,它有一个对象所有权的概念。  Objective-C的MRC内存管理 Core Foundation的内存管理与
原创文章,欢迎转载。转载请注明:关东升的博客   Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API。虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS X和iOS开发过程中,有时候使用Core Foundation框架的API是非常方便的,例如在与C语言混合编码的时候。 Core Foundation框架与Foundation框架紧密相关,他们具有与相同的接口,但是不同。Core Foundation框架是基于C语言风格的,而Foundation框架是基于Objective-C语言风格的。在OS X和i ...
原创文章,欢迎转载。转载请注明:关东升的博客   代码排版包括: 空行、空格、断行和缩进等内容。代码排版内容比较多工作量很多,但是非常重要。 空行 空行将逻辑相关的代码段分隔开,以提高可读性。下列情况应该总是添加空行:    类型声明之前。    import语句前后。    两个方法或函数之间。    块注释或单行注释之前。    方法或函数内的两个逻辑段之间,用以提高可读性。    
原创文章,欢迎转载。转载请注明:关东升的博客   声明是在声明变量、常量、属性、方法或函数和自定义类型时候需要遵守的规范。 首先变量或常量时每行声明变量或常量的数量推荐一行一个,因为这样以利于写注释。示例代码如下。 推荐使用: let level = 0 var size = 10   不推荐使用: let level = 0; var size = 10   变量或常量的数据类型,如果有可能应尽可能采用类型推断,这样代码很简洁。示例代码如下。 推荐使用: let level = 0 var size = 10
原创文章,欢迎转载。转载请注明:关东升的博客   前面说到Swift注释的语法有两种:单行注释(//)和多行注释(/*...*/)。这里来介绍一下他们的使用规范。   1、文件注释 文件注释就在每一个文件开头添加注释,文件注释通常包括如下信息:版权信息、文件名、所在模块、作者信息、历史版本信息、文件内容和作用等。 下面看一个文件注释的示例: /* Copyright (C) 2015 Eorient Inc. All Rights Reserved. See LICENSE.txt for this sample’s licensing information De ...
Global site tag (gtag.js) - Google Analytics