Kali Blog

中立最好,学校最坏.

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...

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-...

RVM 使用指南

RVM 常用的命令整理

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

iOS自动打包

利用 xcdeobulid 打包项目、上传

利用xcode的命令行工具 xcdeobulid 进行项目的编译打包,生成ipa包,并上传到fir 前言 现在网上的自动打包教程几乎都还是xcodebuild + xcrun的方式先生成.app包 再生成.ipa包,结果弄了一整天硬是没成功~ 后来发现PackageApplication is deprecated,悲剧。然后手动压缩的 .ipa包因为签名问题无法装到手机上。 ...

CocoaPods 安装和使用

安装时间 2017/04/13, 环境macOS 12.10.1, cocoapod版本 1.2.1

前言 最近换了新机器,重新搭建了开发环境,其中当然包括 CocoaPods。 装完顺便更新下 CocoaPods 安装文档。 正文 安装 CocoaPods 是用 ruby 实现的,要想使用它首先需要有 ruby 的环境。 升级ruby 查看ruby版本 $ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [univer...

强化 swift 中的 print

强化 swift 中的 print 输出函数

在 Swift 中,最简单的输出方法就是使用 print(),在我们关心的地方输出字符串和值。 当程序变得非常复杂的时候,我们可能会输出很多内容,而想在其中寻找到我们希望的输出其实并不容易。我们往往需要更好更精确的输出,这包括输出这个 log 的文件,调用的行号以及所处的方法名字等等。 在 Swift 中,编译器为我们准备了几个很有用的编译符号,它们分别是: 符号 类型 描述 ...

CocoaPods私有仓库的创建

继续带你创建 CocoaPods 私有有仓库

本文发布于 BY Blog、简书 转载请保留链接 上一篇文章 《CocoaPods公有仓库的创建》 前言 最近参照了网上一大堆 CocoaPods私有仓库 的教程,按教程操作得到的pod仓库里面是这样的~ 代码和版本描述居然混在了一起,简直太糟糕~ 虽然也能用,但是和CocoaPods本身的结构设计就不相符。 在上一篇《CocoaPods公有仓库的创建》中我们了解...

CocoaPods公有仓库的创建

手把手教你创建 CocoaPods 公有仓库

本文发布于 BY Blog、简书 转载请保留链接 前言 作为iOS开发者,CocoaPods的使用为我们开发带来了极大的便利。 我们先来看看CocoaPods本地目录中有什么 $ cd ~/.cocoapods/repos/master 或者显示隐藏文件 $ defaults write com.apple.finder AppleShowAllFiles -boole...

Xcode 控制台输出中文

在 Xcode 控制台输出中文的方法

重写 NSArray、NSSet、NSDictionary 的输出方法,在Xcode实现中文(Unicode)字符在控制台的输出 原理 Xcode 控制台中在输出 NSArray、NSSet、NSDictionary 时,其中的中文字符会变成Unicode编码 如"\U67cf\U8367". 我们通过分类重写这些类的输出方法即可实现在控制台输出中文: - (NSString...

Git 代码回滚

回滚代码的正确姿势

并不适合阅读的个人文档。 git revert 和 git reset 的区别 先看图: sourceTree 中 revert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。新的版本中已近删除了你所指定的版本。 reset 为 重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认...