摘要: 闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。闭包的形式主要有三种:1. 全局函数是一个有名字但不会捕获任何值的闭包2. 嵌套函数是一个有名字并可以捕获其封闭函数域内... 阅读全文
posted @ 2015-11-24 20:37 brave-sailor 阅读(230) 评论(0) 推荐(0)
摘要: 我们可用swift的闭包来定义变量的值。 先来一个简单的例子大家先感受感受。 定义一个字符串的变量的方法: 直接赋值var str="JobDeer"还可以用闭包的方式定义:var str:String={ return "JobDeer"}()闭包还可以这么定义,省略了等号和括号:varst... 阅读全文
posted @ 2015-11-24 20:35 brave-sailor 阅读(249) 评论(0) 推荐(0)
摘要: *闭包(Closures)*闭包是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。*在Swift中的闭包与C、OC中的blocks和其它编程语言(如Python)中的lambdas类似。*闭包可以捕获和存储上下文中定义的的任何常量和变量的引用。这就是所谓的变量和变量的自封闭,*因此命名为”... 阅读全文
posted @ 2015-11-24 20:34 brave-sailor 阅读(361) 评论(0) 推荐(0)
摘要: 在同一个工程中是可以同时使用Swift和OC的,但不可以同时出现在同一个文件中。OC调用Swift相关信息的方法在***.m文件中导入工程名-Swift.h即可。如工程名为ABC,则在需要使用Swift相关信息的.m文件中#import "ABC-Swift.h"即可。Swift调用OC相关信息的方... 阅读全文
posted @ 2015-11-24 19:50 brave-sailor 阅读(1633) 评论(0) 推荐(0)
摘要: 传值Blocks是C语言的扩充功能:带有自动变量(局部变量)的匿名函数。通过Blocks,源代码中就能使用匿名函数,即不带名称的函数。在我们 的工作中,命名占据了很大一部分,函数名,变量名,属性名,类名,框架名等都必须具备。能够编写不带名称的函数对程序员来说是具有相当吸引力的。Blocks 语法完整... 阅读全文
posted @ 2015-11-24 19:27 brave-sailor 阅读(412) 评论(0) 推荐(0)
摘要: 新换了台Macbook,又折腾了一遍Provisioning Profile证书,苹果的证书繁锁复杂,每次制作都相当麻烦,而且Provisioning Profile证书是与设备绑定的,所以更换开发环境后需要重新制作。Provisioning Profile证书这个东西是很有苹果特色的一个东西,一般... 阅读全文
posted @ 2015-11-24 16:48 brave-sailor 阅读(2620) 评论(0) 推荐(0)
摘要: 一、生命周期 当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序1、alloc 创建对象,分配空间2、init(initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、vi... 阅读全文
posted @ 2015-11-24 16:34 brave-sailor 阅读(345) 评论(0) 推荐(0)
摘要: 本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,?12345678910111213141516... 阅读全文
posted @ 2015-11-24 16:23 brave-sailor 阅读(216) 评论(0) 推荐(0)
摘要: 很多高级语言都支持匿名函数操作,在OC中的block也为大家所熟悉,然面在swift里好像是被重新作了一个定义,不叫匿名函数,或 block了,而叫闭包(closure)。下面配合代码来理解一下swift的闭包强大之处。使用系统的一个sort排序方法来演示一下闭包的使用,引 用官网的事例//闭包(即... 阅读全文
posted @ 2015-11-24 16:22 brave-sailor 阅读(515) 评论(0) 推荐(0)
摘要: 本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,- (void)viewDidLoad{ ... 阅读全文
posted @ 2015-11-24 15:48 brave-sailor 阅读(273) 评论(0) 推荐(0)
摘要: 本文翻译自苹果的文档,有删减,也有添加自己的理解部分。如果有Block语法不懂的,可以参考fuckingblocksyntax,里面对于Block为了方便对比,下面的代码我假设是写在ViewController子类中的1、第一部分定义和使用Block,?12345678910111213141516... 阅读全文
posted @ 2015-11-24 15:45 brave-sailor 阅读(369) 评论(0) 推荐(0)
摘要: 使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值:先说一下思想:首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界... 阅读全文
posted @ 2015-11-24 15:10 brave-sailor 阅读(629) 评论(0) 推荐(0)
摘要: 初学Objective-C的朋友都有一个困惑,总觉得对Objective-C的内存管理机制琢磨不透,程 序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对Objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有 所帮助,也欢迎大家一起探讨。系统自动创建新的aut... 阅读全文
posted @ 2015-11-24 14:58 brave-sailor 阅读(200) 评论(0) 推荐(0)
摘要: 初学Objective-C的朋友都有一个困惑,总觉得对Objective-C的内存管理机制琢磨不透,程 序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对Objective-C内存管理机制的研究成果和经验,写了这么一个由浅入深的教程。希望对大家有 所帮助,也欢迎大家一起探讨。@property (... 阅读全文
posted @ 2015-11-24 14:57 brave-sailor 阅读(158) 评论(0) 推荐(0)
摘要: 我们在前一章介绍了block的用法,而正确使用block必须要求正确理解block的内存管理问题。这一章,我们只陈述结果而不追寻原因,我们将在下一章深入其原因。一、block放在哪里我们针对不同情况来讨论block的存放位置:1.栈和堆以下情况中的block位于堆中:voidfoo(){__bloc... 阅读全文
posted @ 2015-11-24 14:56 brave-sailor 阅读(230) 评论(0) 推荐(0)
摘要: ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。一、概述Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C... 阅读全文
posted @ 2015-11-24 14:55 brave-sailor 阅读(262) 评论(0) 推荐(0)
摘要: block结构体相应的也有一个成员引用,这样会增加对局部变量的 _para1引用,在Block销毁的时候引用就释放掉了我们了解到了用__block修饰的变量,可以在block内部修改,__block变量其实对应一个结构体struct__Block_byref__para1_0{void*__isa;... 阅读全文
posted @ 2015-11-24 14:54 brave-sailor 阅读(256) 评论(0) 推荐(0)
摘要: ios开发block的使用指南,以及深入理解block的内存管理,也适用于osx开发。讨论范围:block的使用,内存管理,内部实现。不包含的内容:gc arc下的block内存,block在c++中的使用。AD:【活动】Web和APP兼容性实战 Win10训练营免费报名 一、概述Block是C级别... 阅读全文
posted @ 2015-11-24 14:53 brave-sailor 阅读(209) 评论(0) 推荐(0)