HD Blog

Thinking will not overcome fear but action will.

GCD 在 Swift 中的用法

DispatchQueue Swift 中,对 GCD 语法进行了彻底改写。引入了 DispatchQueue 这个类。 先来看看在一个异步队列中读取数据, 然后再返回主线程更新 UI, 这种操作在新的 Swift 语法中是这样的: DispatchQueue.global().async { DispatchQueue.main.async { // 更新UI操作 ...

Swift 4 新特性

很高兴 Swift 4 不再是一门新语言了😅

private 权限扩大 在 Swift 4 中,extension 可以读取 private 变量了。 Swift 3 中,如果将主体函数的变量定义为 private,则其 extension 无法读取此变量,必须将其改为 filePrivate 才可以。 单向区间 单向区间是一个新的类型,主要分两种:确定上限和确定下限的区间。直接用字面量定义大概可以写成 …6和 2… 例如 ...

利用 Debug Memory Graph 检测内测泄漏

利用 Xcode 内存表(Debug Memory Graph)检测内测泄漏

前言 平常我们都会用 Instrument 的 Leaks / Allocations 或其他一些开源库进行内存泄露的排查,但它们都存在各种问题和不便, 在这个 ARC 时代更常见的内存泄露是循环引用导致的 Abandoned memory,Leaks 工具查不出这类内存泄露,应用有限。 今天介绍一种简单直接的检测内测泄漏的方法:Debug Memory Graph 就是这货: ...

Swift的HMAC和SHA1加密

swift中利用HMAC的SHA1对文本进行加密

HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code)。 HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC通过将哈希算法(SHA1, MD5)与密钥进行计算生成摘要。 Objectice-C 在上个 Objectice-C 项目中,使用的 HMAC 和 SHA1 进行加...

Xcode9 无线调试功能

zsh的快速配置

支持:Xcode 9 及 iOS 11 使用数据线连接 iPhone 到电 Mac,Mac 和 iPhone 必须在同一个局域网 1. 打开设备列表 使用快捷键盘 ⇧⌘2 或 在 Xcode 菜单栏选择 Window > Devices and Simulators,打开设备列表 2. 勾选在线调试按钮 3. 拔掉数据线 这时就可以无线调试了。

快速配置zsh

zsh的快速配置

比较水的 Personal Notes 查看你的系统有几种shell cat /etc/shells 显示 /bin/bash /bin/csh /bin/ksh /bin/sh /bin/tcsh /bin/zsh 安装 oh my zsh git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-...

在 Swift 中使用 IBInspectable

IBInspectable 在 Swift 中的实际应用

本文首次发布于 BY Blog, 作者 @柏荧(BY) ,转载请保留原文链接. 前言 通过 IB 设置 控件 的属性非常的方便。 但是缺点也很明显,那就是有一些属性没有暴露在 IB 的设置面板中。这时候就要使用 @IBInspectable 在 IB 面板中添加这些没有的属性。 关于在 OC 中使用 IBInspectable 可以看一下我的 这篇文章 正文 在项目中...

R.swift 的使用

在项目中引入 R.swift,更安全的获取资源

本文首次发布于 BY Blog, 作者 @柏荧(BY) ,转载请保留原文链接. 什么是 R.swift 介绍 R.swift 前,我们先看看 R.swift 能做什么 通常,我们是基于 字符串 来获取资源,例如:图片、xib、或者是 segue let myImage = UIImage(named: "myImage") let myViewController = R.s...

Swift 的懒加载和计算型属性

比较水的个人笔记

本文首次发布于 BY Blog, 作者 @柏荧(BY) ,转载请保留原文链接. 懒加载 常规(简化)写法 懒加载的属性用 var 声明 lazy var name: String = { return "BY" }() 完整写法 lazy var name: String = { () -> String i return "BY" }() 本质是一个创建...

RVM 使用指南

RVM 常用的命令整理

RVM 常用的命令整理 RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换。https://rvm.io/ 我相信做为iOS开发者,对ruby的使用都是从安装 CocoaPods 开始的吧~ Note:这里所有的命令都是再用户权限下操作的,任何命令最好都不要用 sudo. RVM 安装 $ gpg --keyserver hkp://ke...