git 使用经验集锦

Mon 31 July 2017 by Little Captain

修改 Git 的默认编辑器

# 1. subl 是可以在终端中直接启动的一个文本编辑器
# 2. -w 的意思是: 让 git 等待文本编辑结束. 当用户编辑完成后, 关闭文本就表示结束
git config --global core.editor "subl -w"
read more

Java 的数据类型

Wed 12 July 2017 by Little Captain

分类

基本数据类型

byte

  • 字节型是一种 8 位有正负的二进制整数
  • 最小值是 -128(-2^7)
  • 最大值是 127(2^7-1)
  • 默认值为 0
  • 字节型数据类型主要是为了在大型数组内节省空间,主要是替代整数由于字节型比整数小 4 倍。
  • 例如:byte a = 100 , byte b = -50

short

  • 短整数是一种 16 位有正负的二进制整数
  • 最小值是 -32768(-2^15)
  • 最大值是 32767(2^15-1)
  • 短整数类型的数据也可以像字节型一样用于节省空间。短整数比整数小两倍
  • 默认值为 0
  • 例如:short s = 10000, short r = -20000 …
read more

ipa 包中的 PNG 文件的正常化

Thu 29 June 2017 by Little Captain

问题描述

  • 图片拖入 iOS 工程后, Xcode 会对其进行特殊处理, 导致图片能在 Apple 相关系统上正常显示, 其他系统都不能正常显示.
  • 之所以能在 Apple 相关系统上正常显示是因为苹果的底层方法实现就做了相应处理.

问题解决

  • 通过苹果的方法把这些特殊图片读入系统, 然后重新保存为 PNG 图片即可.

将这段代码加入你的 Mac 控制台工程, 生成一个可执行程序(如 ipaPNGnormalizer), 在命令行中使用即可, 第一个参数为需要正常化处理的 PNG 文件夹路径. 处理后会在这个目录下创建一个 decode 文件夹, 这个文件夹下存放所有的正常化后的 PNG 图片

#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>

#define NSLog(FORMAT …
read more

Objective-C 代码规范

Tue 13 June 2017 by Little Captain

排版

  • 程序块要采用缩进风格编写,缩进的空格数为4个。对齐只使用空格键,不使用TAB键。
  • 相对独立的程序块之间、变量说明之后必须加空行。
  • 较长的语句要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。
  • 不允许把多个短语句写在一行中,即一行只写一条语句。
  • 大括号添加规则(if、for、函数、方法 ...)
if (...) {

    // 代码开始
}
  • 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、 之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(++、&、! ...),后不应加空格。
  • 一行程序以小于80字符为宜,不要写得过长。
  • block 调用规范
!_block ? : _block(...);
  • 方法声明规则: 一个参数一行
- (NSURLSessionDataTask *)upload:(NSString *)URLString
                      parameters:(nullable id)parameters
                            name:(NSString *)name
                        fileName …
read more

在 Windows 平台搭建 gogs 服务

Sun 11 June 2017 by Little Captain

准备

Git 安装包

官网

nssm Windows Windows 服务包装软件

官网

gogs 二进制包

官网

安装

Git

一直下一步就可以了

nssm

这个不用安装, 解压后, 根据系统使用不同的程序. 要能够在命令行中使用, 必须要将它的路径加入环境变量中

gogs

将压缩包解压, 然后启动 nssm 程序来包装 gogs, 包装流程参见.

防火墙配置

  • 不配置好防火墙, 本机外是没法访问的.

启动或关闭 Windows 防火墙

![](../assets/images/git/启动或关闭 Windows 防火墙.png)

高级设置

剩下的就是打开浏览器, 访问 gogs 服务了!

注意

我们在 clone …

read more

Xcode 常见设置集锦

Wed 24 May 2017 by Little Captain

消除 Xcode 警告

read more

SVN 基本操作

Tue 16 May 2017 by Little Captain

基本操作原理图

SVN版本管理架构模式

SVN客户端常用命令

# 下载服务器的代码到本地 (简写svn co)
svn checkout
# 将改动的文件提交到服务器(简写svn ci)
svn commit
# 更新服务器的代码到本地 (简写svn up)
svn update
# 向本地的版本控制库中添加新文件
svn add
# 从本地的版本控制库中删除文件(简写svn del、svn rm)
svn delete
svn remove
# 移动文件或者目录或文件更名
svn move
# 创建纳入版本控制下的新目录
svn mkdir
# 撤销之前的一切修改
svn revert
# 将两个版本之间的差异合并到当前文件
svn merge
# 查看文件的详细信息
svn info
# 查看不同版本的区别
svn diff
# 查看日志信息
svn …
read more

iOS 数据的存储方式

Fri 12 May 2017 by Little Captain

沙盒(磁盘)

沙盒简介

  • 每个iOS应用程序都有自己的应用沙盒
  • 应用沙盒就是文件系统目录, 与其它文件系统隔离
  • 应用必须待在自己的沙盒里, 其它应用不能访问该沙盒

沙盒的访问

  • NSHomeDirectory() : 沙盒的根目录
  • Documents
    • 保存应用运行时生成的需要持久化的数据
    • iTunes同步设备时会备份该目录
    • 不允许放缓存大数据
  • Library/Caches
    • 保存应用运行时生成的需要持久化的数据
    • iTunes同步设备时不会备份该目录
    • 一般存储体积大、不需要备份的缓存数据
  • Library/Preference
    • 保存应用的所有偏好设置
    • iOS的Settings(设置)应用会在该目录中查找应用的设置信息
    • iTunes同步设备时会备份该目录
  • tmp
    • 保存应用运行时所需的临时数据
    • 使用完毕后再将相应的文件从该目录删除
    • 应用没有运行时,系统也可能会清除该目录下的文件
    • iTunes同步设备时不会备份该目录

应用程序包

  • 包含了所有的资源文件和可执行文件
  • [NSBundle mainBundle]
    • 获取应用程序包路径
    • 代表 App 本身
  • 注意和沙盒做区分

偏好设置

  • 小数据
  • 保存用户名、密码(MD5)、是否自动登录、字体大小等设置 …
read more

iOS 文件上传

Thu 11 May 2017 by Little Captain

步骤

设置请求头

[request setValue:@"multipart/form-data; boundary=分割线" forHTTPHeaderField:@"Content-Type"];

设置请求体

  • 非文件参数
--分割线\r\n
Content-Disposition: form-data; name="参数名"\r\n
\r\n
参数值
\r\n
  • 文件参数
--分割线\r\n
Content-Disposition: form-data; name="参数名"; filename="文件名"\r\n
Content-Type: 文件的MIMEType\r\n
\r\n
文件数据
\r\n
  • 结束的标记
--分割线--\r …
read more

iOS 监测网络状态

Thu 11 May 2017 by Little Captain

为什么要监听

  • 让用户了解自己的网络状态,防止一些误会, 怪应用无能
  • 根据用户的网络状态进行智能处理,节省用户流量,提高用户体验
    • WIFI\3G网络:自动下载高清图片
    • 低速网络:只下载缩略图
    • 没有网络:只显示离线的缓存数据

监测网络状态

  • 在网络应用中,需要对用户设备的网络状态进行实时监控
  • 苹果官方提供了一个叫Reachability的示例程序,便于开发者检测网络状态

地址

  • 使用步骤
    • 添加框架SystemConfiguration.framework
    • 添加源代码(Reachability.h 和 Reachability.m)
    • 包含头文件(Reachability.h)
  • 实际开发中一般都使用AFNetworking监测
read more