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

Welcome!

iOS 入门 020: HTTP 浅析

URL URL的全称是Uniform Resource Locator(统⼀资源定位符) 通过一个URL,能找到互联⽹上唯⼀的一个资源,依赖于网络资源,不能随意更改 URL就是资源的地址、位置,互联⽹上的每个资源都有一个唯一的URL URL的基本格式 = 协议: //主机地址/路径 协议 不同的协议,代表着不同的资源查找⽅方式、资源传输⽅方式 主机地址 存放资源的主机的IP地址(域名) 路径 资源在主机中的具体位置 URL中常见的协议 HTTP 超⽂文本传输协议,访问的是远程的网络资源,格式是https:// http协议是在⽹网络开发中最常⽤用的协议 file ...

PHP 与 RegEx 浅析 001: 概述

PHP 得益于其简单易学的特性,从上世纪 90 年代一直流行至今。 对于本文所要讲到的正则表达式,PHP 也有相当完备的支持,甚至它提供了至少三套独立的正则引擎: preg - Perl Regular Expressions ereg - Extended Regular Expressions bm_ereg 由于 preg 在通常情况下速度与功能都要优于另外两者,所以本系列主要介绍 preg 引擎。 preg 属于 NFA 流派,是一组 Perl 兼容正则表达式 (PCRE,Perl Compatible Regular Expressions) 套件,十分完整的模拟了 Perl 语...

PHP 与 RegEx 浅析 002: preg_match()

本文主要介绍函数 preg_match() 的语法、参数、返回值以及使用方法和范例。 格式 preg_match(pattern, subjevt[, match[, flags [, offset]]]) 参数 pattern用分隔符包围的正则表达式,可能出现修饰符 subject需要搜索的目标字符串 matches用来接收匹配数据,可省略 flags只允许出现标志位 PREG_OFFSET_CAPTURE,可省略 offset从 0 开始,表示匹配尝试的开始位置,可省略,默认为 0 此参数值非负则从前面计算,反之从后面计算 返回如果找到匹配返回 true,否则返回 false ...

PHP 与 RegEx 浅析 003: Unknown Modifier 错误

有时候,你的程序可能会忽然报告 Unknown Modifier 错误,这通常是因为你在创建模式参数时没有添加分隔符,例如你希望匹配 HTML 标签: preg_match('<(/w+)([^>]*)>', $html) 这里出现的问题是,你希望 < 是正则表达式的一部分,而事实上 preg_match 将它认定为其实分隔符,基于这样的情况,你的参数被解释为四个部分: < (\w+)([^ > ]*)> 而 (\w+)([^ 并不是一个合法的正则表达式,这时正则引擎会试图将 ]*)> 解释为模式修饰符,但它也并不是合法的...

iOS 入门 018: XML 浅析

XML 可扩展标记语言 区分大小写 命名不能以xml(XML、Xml...)、数字、下划线开头,不能出现冒号 <?xml version="1.0" standalone="no" encoding="UTF-8"?> W3C认证,IBM & Microsoft联合推广 能够解决所有异构数据库系统之间的数据传递 DTD 验证XML元素是否符合规范 <!DOCTYPE myfile = [<!ELEMENT name (#PCDATA)>]> 元素 <name>Bill</name> 属...

iOS 入门 017: 多线程

多线程 进程 * 进程对应一块内存空间 线程 * 一个进程可以分为多个线程,一个iOS程序运行后,默认会开启一条线程,称为主线程或UI线程 * 网络开发一般使用多线程 时间片 * 人的感知时有延迟的,CPU将时间分为人无法感知的碎片,称为时间片 串行与并行 * 线程是串行的,通过时间片实现伪并行   * 线程调度时无序的,线程启动后的调度顺序是由CPU决定的,程序员无法参与 线程的缺点 * 开启线程需要占用一定的内存空间,在iOS中,主线程栈区占用1MB,子线程占用512K * 线程太多,会占用大量的内存空间,降低程序性能,CPU在调度线程上的开销越大,负荷越大 线程的主要作用 * 显示和刷...

iOS 入门 016: 单例模式及其实现

单例模式及其实现 步骤 提供全局访问方法,公认的格式 shared+类型 有一个静态全局变量,保证对象的实例保存在静态区,并且不需要关心释放 的问题 重写allocWithZone方法,能够保证对象只被实例化一次! 需要包含dispatch_once:保证对象只被分配一次内存空间 实现shared方法 需要包含dispatch_once:保证对象只被初始化一次 eg.h #import <Foundation/Foundation.h> @interface SoundTools : NSObject <NSCopying> /...

iOS 入门 015: copy 与 mutableCopy

copy 与 mutableCopy 普通对象的拷贝 copy的目的是在修改原始版本和副本的时候,彼此各不干扰 copy拷贝为不可变对象 mutableCopy拷贝为可变对象 源对象 方式 操作 类型 不可变 copy 引用计数+1 浅拷贝,指针拷贝 mutableCopy 新建副本 深拷贝,对象拷贝 可变 copy mutableCopy @property (nonatomic, copy) NSString *str; 给copy属性设置数值时,默认会做一次copy操作,拷贝出不可变的版本 目标值是可变的,会建立一个不可变的副本 ...

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的尺寸 通常,...

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.

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

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

热爱苹果、钟情色彩。

随时恭候 垂询