FoolishTalk

谈谈技术,聊聊生活

WWDC-2017笔记---KVC和KVO

WWDC,iOS,KVC,KVO

swift3的时候,如果想使用KVC需要把类声明是@objcMembers,和将成员变量声明为dynamic,然后就可以使用objc中的value(forKey key: String)和setValue(_ value: Any?, forKey key: String),但是只支持继承NSObject的类,换句话说,是不支持struct的 @objcMembers class Kid: ...

Cannot use mutating member on immutable value

Swift,iOS

这个报错是在我写swift的FFDB时候遇到的,因为在做swift版的时候,考虑到SQL语句层是通用的,所以打算抽象出来复用在Perfect上,选择用结构体和协议的方式去做,在使用结构体的时候,发现会报错,用类是不会报这个错的。原因是这样: 结构体中,func不可以改变self本身的成员变量,如果修改本身的成员变量,需要在func前加上mutating关键字 加上了mutating之后本...

如何在阿里云上部署Perfect服务器

Swift,Perfect-Server

下面的文章是基于Perfect v2写的,支持的是swift 3,10月11号Perfect发布了v3版本,支持swift 4,如果希望服务器支持swift 4,可以配置部分参考Perfect v2版本服务器升级v3 如何在阿里云上部署Perfect服务器 阿里云地址 登录自己阿里云的账号,进入控制台 创建实例 这篇相当于总结了...

Swift关键字-@escaping逃逸闭包

Swift,iOS

这部分在The Swift Programming Language的Closures一节有详细的说,当时看的时候没特别注意,今天在看Perfect的源码的时候看到了,重新去看了一下文档,也看了卓同学的一篇文章,写的比我的更详细。 当闭包不是函数执行完之前就得到返回结果的时候,这个就是非逃逸闭包。 反之,闭包在函数执行完后才调用,则是逃逸闭包。 举两个常用例子,SnapKit和Masonry...

更新自己的CocoaPods库

CocoaPod,iOS

以自己写的一个库为例子 Pod::Spec.new do |s| s.name = "FFDB" s.version = "1.7.0" s.summary = "easy to use FMDB" s.homepage = "https://github.com/Fidetro/FFDB" s.license ...

WWDC-2017笔记---Codable

WWDC,iOS,Codable

在swift中并不推荐使用runtime,所以json转model比较麻烦,而且也不支持struct和enum 但是现在可以通过Codable来实现,实现一个这样的结构体 public struct DataListResult:Codable{ let _id : String? let images : Array<String>? } public ...

记录点自己做CocoaPod时遇到的坑

CocoaPod,iOS

[!] The spec did not pass validation, due to 1 error. [!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` fi...

痛苦造就性格

阅读

最近读了《如何变得有思想》这本书,里面有挺多有意思的文章,其中一篇《痛苦造就性格》里面有一段很有意思,敲出来分享一下。 TechCrunch发表了一篇题目叫《创业是艰难的:多工作,少喊累,别发牢骚》,这篇文章引用了程序员杰米·嘉文斯基于1994年的日记,得出这么一个观点: 如果你在创业公司工作,觉得工作得很累、牺牲太多,那么换个地方,找一份更适合你的工作吧。 言下之意,软件业就...

CollectionViewLayout遇到的问题

CocoaPod,iOS,UI

2017-03-27 11:12:20.902274 DTSampleLight[1480:432147] The behavior of the UICollectionViewFlowLayout is not defined because: 2017-03-27 11:12:20.902372 DTSampleLight[1480:432147] the item height mu...

UISlider实现点击效果

CocoaPod,iOS,UI

找了很久网上文章都是各种复制,而且不管用,最后在stackOverFlow找到怎么解决,记录一下链接 关键是用UILongPressGestureRecognizer,实现拖动和点击 - (void)actionLongGesture:(UILongPressGestureRecognizer *)sender { if (sender.state == UIGestur...