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

Welcome!

iOS 入门 014: Block

block 定义 inlineBlock return_value ^(block_name)(arg_list) = return_value ^(arg_list){ code_block; } typedef Block block是一种数据类型,可以定义类型,当作返回值 typedefBlock.m #import <Foundation/Foundation.h> typedef void^(myBlock)(); myBlock myDemo(){ myBlock mb = ^{ NSLog(@"test"...

iOS 入门 013: AutoLayout 与 SizeClass

自动布局 建议 多用Storyboard练习自动布局 技巧 在界面上摆放好控件的位置 使用自动布局添加"约束" (蓝色的线) Size Classes Compact:压缩的 Reguler:常规的 约束 注意 一旦设置了约束,可以通过修改约束数值,调整控件位置,不要再调整frame 参考 任何一个控件都可以参照另外控件准确定义出位置frame(x, y, width, height) 注意 使用了自动布局,就"不要"再用代码改frame,因为已经将所有的布局交给了自动布局系统! 其他 pin 是指定大小和位置 al...

iOS 入门 012: transform

transform 形变属性 控件的形变属性 (可以设置旋转角度、比例缩放、平移等属性) UIView一次只能应用一个形变属性 设置transfrom会改变UIView的frame属性,但不会改变bounds属性 CGAffineTransformMakeScale相对UIView的初始状态进行形变 CGAffineTransformScale相对UIView的当前状态进行形变 Rotate 旋转: CGAffineTransformMakeRotation(CGFloat sx, CGFloat sy) CGAffineTransformRotate(CGA...

iOS 入门 011: frame、bounds 与 center

frame/bounds/center frame 位置与尺寸属性 控件所在矩形框的位置和尺寸 坐标系原点为父视图的左上角,向右横轴递增,向下纵轴值递增 bounds尺寸属性 控件所在矩形框的位置和尺寸 bounds的坐标系原点为自身的左上角,向右横轴递增,向下纵轴值递增 center中心点属性 控件中点的位置,通过center属性设置视图位置更加方便 center的坐标系原点为父视图的左上角,向右横轴递增,向下纵轴值递增 使用注意 用frame和center可以修改UIView的位置 用frame和bounds可以修改UIView的尺寸 通常,...

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命令模式 在这个模式下可以执行复杂命令,在正常模式下输入:进入命令模式,按 ⎋ 返回正常模式 ...

What's this?

The Night-City version of Hotodogo 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.

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

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

热爱苹果、钟情色彩。

随时恭候 垂询