摘要: 在以前的公司中了解到XMPP可以搭建即时通讯APP。出于好奇自己在空余时间也学了一下搭建XMPP服务器,其中遇到了许多问题,经过坎坷的路程终于搭建成功【这些坎坷的经历主要是由于自己的无知造成的】 下面来介绍一下需要的工具 一、安装前工具下载 1、mysql服务器端下载 下载需要注册一个oracle账 阅读全文
posted @ 2017-03-04 02:11 ForrestWoo 阅读(912) 评论(0) 推荐(2) 编辑
摘要: 原图 效果图 完整项目代码查看我在github 我们再来看几组效果 阅读全文
posted @ 2016-10-03 16:14 ForrestWoo 阅读(2008) 评论(1) 推荐(2) 编辑
摘要: LOMO追求鲜艳色彩,随意、自由的态度,是一种经常使用的滤镜,今天介绍一下iOS 中LOMO滤镜的实现 首先它有3张输入图像 1.我们要处理的图像。即我们要应用LOMO滤镜的图像 2 3 在gpuimage中多张输入图像的滤镜需要自己写。在这里我参照本身提供的GPUImageTwoInputFilt 阅读全文
posted @ 2016-10-03 02:47 ForrestWoo 阅读(4520) 评论(3) 推荐(3) 编辑
摘要: Instagram,Snapchat,Photoshop。 所有这些应用都是用来做图像处理的。图像处理可以简单到把一张照片转换为灰度图,也可以复杂到是分析一个视频,并在人群中找到某个特定的人。尽管这些应用非常的不同,但这些例子遵从同样的流程,都是从创造到渲染。 在电脑或者手机上做图像处理有很多方式, 阅读全文
posted @ 2016-10-01 02:22 ForrestWoo 阅读(5854) 评论(0) 推荐(0) 编辑
摘要: 丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋丫蛋 阅读全文
posted @ 2016-09-30 16:12 ForrestWoo 阅读(327) 评论(0) 推荐(0) 编辑
摘要: GPUIMAGE中GPUImageStillCamera可以调用系统相机,并实现实时滤镜,但是我没有找到相机全屏的方法,望知道的说一下 GPUImageStillCamera继承自GPUImageVideoCamera类,添加了捕获照片的功能。 GPUImageVideoCamera 初始化方法: 阅读全文
posted @ 2016-09-30 15:34 ForrestWoo 阅读(5218) 评论(2) 推荐(0) 编辑
摘要: PhotoKit 是一套比 AssetsLibrary 更新更完整也更高效的ios照片处理库,对资源的处理跟 AssetsLibrary 有很大的不同。下面简单介绍下PhotoKit的几个基本概念 PHAsset:代表照片库中的特定资源,PHAsset对象来表示存储在照片应用程序中或云端的一个图片或 阅读全文
posted @ 2016-09-29 15:52 ForrestWoo 阅读(2446) 评论(0) 推荐(0) 编辑
摘要: 因为我在模仿美图秀秀的功能,在使用相册时候,UIImagePickerController本来就是一个UINavigationController的子类,所以没有办法使用push,所以做了一个自定义的非UINavigationController子类的相册。使用的api是ios8以上提供的photo 阅读全文
posted @ 2016-09-28 03:01 ForrestWoo 阅读(3796) 评论(0) 推荐(0) 编辑
摘要: The file “FWLifeApp” couldn’t be opened because you don’t have permission to view it问题是因为项目文件中的Bundle identifier和Executable file的值不一致导致的。 解决前 解决后 阅读全文
posted @ 2016-09-07 16:49 ForrestWoo 阅读(2223) 评论(0) 推荐(0) 编辑
摘要: NSString *const kWebsite = @"http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fr=&sf=1&fmq=1459502303089_R&pv=&ic 阅读全文
posted @ 2016-09-04 01:32 ForrestWoo 阅读(503) 评论(0) 推荐(0) 编辑
摘要: Swift是现在Apple主推的语言,2014年新推出的语言,比Scala等“新”语言还要年轻10岁。2015年秋已经开源。目前在linux上可用,最近已经支持Android NDK;在树莓派上有SwiftyGPIO库,可以通过GPIO控制一些硬件。 Object C is old and ugly 阅读全文
posted @ 2016-05-25 03:11 ForrestWoo 阅读(2829) 评论(0) 推荐(0) 编辑
摘要: 扩展就是向一个已有的类、结构体或枚举类型添加新功能,包含属性和方法,如果你定义了一个扩展向一个已有类型添加新功能,那么这个新功能对该类型的所有已有实例中都是可用的,即使它们是在你的这个扩展的前面定义的。 扩展语法 使用关键extension来声明一个扩展,在extension后面加类型名称 一个扩展 阅读全文
posted @ 2016-05-18 15:24 ForrestWoo 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 可选链Optional Chaining是一种可以在当前值可能为nil的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会成功;如果可选值是nil,那么调用将返回nil。多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为nil,整个调用链都会失败,即返回nil。 通过在 阅读全文
posted @ 2016-05-12 12:20 ForrestWoo 阅读(464) 评论(0) 推荐(0) 编辑
摘要: Swift使用自动引用计数(ARC)来跟踪并管理应用使用的内存。大部分情况下,这意味着在Swift语言中,内存管理"仍然工作",不需要自己去考虑内存管理的事情。当实例不再被使用时,ARC会自动释放这些类的实例所占用的内存。然而,在少数情况下,为了自动的管理内存空间,ARC需要了解关于你的代码片段之间 阅读全文
posted @ 2016-05-12 02:25 ForrestWoo 阅读(809) 评论(0) 推荐(0) 编辑
摘要: Swift团队在博客中宣布Swift 3.0语言首个开发者预览版将于5月12日释出,正式版将在4-6周之后推出。开发者预览阶段并无确定的更新周期和计划,不过Swift团队称努力将其控 制在4-6周内。按此计划,Swift 3.0将错过WWDC发布窗口,团队计划于年底随新版本Xcode升级版一起发布。 阅读全文
posted @ 2016-05-11 02:13 ForrestWoo 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 在一个类的实例内存被释放之前,析构方法被立即调用。使用deinit关键字来声明析构方法,类似于构造方法用init来声明。析构方法只适用于类类型。 析构方法原理 Swift会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift通过自动引用计数(ARC)处理实例的内存管理。不需要手动的 阅读全文
posted @ 2016-05-07 02:13 ForrestWoo 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 初始化是为了使用某个类、结构体或枚举类型的实例而进行的准备过程。这个过程包括为每个存储的属性设置一个初始值,然后执行新实例所需的任何其他设置或初始化。 初始化是通过定义构造器(Initializers)来实现的,这些构造器可以看做是用来创建特定类型实例的特殊方法。与 Objective-C 中的构造 阅读全文
posted @ 2016-05-06 12:31 ForrestWoo 阅读(544) 评论(0) 推荐(1) 编辑
摘要: 在 Swift 中,继承是区分「类」与其它类型的一个基本特征。swift不支持多重继承。类可以调用和访问超类的方法,属性和subscripts下标,并且可以重写(override)这些方法,属性和附属脚本来优化或修改它们的行为。Swift 会检查你的重写定义在超类中是否有匹配的定义,以此确保你的重写 阅读全文
posted @ 2016-05-06 01:56 ForrestWoo 阅读(1450) 评论(2) 推荐(1) 编辑
摘要: Swift在这2年的时间内,发展势头迅猛,在它开源后,更是如井喷一样,除了 iOS、mac 平台,还支持了 Linux。 而今年下半年, Swift 3.0 也会随之发布。https://github.com/apple/swift-evolution详细介绍了3.0的特性 这个版本的主要目标增强语 阅读全文
posted @ 2016-05-05 19:14 ForrestWoo 阅读(3076) 评论(0) 推荐(1) 编辑
摘要: 在Swift中结构体和枚举也能够定义方法,而在 Objective-C 中,类是唯一能定义方法的类型。 实例方法 实例方法是属于某个特定类、结构体或者枚举类型实例的方法,实例方法提供访问和修改实例属性的途径,实例方法的语法与函数完全一致。实例方法能够隐式访问它所属类型的所有的其他实例方法和属性。实例 阅读全文
posted @ 2016-04-30 03:16 ForrestWoo 阅读(813) 评论(1) 推荐(1) 编辑
摘要: 类、结构体和枚举可以定义下标,他可以快速简单地访问集合(set,array,dict)的元素,你可以使使用下标来获取和设置集合元素。 你可以定义一个类型的多个下标,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个。 语法 先看一个实例 它允许你通过在实例后面的方括号中传入一个或者多个的索引 阅读全文
posted @ 2016-04-29 20:28 ForrestWoo 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 属性关联特定类、结构或枚举的值,存储属性将存储常量和变量作为实例的一部分,计算属性用于计算一个值,而不进行存储。计算属性可以用于类、结构体和枚举里,存储属性只能用于类和结构体。存储属性和计算属性通常用于特定类型的实例,但是,属性也可以直接用于类型本身,这种属性称为类型属性。另外,还可以定义属性监视器 阅读全文
posted @ 2016-04-29 03:38 ForrestWoo 阅读(690) 评论(0) 推荐(2) 编辑
摘要: 与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。 注意:通常一个类的实例被称为对象。然而在Swift 中,类和结构体的关系要比在其他语言中更加的密切,本章中所讨论的大 阅读全文
posted @ 2016-04-27 02:43 ForrestWoo 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 枚举为一组相关的值定义一个共同的类型,并允许您在代码中的以类型安全的方式中使用这些值,在 Swift 中,枚举类型是一等(first-class)类型。它们采用了很多传统上只被类所支持的特征,例如计算型属性(computed properties),用于提供关于枚举当前值的附加信息,实例方法(ins 阅读全文
posted @ 2016-04-25 13:44 ForrestWoo 阅读(814) 评论(1) 推荐(1) 编辑
摘要: 闭包是可以在代码中被传递和使用的自包含功能模块,它很像c和oc中的block,和.net中的lambdasbas表达式。 闭包可以捕获和存储其所在上下文中任意常量和变量的引用。 包裹着这些常量和变量的包俗称闭包。Swift会为您管理在捕获过程中涉及到的内存操作。下面是闭包的3中表现形式 全局函数是一 阅读全文
posted @ 2016-04-25 02:40 ForrestWoo 阅读(1143) 评论(0) 推荐(0) 编辑
摘要: TNW中文站 4月8日报道 安卓操作系统的软件开发语言是Java,而在过去几年中,有关Java的版权,谷歌(微博)和甲骨文之间发生了长期的诉讼。最新外媒消息称,谷歌正在考虑将苹果开发的Swift作为未来安卓软件开发的“一级”语言,此外Facebook、Uber等公司也开始越来越重视Swift的使用。 阅读全文
posted @ 2016-04-24 19:57 ForrestWoo 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 函数是一组用于执行特定任务的独立的代码段,你用一个名字来标识函数,这个名字是用来“调用”函数来执行它的任务。 swift统一函数的语法具有足够的灵活性来表达任何一个简单的不带参数的名称与本地和外部的每个参数的参数名称的复杂objective-c-style C风格的函数方法。参数可以提供默认值,以简 阅读全文
posted @ 2016-04-24 18:42 ForrestWoo 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 通过使用单行代码完成同样的 10 个练习,我们来看看 Swift 和其他语言之间的较量。 将数组中每个元素的值乘以 2 使用map来实现 代码简单明了地完成了数组元素乘2 求一组数字的和 这个问题可以通过使用 reduce 方法和加号运算符解决,这是因为加号运算符实际上也是一个函数。不过这个解法是非 阅读全文
posted @ 2016-04-22 03:28 ForrestWoo 阅读(2836) 评论(0) 推荐(0) 编辑
摘要: Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句。 除了C里面传统的 for 条件递增循环,Swift 还增加了 for-in 循环,用来更简 阅读全文
posted @ 2016-04-20 02:35 ForrestWoo 阅读(430) 评论(0) 推荐(0) 编辑
摘要: 去年底苹果开源 Swift 之后,Google、Facebook和Uber三个互联网巨头就曾在伦敦召开会议讨论Swift在各自开发战略中的地位。近日业界有消息传出,谷歌有意考虑将Swift作为Android开发的第一语言,而Facebook和Uber也计划在运营中提高Swift的地位。 虽然这是一则 阅读全文
posted @ 2016-04-18 16:37 ForrestWoo 阅读(1139) 评论(3) 推荐(3) 编辑
摘要: 字典是一种存储相同类型多重数据的存储器。每个值(value)都关联独特的键(key),键作为字典中的这个值数据的标识符。和数组中的数据项不同,字典中的数据项并没有具体顺序。 字典写作Dictionary<Key, Value>。也可以写作[Key: Value] 创建空字典 类型推断写作[:] 创建 阅读全文
posted @ 2016-04-18 02:45 ForrestWoo 阅读(637) 评论(0) 推荐(0) 编辑
摘要: Sets是存储无序的相同类型的值,你可以在顺序不重要的情况下使用Sets来替代数组,或者当你需要同一个值在集合中只出现一次时。 一、Sets类型语法 写作Set<Element>,Element是sets允许存储的类型 创建并初始化一个空的set 如果可以推断出它元素的类型也可以写作 通过数组字面量 阅读全文
posted @ 2016-04-17 18:07 ForrestWoo 阅读(595) 评论(1) 推荐(0) 编辑
摘要: swift提供了3种主要的集合类型,array,set,dictionary。本节介绍array。 数组是存储有序的相同类型的集合,相同的值可以多次出现在不同的位置。 注意: swift的Array类型桥接Foundation的NSArray类 数组类型简单语法 swift数组类型完整写作Array 阅读全文
posted @ 2016-04-16 03:45 ForrestWoo 阅读(911) 评论(0) 推荐(1) 编辑
摘要: String是swift的字符串类型。一个字符串是一个有效的字符序列,因此还可以使字符集合表示。通过+符号可以连接字符串。 String 类型是一种快速、现代化的字符串实现。每一个字符串都是由独立编码的 Unicode 字符组成,并提供了用于访问这些字符在不同Unicode表示的支持。使用""来标示 阅读全文
posted @ 2016-04-15 03:25 ForrestWoo 阅读(730) 评论(0) 推荐(0) 编辑
摘要: Swift支持大部分标准C语言的运算符, 且改进许多特性来减少常规编码错误.如赋值符 = 不返回值, 以防止错把等号 == 写成赋值号 = 而导致Bug. 数值运算符( + , -, *, /, %等)会检测并不允许值溢出, 以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果 阅读全文
posted @ 2016-04-13 15:27 ForrestWoo 阅读(725) 评论(0) 推荐(0) 编辑
摘要: 元组(tuples) tuples是将多个单一的值组合为一个复合的值。它可以包含任何类型的值,而不需要都是相同类型。 一.元组的创建 1。 2. 输出结果 二.元组数据的访问 1.statusCode,statusMessage就像字典中的key一样,我们可以通过它们来访问元祖的元素。 2.还可以使 阅读全文
posted @ 2016-04-10 02:38 ForrestWoo 阅读(612) 评论(0) 推荐(0) 编辑
摘要: 在本节将介绍一些最基础的知识 swift提供自己版本的类型,下面说明几种简单的类型 它也提供了3种主要的强大的集合类型,set集合,array数组,dictionary字典 和C一样,Swift通过变量类存储并通过变量名来关联值。 Swift高级类型【OC中没有】 1.Swift还提供了oc没有的高 阅读全文
posted @ 2016-04-08 15:59 ForrestWoo 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 与其他大部分编程语言不同,Swift 并不强制要求你在每条语句的结尾处使用分号(;),当然,你也可以按照你自己的习惯添加分号。有一种情况下必须要用分号,即你打算在同一行内写多条独立的语句 let you = "Forrest" ;print(you) 阅读全文
posted @ 2016-04-08 13:20 ForrestWoo 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 学习一门新语言最经典的例子就是输出“Hello World!” 如果你使用过其他语言,那么看上去是非常的熟悉吧。但比一些c要简单的多吧 1、不需要导入一些单独的库,比如输入/输出或字符串处理功能的类库, 2、不需要在全局范围内编写的代码用于作为入口点程序,所以你不需要 main()函数, 3、不需要 阅读全文
posted @ 2016-04-08 02:45 ForrestWoo 阅读(1089) 评论(2) 推荐(2) 编辑
摘要: Swift 2.2 发布了。支持linux平台。Swift是一种使用现代的安全设计方式和软件设计模式构建的通用编程语言。该版本语言更新如下: SE-0001: Allow (most) keywords as argument labels SE-0015: Tuple comparison ope 阅读全文
posted @ 2016-04-01 16:40 ForrestWoo 阅读(640) 评论(0) 推荐(0) 编辑