随笔分类 - IOS开发
摘要:Swift 中的委托/代理模式(以下简称"代理模式")与object-c的代理模式基本一致。代理模式的基本思想就是将我(类或者结构体等)需要来完成的工作交给(委托给)另一个有我所规定的做这项工作能力的人(符合要求类型的对象等)来处理。代理模式的实现需借助于我们上一篇文章所讲的协议。我们定义一个协议来...
        阅读全文
            
摘要:Swift中的协议 在object-c也称之为协议,但是在其他语言中可能被称之为接口Interface(比如说java中)还有可能被称之为纯虚函数。实际上都是一个意思。协议主要用来规定统一的方法和属性名称,但是不实现任何功能。只有实现了协议的类才需要实现他的功能。协议说通俗一点可以这样理解。比如US...
        阅读全文
            
摘要:起因某日使用DKChainableAnimationKit的时候发现可以如下写代码:view.animation.rotate(180).anchorTopLeft.thenAfter(1.0).rotate(90).anchorCenter.animanimation无独有偶。Masonry其实也...
        阅读全文
            
摘要:@看到这个关键字,我们就应该想到,这是Object-C对C语言的扩展,例如@interfaceXXX。@interface声明类@implementation实现类@protocol声明协议@optional与@protocol配合使用,说明协议中的某个或者某几个方法可以不实现@required与@...
        阅读全文
            
摘要:在接触到开源项目 Masonry 后,里面的布局约束的链式写法让我颇感兴趣,就像下面这样:12345678UIEdgeInsetspadding=UIEdgeInsetsMake(10,10,10,10);[view1mas_makeConstraints:^(MASConstraintMaker*...
        阅读全文
            
摘要:iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的区别及用途init-初始化程序viewDidLoad-加载视图viewWillAppear-UIViewCon...
        阅读全文
            
摘要:在介绍静态属性之前,我们先来看一个类的设计,有一个Account(银行账户)类,假设 它有3个属性:amount(账户金额)、interestRate(利率)和owner(账户名)。在这3个属性中,amount和owner会因人而 异,不同的账户这些内容是不同的,而所有账户的interestRate...
        阅读全文
            
摘要:与静态属性类似,Swift中还定义了静态方法,也称为类型方法,所谓“类型”是指枚举、结构体和类。静态方法定义的方法也是与静态属性类似的,枚举和结构体的静态方法使用的关键字是static,类的静态方法使用的关键字是class。一、结构体中静态方法下面我们先看一个结构体静态方法的示例,代码如下:[htm...
        阅读全文
            
摘要:在ios4之后,引入了代码块的特性,在gcd中会经常的用到,所以决定好好的看看代码块文档,把这块总结一下。从头开始讲解代码块。1.声明和使用代码块一般用^操作符声明一个块变量,并作为块的开始符。而块的本身用{}包括起来,就像下面那样。int multiplier = 7;int (^myBlock)...
        阅读全文
            
摘要:在两个不同的控制器之间传递数据,可以使用代理传值或者block传值。例子是一个简单通讯录。主界面如下:添加联系人界面查看/编辑联系人界面:默认是查看模式,点击编辑后进入编辑模式编辑模式数据更新成功。其中添加联系人界面的数据传递使用代理方式实现。编辑联系人界面的数据传递使用block实现。下面来看具体...
        阅读全文
            
摘要:版权声明:原创作品,谢绝转载!否则将追究法律责任。一个Objective-c类定义了一个对象结合数据相关的行为。有时候,这使得他有意义的表达单个任务或者单元的行为。而不是集合的方法。blocks是语言的特性,我们可以在C C++ 和Objective-c看到,这允许你创建不同的代码片段,这代码片段可...
        阅读全文
            
摘要:1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构:栈区(stack):由系统自动分配,一般存放函数参数值、局部变量的值等。由编译器自动创建与释放...
        阅读全文
            
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。...
        阅读全文
            
摘要:BlockApple 在C, Objective-C,C++加上Block这个延申用法。目前只有Mac 10.6 和iOS 4有支持。Block是由一堆可执行的程序组成,也可以称做没有名字的Function(Anonymous function)。如果是Mac 10.6 或 iOS 4.0 之前的平...
        阅读全文
            
摘要:iOS开发中,如果不进行适当的封装,使用协议或者继承类来进行开发,你就会遇到传说中的ViewController(以后简称VC) Hell的问题……比如说,我们先声网App中为了调用接口,做简单的判断,会有如下的垃圾代码(前辈遗留下来的):override func viewDidLoad() { ...
        阅读全文
            
摘要:#import /* OC不同于Java C++ 它没有字符串对象 只有NS对象 NS就是乔布斯第一个公司NeXt的类集合 被收购之后才有了CG类集合 统一合并到Foundation框架 以及后来的Cocoa框架 QuartZ Cocoas-2d 3d框架... 一般来说 ObjC中的类不是NS就...
        阅读全文
            
摘要:一、第一个界面// Created by 秦志伟 on 14-6-13.import UIKitclass ZWRootViewController: UIViewController { init(nibName nibNameOrNil: String?, bundle nibBundleO...
        阅读全文
            
摘要:开发中央步骤: 1.添加CoreBluetooth.framework框架到你的工程 2.继承两个协议:CBCentralManagerDelegate和CBPeripheralDelegate 个人写的demo,有详细注释。看不懂的在提出来,这里就不做过多的解释了。 1 // 2 /...
        阅读全文
            
摘要:Demo地址:WEBlueToothManager在写这个博客之前,空余时间抽看了近一个月的文档和Demo,系统给的解释很详细,接口也比较实用,唯独有一点,对于设备 的唯一标示,网上众说纷纭,在这里我目前也还没有自己的见解,只是在不断的测试各种情况,亲测同一设备的UUID对于每台iPhone设备都不...
        阅读全文
            
摘要:一、@dynamic与@synthesize的区别@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@syntheszie var = _var; @synthesize的语义是如果你没有手动实...
        阅读全文
            
 
                    
                
 
 浙公网安备 33010602011771号
浙公网安备 33010602011771号