Swift函数举例
Swift函数举例========================这里tate, Request, RequestID, Event都是泛型,函数的返回值为闭包(ObservableSchedulerContext<State>) -> Observable<Event> ,闭包(State) -> [RequestID: Request]的返回值是一个字典
/**
State: State type of the system.
Request: Subset of state used to control the feedback loop.
For every uniquely identifiable request `effects` closure is invoked with the initial value of the request and future requests corresponding to the same identifier.
Subsequent equal values of request ...
使用Codable实现JSON转对象、对象转JSON
使用Codable实现JSON转对象、对象转JSON========================
先上代码,这里我是在Swift playground中运行,方便演示
import UIKit
import Foundation
// MARK: - Decode
struct User: Codable { // 基本类型组合默认遵守Codable协议
var name: String
var age: Int
}
let jsonStr = """
{
"name": "Ryan",
"age": 18
}
"""
let jsonData = jsonStr.data(using: .utf8)!
let decoder = JSONDecoder()
do {
let userObj = try decoder.decode(User.self, from: jsonData)
print("userObj = \(userObj)")
} catch {
print("decode error")
}
...
借助github或其他网站的服务器模拟数据
借助github或其他网站的服务器模拟数据========================
其实非常简单,假设要模拟JSON数据只要把json文件传到网站的服务器
github举例只需新建仓库或使用已有仓库或使用博客仓库等,把相应的json文件推送到远程仓库。而后就可以直接对着该json进行网络请求https://raw.githubusercontent.com/adong666666/adong666666.github.io/master/runinto/CulturalRelicsData.json
博客举例把json文件放到博客源文件的目录或子目录下,这里我放在子目录runinto下图片或其他资源也都放在博客源文件的目录或子目录下,这里我放在子目录image下部署博客
zhangsaidong@zhangsaidongs-MacBook-Pro blog % hexo g && hexo d
INFO Validating config
WARN Deprecated config detected: "external_link" with a Bool ...
HandyJSON使用
HandyJSON使用========================我觉得看这代码就知道怎么用了,这个大都配合SwiftyJSON使用。
模型示例import SwiftUI
import Foundation
import ObjectMapper
import Then
import RxSwift
import RxCocoa
import HandyJSON
struct Introduction: Identifiable, Decodable, Mappable, HandyJSON {
init() {
}
init?(map: Map) {
}
var id = UUID()
var idForDataBase: Int64 = Int64()
var image: String = String()
var title: String = String()
var text: String = String()
//这里的date原是想要展示日期,现在就用于当备注
var da ...
Moya使用
Moya使用========================我觉得看这代码就知道怎么用了,其实就是一个整理。
代码示例//
// IntroductionAPI.swift
// RunInto
//
// Created by 张赛东(手机:15674119605) on 2021/3/30.
// Copyright © 2021 adong666666. All rights reserved.
//
// swiftlint:disable identifier_name
import Foundation
import Moya
import HandyJSON
let ip = "http://47.119.162.99"
let culturalRelicsDataUrl = ip + "/runinto/culturalRelicsData"
let models3DDataUrl = ip + "/runinto/models3DData"
let introductionDataUrl = ip + "/runinto/introductionData ...
iOS开发之真机和模拟器查看本地沙盒数据摘录
iOS开发之真机和模拟器查看本地沙盒数据摘录========================
我主要是想看看真机下的数据库文件。
gitbook配置
gitbook配置========================
首先请看我配置的gitbook,这里是搬了一个RxSwift的中文教程过来。
gitbook网址:https://3440217568.gitbook.io/rxswift/使用的教程
解决“ cb.apply不是函数”错误在安装gitbook时,由于mac上的node版本较新,出现了bug,根据下面的文章,我注释了三行代码,解决了这个问题。
为gitbook配置github仓库
绑定域名我的域名之前绑定了博客,再绑定这个gitbook估计又得折腾一阵了,所以我暂时先用这个网址https://3440217568.gitbook.io/rxswift/,其实我觉得不一定非得自定义域名。
成果图
工作记录Last login: Fri Mar 26 11:38:08 on ttys002
zhangsaidong@zhangsaidongs-MacBook-Pro ~ % gitbook -V
CLI version: 2.3.2
Installing GitBook 3.2.3
SOLINK_MODULE(targ ...
iOS之制作xcframework摘录
iOS之制作xcframework摘录========================
最近RxSwift 6开始需要xcframework拖到工程中(感觉有点麻烦,直接让我们pod就能用,他不香吗),然后我就去搜了网上的教程制作xcframework,真是很麻烦,幸好结合下面两篇教程最后还是搞定了。
附网址:https://www.shareintelli.com/1087/ 附网址:https://blog.csdn.net/zr_csdn/article/details/112298965
截图看不到的命令行xcodebuild -create-xcframework -framework <第一个库的路径> -framework <第二个库的路径> -output <输出路径/库名称.xcframework>
xcodebuild -create-xcframework -framework /Users/admin/Library/Developer/Xcode/DerivedData/MyTools-ciyqnqacjemhpfbqsw ...
Perfect部署到云服务器摘录
Perfect部署到云服务器摘录========================部署过程中我先用的下面的教程附链接:https://blog.csdn.net/z123sen/article/details/80248345
遇到的第一个问题linux 下解压 tar.gz文件百度了之后,使用命令行tar -xvzf filename.tar.gz解决
遇到的第二个问题云服务器搭建Swift环境这里我发现前面的教程不够好,总是搭建不成功,于是我又找到了其他教程使用这个教程我成功搭建了Swift环境
遇到的第三个问题这段时间github访问不了,需要翻墙Perfect有许多依赖库在github上面,所以需要获取到github上的依赖库现在我想到了两个办法,一是服务器翻墙,二是在mac上翻墙,然后将依赖库下载下来,上传到没有被墙的代码托管仓库,我会选择Coding,因为之前就用过,在这之后,修改Perfect各个依赖仓库的代码,把有关github的url全部改成Coding的url,标签尽量保持一致。权衡之下,我选择了第二个办法,linux翻墙也是件麻烦事,mac上我有无数个vpn随便翻不 ...
Perfect部署到服务器工作记录
Perfect部署到服务器工作记录========================
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-65-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Welcome to Alibaba Cloud Elastic Compute Service !
Last login: Sat Mar 20 16:36:55 2021 from 47.96.60.213
root@iZwz9ir4og87e0nnfrmugkZ:~# cd ..
root@iZwz9ir4og87e0nnfrmugkZ:/# cd home
root@iZwz9ir4og87e0nnfrmugkZ:/home# ls
Code Swift swift-5.3.3 ...
git发布tag
git发布tag========================有些命令行老是要找半天,这里记录下git发布tag举例来说,要发布一个3.3.0的tag ,就用git tag 3.3.0然后推送到远程仓库用git push origin 3.3.0,注意origin不能省略删除tag用git tag -d 3.3.0查看tag用git tag
zhangsaidong@zhangsaidongs-MacBook-Pro Perfect-HTTP-tencent % git tag 3.3.0
zhangsaidong@zhangsaidongs-MacBook-Pro Perfect-HTTP-tencent % git push 3.3.0
fatal: '3.3.0' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository ex ...
Mac命令行关闭端口
Mac命令行关闭端口========================
lsof -i:端口号这里项目PefectTemplate占用了8181端口号,因此我输入的是lsof -i:8181,可以看到PerfectTemplate的进程ID为1869。
kill PID得到PID为1869后,我需要关闭端口,只需要使用kill 1869即可。
zhangsaidong@zhangsaidongs-MacBook-Pro PerfectTemplate % lsof -i:8181
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 574 zhangsaidong 38u IPv4 0xe91302581543067 0t0 TCP localhost:56525->localhost:8181 (ESTABLISHED)
Google 574 zhangsaidong 44u IPv4 0xe91302581f1b067 ...
Swift多线程摘录
Swift 多线程摘录========================
SQLite.swift使用
SQLite.swift使用========================对于这个,我只想上代码。
数据库代码示例//
// DataBase.swift
// RunInto
//
// Created by 张赛东(手机:15674119605) on 2021/3/3.
// Copyright © 2021 adong666666. All rights reserved.
//
import Foundation
import SQLite
struct DataCenterConstant {
static let dbName = "db.sqlite"
static let dbFilePath = NSHomeDirectory() + "/Documents/" + DataCenterConstant.dbName
}
class DataBase {
static let shared = DataBase()
static var dataBase: Connection? = {
do {
...
PodfileKit summarizes the common iOS (Swift) third-party frameworks on GitHub (cocoapods)
PodfileKit========================
Easy Podfile !
PodfileKit summarizes the common iOS (Swift) third-party frameworks on GitHub, and classifies the frameworks, which provides convenience for users to manage the third-party frameworks.
github:https://github.com/adong666666/PodfileKit
Set up Platform
Designated Third Party framework
Framework Classification
Subframework
Set up groups
Use
Contributing
LicenseSet up Platformplatform:ios '13.0'. The '13.0'here is the lowest iOS system version that th ...
PodfileKit将github上常见的iOS(Swift)第三方框架进行了汇总,并且将框架进行了分类,为用户管理第三方框架提供了方便
PodfileKit========================
Easy Podfile !
PodfileKit将github上常见的iOS(Swift)第三方框架进行了汇总,并且将框架进行了分类,为用户管理第三方框架提供了方便。
github网址:https://github.com/adong666666/PodfileKit
设置平台
指定第三方框架
框架分类
子框架
建立分组
使用
贡献
License设置平台platform:ios,'13.0',这里的‘13.0’是App所能支持的最低iOS系统版本,你可以替换为‘11.0’、'12.3'、‘14.0’等版本。指定第三方框架pod 'ARVideoKit'指定名为‘ARVideoKit’的框架进行下载,你可以将‘ARVideoKit’替换为‘你想要安装的框架的名称’。通过:git =>来指定相应网址,通过:branch =>来指定相应分支,通过commit:来指定某次提交的版本,通过:tag =>来指定某次被标记的提交版本,通过:inhibit_warnings => true来规避单个框架的 ...
自定義側邊欄
適用於 >= 3.8.0
側邊欄現在支持自定義了,可以添加自己喜歡的 widget。
可添加自己的 widget,也可以對現有的 widget 進行排序(博客資料和 公告這兩個固定,其它的能排序)
widget 排序只需要配置 sort_order就行。(使用了 Flex 佈局的 order 屬性,具體可查看 mozilla 文檔。簡單來講,就是配置數字來實現排序,如果不配置,則默認為 0。數字越小,排序越靠前。
aside:
...
card_recent_post:
sort_order: # Don't modify the setting unless you know how it works
card_categories:
sort_order: # Don't modify the setting unless you know how it works
card_tags:
sort_order: # Don't modify the setting unless you know how it works
card ...
當設置 top_img 為 false 時
當設置 top_img 為 false 時,不顯示頂部圖