CaveOps: Night-City
#Hello Edgerunners, welcome to the Night-City.

Welcome!

iOS 入门 010: Xib

Xib 从文件中读取需要的组件 NSArray *bundelArr = [[NSBundle mainBundle]loadNibNamed:@"myCell" owner:nil options:nil]; cell = bundelArr[0] nib其实是一个xib,里面是数组保存了各个组件。 注册nib文件,并且给表格注册可重用的nib 这样做的好处是能简化cell优化的过程,这样在初始化cell的时候就不用判断是否为nil e.g. - (void)viewDidLoad { [super viewDidLoad]; UINib *n...

iOS 入门 009: autoreleasepool自动释放池

autoreleasepool自动释放池 问答 自动释放池的作用是什么? 延迟释放 那些对象会延迟释放? 所有用类方法实例化的对象都是延迟释放的 对象何时被销毁? 所有延迟释放的对象在超出作用域之后会被添加到最新创建的自动释放池中,但是不会被立即销毁,当自动释放池被销毁时,会向池中所有对象发送release消息,释放所有延迟释放的对象 自动释放池何时被销毁? 示意图 iPhone Application Launches > iPhone Touch Event > Cocoa Touch Creates Event > Event Object ...

iOS 入门 008: RunLoop运行循环

RunLoop运行循环 作用与特性 保证程序不退出 监听所有事件,手势触摸、时钟触发、网络加载数据完成 没有事件时回休眠(省电),一旦监听到事件会会响应 程序启动后会创建RunLoop,每一个线程都有一个RunLoop,但只有主线程的RunLoop会启动 例子 按钮点击事件是如何响应的? addTarget只是注册(给RunLoop)点击按钮后执行控制器的click方法 Application ⬇️ runloop ⬇️ Window ⬇️ ViewController ⬇️ View ⬇️ Button ⬇️ ...

iOS 入门 007: iOS系统框架表

框架名称 功能 Foundation 提供OC的基础(像NSObject)、基本数据类型等 UIKit 创建和管理应用程序的用户界面 QuartzCore 提供动画特效以及通过硬件进行渲染的能力 CoreGraphics 提供2D绘制的基于C的API SystemConfiguration 检测当前网络是否可用和硬件设备状态 AVFoundation 提供音频录制和回放的底层API,同时负责管理音频硬件 CFNetwork 访问和配置网络,像HTTP、FTP和Bonjour Services CoreFoundation 提供抽象的常用数据类型,如Unico...

iOS 入门 006: ARC 与 MRC

Retain Count 引用计数,表示当前有多少个对象对该对象引用 苹果官方不推荐跟踪retainCount,因为一对象在真正执行中,可能会被某一个框架引用,也有可能会被框架的框架引用,造成retainCount和预期的不同 小测试 Q 定义NSString *str = @"hello world",问str的retainCount是多少 A 32位的系统返回最大的32位整数,64位返回最大的64位整数 在OC中,如果直接使用 @"hello world" 来定义字符串,编译后会被保存在静态区,而且如果出现相同内容的字符串,所有的字符串本质上都保存在一个位置 ...

iOS 入门 005: Xcode 与沙盒

调试命令 在Xcode控制台中支持输入调试命令辅助测试 po,打印当前方法中的任何能够访问的OC方法或者对象属性 模拟器及沙盒相关 从Xcode 6开始改了模拟器的路径位置,iOS 6的模拟器就彻底安装不上了 以UDID命名,如F3BB6BA7-6BCF-42B0-8F49-498C774864DB,区别于以前的7.1,7.0,6.1,6.0等 从Xcode 6开始,沙盒和Bundle分开分开,各自有各自的UDID 沙盒路径 在Data目录下 po NSHomeDirectory() /Users/apple/Library/Developer/Core...

iOS 入门 004: 常用 UNIX 命令

常用 UNIX/Linux 终端指令 指令 描述 参数 mkdir dirname 创建一个目录 rmdir dirname 删除一个目录 mvdir dirname1 dirname2 移动或重命名一个目录 cd dirname 改变当前目录 ...

iOS 入门 003: vi 编辑器

vi 是 UNIX/Linux 系统中用来记录文字信息的工具,它是在终端窗口中使用的工具,因此也不能使用鼠标 gVim 是 Windows 下的 vi 启动vi的命令vi 文件路径 vi中的功能分成三组,每组对应一种工作模式,只有位于某种工作模式下的时候才可以使用对应的功能 vi正常模式 在这个模式下可以执行简单命令,每次刚启动 vi 的时候都处于正常模式下 vi插入模式 在这个模式下可以修改文字内容,在正常模式下输入 i 进入插入模式,按 ⎋ 返回正常模式 vi命令模式 在这个模式下可以执行复杂命令,在正常模式下输入:进入命令模式,按 ⎋ 返回正常模式 ...

iOS 入门 002: 内存空间地址

内存空间地址 基本概念 程序员直接接触的内存地址为 虚拟内存地址,而非物理内存地址 以32位系统为例,每个进程都对应4GB虚拟内存地址空间,其中0-3GB为 用户层 ,3-4GB为 内核层 程序员可以直接操用户层,用户层无法直接操作内核层 虚拟内存地址本身不对应任何物理内存或硬盘文件,因此不能存储数据,必须映射到物理内存或硬盘文件,也即分配内存 内存管理的单位是字节,内存映射的基本单位是内存页,一次映射必须是内存页的整数倍 getpagesize()可以获取当前系统内存页一页的大小,通常为4096字节 如果不映射而直接使用虚拟内存地址,会引发段错误 对内存进行没...

iOS 入门 001: C语言位运算

位运算符可以直接对二进制数位进行操作 & (按位与) 两个对应位都为1则得1,有0则得0按位与可以把某个二进制数位置0任何数位和0按位与结果为0,和1按位与结果不变 3 & 5: 3 0000 0011 5 0000 0101 0000 0001 | (按位或) 两个对应位都为0则得0,有1则得1按位或可以把某个二进制数位置1任何数位和0按位或结果不变,和1按位或结果为1 3 | 5: 3 0000 0011 5 0000 0101 0000 0111 \^(按位异或) 两个对应位相同则得0,不同则得1按位异或可以把某个...

PHP Primer 023 : 图像处理(一)

这一篇主要介绍 PHP 中的 Grahpic Device 库的使用。 CD 已经在 PHP 中集成,我们要做的很简单: <?php header("content-type: image/png"); 新建画布 接下来,要画图首先当然要有画布: $img = imagecreatetruecolor(100, 100); 颜色设定 为画笔设定颜色吧: $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); $black = imagecolorallocate($img, 0x00, 0x00, 0x00); ...

PHP Primer 024 : 图像处理(二)

上一篇学会了线条的绘制,这一篇来了解一下如何绘制文字。 画布与颜色 依然要创建画布和颜色: <?php $img=imagecreatetruecolor(100, 100); $red = imagecolorallocate($img, 0xFF, 0x00, 0x00); 绘制文字 imagestring($img, 5, 0, 0, "Hello, world", $red); 输出图片释放内存 header("content-type: image/png"); imagepng($img); imagedestroy($img)...

What's this?

The Night-City version of CaveOps inspired by Cyberpunk 2077. Not finished yet.

Pinned Message

The Founder and CEO of Infeca Technology.

Developer, Designer, Blogger.

Big fan of Apple, Love of colour.

Feel free to contact me.

反曲点科技创始人和首席执行官。

开发、设计与写作皆为所长。

热爱苹果、钟情色彩。

随时恭候 垂询