zyoung的小窝

人人为我,我为人人


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

数据打包和解包入门篇

发表于 2016-06-27 | 更新于 2017-02-24 | 分类于 数据处理 | 阅读次数:

数据的传输和获取,通常会涉及到数据的压缩和解压等操作

阅读全文 »

nodeJS安装和更新

发表于 2016-06-23 | 更新于 2017-03-09 | 分类于 javascript | 阅读次数:

说明

本文只记录macOSX系统,其它系统参考官网

阅读全文 »

ios10简介

发表于 2016-06-21 | 更新于 2018-09-10 | 分类于 Apple | 阅读次数:

ios10新特性简介


阅读全文 »

ios设备信息

发表于 2016-06-07 | 更新于 2018-09-11 | 分类于 Apple | 阅读次数:

本文列举了常见的apple设备基本信息,主要包括ARM/Pixes/DPI/Size等信息

阅读全文 »

Jenkins自动化集成

发表于 2016-05-24 | 更新于 2017-12-21 | 分类于 自动化 | 阅读次数:

说明

Jenkins很强大,本文主要记录Jenkins用于iOS自动打包。

阅读全文 »

Swift入门篇

发表于 2016-05-16 | 更新于 2018-09-10 | 分类于 学习笔记 | 阅读次数:

变量申明

变量用var,常量用let;可以显示指明变量数据类型,也可以隐式由变量赋值决定。如果是可以为nil的变量,需要用可选符号?修饰。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 let a: NSInteger = 12
var b = 13
b = 15
print(a+b)
//2***********?
var mayNilStr: String? = "hello"
// var str: String = "world"
mayNilStr = nil
// str = nil
print("\(mayNilStr)")
//3********** ??(如果变量为nil,则取??之后的值)
var yourName :String? = nil
yourName = "Tom"
let defaultName = "Jack"
let greet = "hello \(yourName ?? defaultName)"
print(greet)

阅读全文 »

Xcode的BuildSetting配置说明

发表于 2016-04-29 | 更新于 2017-02-24 | 分类于 Apple | 阅读次数:

是否采用ARC

  1. 某个文件采用ARC,可以在Build Phases中的Compile Sources中找到该类,双击修改Compiler Flags为-fobjc-arc。
  2. 某个文件采用MRC,可以在Build Phases中的Compile Sources中找到该类,双击修改Compiler Flags为-fno-objc-arc。

全局宏定义

一个workspace/project如果包含多个target或者scheme,可以在BuildSetting->Preprocessing->Preprocessor Macros中定义自己的宏来区别对待多target喝scheme等

第三方库路径配置

有时第三方库(一般是.a之类的)引入时,查找路径没配好,可能导致编译失败。可以在BuildSetting->SearchPaths中修改库的查找路径为相对路径(不要用本地的绝对路径)

ios各种指针说明

发表于 2016-04-29 | 更新于 2018-09-10 | 分类于 Apple | 阅读次数:

strong、weak、unsafe_unretained、autoreleasing、copy说明

  1. strong 指针的默认类型。该指针指向的对象在指针存活期间一直存在,不会被销毁。
  2. weak 当没有strong指针指向对象时,weak指针指向的对象将被销毁,同时weak指针为变为nil。
  3. unsafe_unretained 该指针指向的对象销毁时,该指针不会被置为nil,而是被挂起(类似野指针)。最好别用
  4. autoreleasing 一般指向函数的参数类型为id *并且自动释放的参数。
  5. copy 类似strong,但是会复制一份新的对象(即指向新的内存地址),新指向的对象存活期同strong。

参考链接

Apple

堆和栈的区别

发表于 2016-04-29 | 更新于 2017-02-24 | 分类于 内存管理 | 阅读次数:

堆栈

栈用于静态内存分配,堆用于动态内存分配,它们都存储在内存RAM里。

栈

  • 栈上面的变量一般编译时就分配好了(如函数临时变量等)。栈遵循LIFO(后进先出),非常方便管理。
  • 栈的内存分配一般由系统管理,开发者无需关心。
  • 读取栈上的变量速度很快。
  • 当一个方法function被调用时,它会被push进栈中,该方法中的参数和局部变量存储在栈中,当方法执行完后,该方法pop出来,相应的栈空间被释放。

堆

  • 堆上的变量,一般在程序运行期分配。
  • 读取堆上数据速度较慢。
  • 堆上的元素能够在任何时候被读取,开发者也能够在任何时候申请堆内存空间并且释放申请的空间,所以管理堆上的变量比较复杂。
  • 通常我们说的内存管理实际上是指堆内存管理。
  • 堆的大小仅受限于虚拟内存的大小。

说明

多线程开发中,每一个线程都有自己独立的栈,但是它们共享堆。

ios app 性能优化的几个建议

发表于 2016-04-28 | 更新于 2018-09-10 | 分类于 Apple | 阅读次数:

参考链接

raywenderlich

优化建议

当你开发了几款app后,是否考虑过怎样才能提高自己的app的性能。在开发的过程中,只要我们注意一些要点,可以很轻松地开发出性能优雅的app。
这篇文章介绍了23个提高app性能的tips。

阅读全文 »
123
Zhen ZhaoYang

Zhen ZhaoYang

个人技术博客,平常写写文章、吐吐槽

28 日志
14 分类
27 标签
GitHub E-Mail
友情链接
  • 土豪
  • 毛毛
© 2016 – 2018 Zhen ZhaoYang
由 Hexo 强力驱动 v3.5.0
|
主题 – NexT.Mist v6.4.1