IGListKit使用
创建基类控制器
所有IGListKit的视图控制器都应该继承此类,减少复用
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748class BaseListVC: UIViewController { var objects: [ListDiffable] = [ListDiffable]() lazy var collectionView: UICollectionView = { let flow = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: flow) if #available(iOS 11.0, *) { collectionView.contentInsetAdjustmentBehavior = .nev ...
Swift 模型化使用SQLite3
在iOS中,使用未经处理的SQLite库是一件很痛苦的事情,所以出现了很多封装后的库,其中在Swift语言中使用的较为广泛的库是SQLite.Swift。使用过的都知道,这个库很好,但是不支持模型化转换就很苦恼,正因为如此,本文所写的也正是对SQLite.Swift的模型化封装
使用
创建的模型实现SQLiteProtocol协议即可
1234import SQLiteManagerclass TestModel: NSObject, SQLiteProtocol {}struct TestModel: SQLiteProtocol {}
创建模型后即可快速开始数据库操作
123456789101112131415161718/// 插入模型(默认不存在会创建SQLiteManager.default.insert(testModel)/// 删除模型SQLiteManager.default.delete(testModel)/// 更新模型数据testModel.name = "Ree"testModel.create_time = Int(Date().timeInt ...
Flutter 笔记
iOS
插件swift 调用oc库
project.podspec文件添加库依赖 s.dependency 'name', 'version'
如需桥接文件
Pods/Development Pods/project/../ios/Classes/目录下创建桥接文件Flutter-Bridging-Header.h,并引用库头文件
在project-umbrella.h文件中添加#import "Flutter-Bridging-Header.h"(也可以全局搜索ProjectPlugin.h后添加在其下)⚠️Podfile必须有use_framework!属性才会生成umbrella文件
如需要添加其他资源文件,需要在project.podspec中配置
12345678search_paths = [ '${SDKROOT}/usr/include/libxml2']s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS[sdk=iphonesimulator*]' =&g ...
Swift 笔记
Xcode
Xcode自动管理证书文件模式下更新provisioning profile文件
添加设备到develop.apple.com
Xcode切到相应的target的General tab下,然后点击(!)按钮展示provisioning profile文件详情,然后拖动左上角的profile图标到终端获取provisioning profile文件名
打开~/Library/MobileDevice/Provisioning Profiles目录,然后删除相同文件名的provisioning profile文件
Xcode会自动下载最新的provisioning profile文件
Xcode 打包发布
打包证书
12打包证书最多只有三个,需要根据提示文字选择正确的证书。若证书创建后一直无法正常使用,重启后即可
若无法发布正式,可以发布TestFlight版本测试
Xcode 11打包上传时,一直卡在Authenticating with the App Store…
xcode shift+command+k 清除缓存
open ~/Library/Cach ...