Toggle navigation
Trojan Blog
Home
About
Tags
Is Me
Tags
keep hungry keep foolish
iOS
iOS开发基础
开发技巧
Debug
Demo
RunLoop
Obj-C
Xcode
定时器
Category
ObjC
ReactiveCocoa
函数式编程
开源框架
轮子
Runtime
Mac
效率
终端
Git
Github
macOS
Swift
设计模式
CocoaPods
zsh
Objective-C
AsyncDisplayKit
开源库
Cocopods
ruby
shell
RVM
Swift语法
IBInspectable
Notes
GCD
Blog
Docker
Python3
C#
Dapper
Docket
SqlServer
Linq
C++
算法
Dotnet Core
iOS
5分钟带你看完 WWDC 2018
WWDC 2018 Keynote 全记录
Xcode命令行工具管理
如何切换Xcode命令行工具
从一道网易面试题浅谈 Tagged Pointer
浅谈 Tagged Pointer
GCD 在 Swift 中的用法
Swift 4 新特性
很高兴 Swift 4 不再是一门新语言了😅
iTunes Connect 构建版本不显示
App打包上传到 App Store, iTunes Connect 构建版本不显示
在 Swift 中使用 IBInspectable
IBInspectable 在 Swift 中的实际应用
R.swift 的使用
在项目中引入 R.swift,更安全的获取资源
Swift 的懒加载和计算型属性
比较水的个人笔记
RVM 使用指南
RVM 常用的命令整理
iOS自动打包
利用 xcdeobulid 打包项目、上传
CocoaPods 安装和使用
安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1
强化 swift 中的 print
强化 swift 中的 print 输出函数
Swift 3.1 的新变化「译」
What’s New in Swift 3.1?
AsyncDisplayKit 2.0 教程:入门「译」
AsyncDisplayKit Tutorial:Getting Started
CocoaPods私有仓库的创建
继续带你创建 CocoaPods 私有有仓库
CocoaPods公有仓库的创建
手把手教你创建 CocoaPods 公有仓库
Swift 代理模式
Swift中如何使用代理模式
Xcode 控制台输出中文
在 Xcode 控制台输出中文的方法
Objective-C Runtime 基本使用
Runtime 使用案例
Objective-C Runtime 详解
Runtime 详解
BYPhoneNumTF
一个电话号码格式的文本框
ReactiveCocoa 进阶
函数式编程框架 ReactiveCocoa 进阶
ReactiveCocoa 基础
函数式编程框架 ReactiveCocoa 基础入门
Objective-C:Category
深入解析 Category 的实现原理
定时器 你真的会使用吗?
iOS定时器详解
忽略 Xcode 8 中的注释警告
Bulid Settings -> Documentation Comments -> NO
快速添加圆角和描边
iOS 为图片添加圆角和描边的几种方式
Objective-C:RunLoop
深入理解RunLoop
iOS噪音计
一个iOS噪音计模型、以及测量原理及分贝计算
JSON转模型 For YYModel
使用 YYModel库 快速完成 JSON 转模型
Xcode Debug 大全
iOS开发中利用 Xcode 各种调试Bug方法
iOS手势与变形
手势与变形基础知识笔记
iOS开发基础
iOS手势与变形
手势与变形基础知识笔记
开发技巧
利用 Debug Memory Graph 检测内测泄漏
利用 Xcode 内存表(Debug Memory Graph)检测内测泄漏
Xcode9 无线调试功能
zsh的快速配置
文件目录树状(tree)显示
Mac终端显示输树状文件结构
Mac 快速调出终端
在Mac下为终端设置快捷键
快速添加圆角和描边
iOS 为图片添加圆角和描边的几种方式
JSON转模型 For YYModel
使用 YYModel库 快速完成 JSON 转模型
Xcode Debug 大全
iOS开发中利用 Xcode 各种调试Bug方法
Debug
强化 swift 中的 print
强化 swift 中的 print 输出函数
Xcode Debug 大全
iOS开发中利用 Xcode 各种调试Bug方法
Demo
iOS噪音计
一个iOS噪音计模型、以及测量原理及分贝计算
RunLoop
Objective-C:RunLoop
深入理解RunLoop
Obj-C
Objective-C Runtime 基本使用
Runtime 使用案例
Objective-C Runtime 详解
Runtime 详解
Objective-C:RunLoop
深入理解RunLoop
Xcode
Xcode命令行工具管理
如何切换Xcode命令行工具
利用 Debug Memory Graph 检测内测泄漏
利用 Xcode 内存表(Debug Memory Graph)检测内测泄漏
iTunes Connect 构建版本不显示
App打包上传到 App Store, iTunes Connect 构建版本不显示
Xcode9 无线调试功能
zsh的快速配置
iOS自动打包
利用 xcdeobulid 打包项目、上传
CocoaPods 安装和使用
安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1
强化 swift 中的 print
强化 swift 中的 print 输出函数
Swift 3.1 的新变化「译」
What’s New in Swift 3.1?
Xcode 控制台输出中文
在 Xcode 控制台输出中文的方法
忽略 Xcode 8 中的注释警告
Bulid Settings -> Documentation Comments -> NO
定时器
定时器 你真的会使用吗?
iOS定时器详解
Category
Objective-C:Category
深入解析 Category 的实现原理
ObjC
Objective-C:Category
深入解析 Category 的实现原理
ReactiveCocoa
ReactiveCocoa 进阶
函数式编程框架 ReactiveCocoa 进阶
ReactiveCocoa 基础
函数式编程框架 ReactiveCocoa 基础入门
函数式编程
ReactiveCocoa 进阶
函数式编程框架 ReactiveCocoa 进阶
ReactiveCocoa 基础
函数式编程框架 ReactiveCocoa 基础入门
开源框架
ReactiveCocoa 进阶
函数式编程框架 ReactiveCocoa 进阶
ReactiveCocoa 基础
函数式编程框架 ReactiveCocoa 基础入门
轮子
BYPhoneNumTF
一个电话号码格式的文本框
Runtime
Objective-C Runtime 基本使用
Runtime 使用案例
Objective-C Runtime 详解
Runtime 详解
Mac
Mac终端(zsh)下用代码编辑器打开文件或目录
更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录
文件目录树状(tree)显示
Mac终端显示输树状文件结构
使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 文件在Git中的使用
Mac 文件的隐藏与显示
使用终端 显示/隐藏 文件
Git 代码回滚
回滚代码的正确姿势
Mac 文本转音频
在Mac终端上将文本文件转换为音频文件
Git指令整理
不适合阅读的整理的一些个人常用的 Git 指令
Mac 快速调出终端
在Mac下为终端设置快捷键
效率
Mac终端(zsh)下用代码编辑器打开文件或目录
更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录
文件目录树状(tree)显示
Mac终端显示输树状文件结构
Mac 快速调出终端
在Mac下为终端设置快捷键
终端
快速配置zsh
zsh的快速配置
Mac终端(zsh)下用代码编辑器打开文件或目录
更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录
使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 文件在Git中的使用
Mac 文件的隐藏与显示
使用终端 显示/隐藏 文件
Git 代码回滚
回滚代码的正确姿势
Mac 文本转音频
在Mac终端上将文本文件转换为音频文件
Git指令整理
不适合阅读的整理的一些个人常用的 Git 指令
Git
CocoaPods私有仓库的创建
继续带你创建 CocoaPods 私有有仓库
CocoaPods公有仓库的创建
手把手教你创建 CocoaPods 公有仓库
使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 文件在Git中的使用
Git 代码回滚
回滚代码的正确姿势
Git指令整理
不适合阅读的整理的一些个人常用的 Git 指令
Github
使用 .gitignore 忽略 Git 仓库中的文件
.gitignore 文件在Git中的使用
macOS
Xcode 控制台输出中文
在 Xcode 控制台输出中文的方法
Swift
GCD 在 Swift 中的用法
Swift 4 新特性
很高兴 Swift 4 不再是一门新语言了😅
Swift的HMAC和SHA1加密
swift中利用HMAC的SHA1对文本进行加密
在 Swift 中使用 IBInspectable
IBInspectable 在 Swift 中的实际应用
R.swift 的使用
在项目中引入 R.swift,更安全的获取资源
Swift 的懒加载和计算型属性
比较水的个人笔记
强化 swift 中的 print
强化 swift 中的 print 输出函数
Swift 3.1 的新变化「译」
What’s New in Swift 3.1?
Swift 代理模式
Swift中如何使用代理模式
设计模式
Swift 代理模式
Swift中如何使用代理模式
CocoaPods
CocoaPods私有仓库的创建
继续带你创建 CocoaPods 私有有仓库
CocoaPods公有仓库的创建
手把手教你创建 CocoaPods 公有仓库
zsh
快速配置zsh
zsh的快速配置
Mac终端(zsh)下用代码编辑器打开文件或目录
更改 zsh 配置文件,在终端使用sublime、vscode、atom快速打开文件或目录
Objective-C
AsyncDisplayKit 2.0 教程:入门「译」
AsyncDisplayKit Tutorial:Getting Started
AsyncDisplayKit
AsyncDisplayKit 2.0 教程:入门「译」
AsyncDisplayKit Tutorial:Getting Started
开源库
R.swift 的使用
在项目中引入 R.swift,更安全的获取资源
AsyncDisplayKit 2.0 教程:入门「译」
AsyncDisplayKit Tutorial:Getting Started
Cocopods
CocoaPods 安装和使用
安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1
ruby
RVM 使用指南
RVM 常用的命令整理
iOS自动打包
利用 xcdeobulid 打包项目、上传
CocoaPods 安装和使用
安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1
shell
RVM 使用指南
RVM 常用的命令整理
iOS自动打包
利用 xcdeobulid 打包项目、上传
RVM
RVM 使用指南
RVM 常用的命令整理
Swift语法
Swift 的懒加载和计算型属性
比较水的个人笔记
IBInspectable
在 Swift 中使用 IBInspectable
IBInspectable 在 Swift 中的实际应用
Notes
快速配置zsh
zsh的快速配置
GCD
GCD 在 Swift 中的用法
Blog
为博客添加 Gitalk 评论插件
BY Blog 添加 Gitalk 的评论插件了
Docker
docker 部署Usdt钱包
虚拟币钱包部署
Python3
Python3-rtmp推流,Cv2人脸检测
Python3-rtmp推流,Cv2人脸检测
C#
K数之和
在一个数中将所有相加等于一个特定的数的情况列举出来。(可以用来凑单🤣)
尽早执行与延迟执行的区别
声明式的代码 (declarative code)的重点在于把执行的结果定义出来,而命令式代码(imperative code)则重在详细描述实现该结果所需的步骤。这两种代码都可以写出正确的程序,但如果混起来用,那么程序的行为就有可能错乱。
使用Mapper由非泛型转化为泛型
使用 Mapper 进行对象转换,使用 Ignore 对属性进行忽略
惰性求值
尽量使用惰性求值的方式来查询,而不要及早求值
用户关键信息隐藏
让代码变得清真
根据参考对象对已有对象进行格式化
一个基本的对象,一个缺少值的对象,将缺少值的对象的属性设置为基本对象属性的值
使用内插字符串取代 string.format()
代码优化
Dapper
Dapper 多表关联查询
Dapper 对数据库进行查询取值,映射到多个实体类
Docket
使用 Docker 安装BTC钱包
使用 Docker 部署BTC钱包,另有 Dokcerfile
SqlServer
Sqlserver for Linux 高可用
Sqlserver for Linux 高可用部署
Linq
尽早执行与延迟执行的区别
声明式的代码 (declarative code)的重点在于把执行的结果定义出来,而命令式代码(imperative code)则重在详细描述实现该结果所需的步骤。这两种代码都可以写出正确的程序,但如果混起来用,那么程序的行为就有可能错乱。
惰性求值
尽量使用惰性求值的方式来查询,而不要及早求值
C++
分割等和子集
0-1 背包问题
算法
K数之和
在一个数中将所有相加等于一个特定的数的情况列举出来。(可以用来凑单🤣)
分割等和子集
0-1 背包问题
Dotnet Core
使用Mapper由非泛型转化为泛型
使用 Mapper 进行对象转换,使用 Ignore 对属性进行忽略