FoolishTalk

谈谈技术,聊聊生活

swift使用protocol的时候出现循环引用

Swift,iOS,Protocol

在给Alamofire用protocol封装一层业务的时候,定义了以下的协议和方法 protocol BaseRequest { } extension FIDRequest { func complete(_ completionHandler: @escaping ((DataResponse<Any>) -> ())) { let url = ...

自己动手做Swift-Package-Manager

Swift,iOS,Swift Package Manager

Swift Package Manager是苹果自家的包管理工具,他和iOS开发中的Cocoapod或者Carthage类似,但是我们可以从他GitHub文档看到 Note that at this time the Package Manager has no support for iOS, watchOS, or tvOS platforms. 就是SPM是不支持 iOS, wa...

Xcode判断编译环境

CocoaPod,Xcode

有个需要区分是命令行的编译环境还是iOS的环境,这种情况下我用了__APPLE__ 、TARGET_IPHONE_SIMULATOR、TARGET_OS_IPHONE、TARGET_OS_MAC,居然都没判断进去iOS的环境?最后用了一个没怎么见过的宏 #if os(iOS) #elseif os(Linux)//这个也可以判断是在Ubuntu环境 #elseif os(macOS) #e...

Perfect-v2版本服务器升级v3

Swift,Perfect-Server

Perfect在11号的时候就发布了v3版本,v3版本开始支持swift 4,今天正好有空,把Perfect升级了一下,顺便写了个脚本方便集成环境,如果不清楚这个脚本是干嘛的,可以看下我之前的文章如何在阿里云上部署Perfect服务器 #!/bin/sh $ apt-get install make git clang libicu-dev libmysqlclient-dev libpq...

又大一岁,先聊聊编程,再聊聊生活,最后再聊回编程

生活

算起来已经23岁了,iOS开发1年5个月了。在上一间公司加班加到曾经一度认为自己已经24-25岁,开发了2年半。 现在回想起来,从2016年5月3日开始,我已经是一名iOS开发了,从那时候每天朝9晚6的工作,变成了到后来朝9晚8,晚9,晚10…偶尔晚到凌晨1点的工作,我想现在每天编程的时间应该是在10-12小时左右吧,如果把睡觉的时间去掉,平时coding的时间都要比生活的时间长,很庆幸自己...

iPhoneX和iOS-11的适配你可能会踩到的坑

iOS,UI

这几天都在看关于适配的问题,看WWDC的时候,哇这个功能好酷炫,API变得好方便,适配一定很方便,然后自己用的时候一看这些方法后面带着API_AVAILABLE(ios(11.0),tvos(11.0)) 那么iPhone X究竟给我们带来了什么,导致适配变得麻烦呢?凶手就是这个刘海! 在没有iPhoneX的时代,我们的statusBar是20pt,navigationBar是44pt...

iOS获取相册中的所有图片,以及申请权限,总结自己踩到的坑

iOS,相机,相册

之前没做过这一块的,今天也是刚接触,上网查了一下主要是两个库iOS 8之前需要使用AssetsLibrary .framework,iOS 8之后使用Photos.framework 想看详细讲解的,可以直接看iOS 开发之照片框架详解 Photos参考了这里获取系统相册的所有照片 在iOS 8以后,申请相册权限是可以得到回调的: [PHPhotoLibrary requestAuthor...

iOS11-tableView设置section头尾高度失效

CocoaPod,iOS,UI

在iOS 11之前,直接通过这两个代理,就可以修改section的高度 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { return CGFLOAT_MIN; } - (CGFloat)tableView:(UITableView *)tableV...

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之后本...