JWATC Blog

最近的面试总结

4/16 3家 4/17 3家

iOS 常用的一些算法

排序算法 选择排序、冒泡排序、插入排序三种排序算法可以总结为如下: 都将数组分为已排序部分和未排序部分。 选择排序将已排序部分定义在左端,然后选择未排序部分的最小元素和未排序部分的第一个元素交换。 冒泡排序将已排序部分定义在右端,在遍历未排序部分的过程执行交换,将最大元素交换到最右端。 插入排序将已排序部分定义在左端,将未排序部分...

Xcode9.3微信登录回调闪退

解决方法 Xcode 升级9.3,APP微信登录回调闪退,各种调试无法解决,后来对比之前的项目居然少一个 OpenURL 回调方法。 添加以下方法即可解决: func application(_ application:UIApplication, open url:URL, options: [UIApplicationOpenURLOptionsKey:Any] = [:]) -...

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 就是这货: ...

iTunes Connect 构建版本不显示

App打包上传到 App Store, iTunes Connect 构建版本不显示

前言 今天新项目上架,在Xcode打包上传到App Store后,在iTunes Connect构建版本中居然找不到上传的App… 解决 从iOS10开始,苹果更加注重对用于隐私的保护,App 里边如果需要访问用户隐私,必须要做描述,所以要在 plist 文件中添加描述。 而这三个基础描述是必须添加的: 麦克风权限:Privacy - Microphone Usag...

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. 拔掉数据线 这时就可以无线调试了。

在 Swift 中使用 IBInspectable

IBInspectable 在 Swift 中的实际应用

前言 通过 IB 设置 控件 的属性非常的方便。 但是缺点也很明显,那就是有一些属性没有暴露在 IB 的设置面板中。这时候就要使用 @IBInspectable 在 IB 面板中添加这些没有的属性。 关于在 OC 中使用 IBInspectable 可以看一下我的 这篇文章 正文 在项目中最常遇到的情况是为 view 设置圆角、描边,以及为 文本控件 添加本地化字符串。 圆角...