小知识
pragma mark - 获取当前view的viewcontroller
|
|
雪忆, 如雪般单纯, 冷静思考.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
延时执行
|
|
定时执行
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-sendNext:
时,都会对 RACBehaviorSubject
中保存的 currentValue
进行更新,并使用父类的 -sendNext:
方法,向所有的订阅者发送最新的消息:
|
|
RACBehaviorSubject
最重要的特性就是在订阅时,向最新的订阅者发送之前的消息,这是通过覆写-subscribe:
方法实现的。在调用子类的-subscribe:
方法之后,会在subscriber
对象上执行-sendNext:
方法:
|
|
|
|
|
|
|
|
|
|
普通做法
|
|
一般做法
|
|
高级做法
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
编码 | 含义 |
---|---|
c | char |
i | int |
s | short |
l | long在64位程序中,l为32位 |
q | long long |
C | unsigned char |
I | unsigned int |
S | unsigned short |
L | unsigned long |
Q | unsigned long long |
f | float |
d | double |
B | C++标准的bool或者C99标准的_Bool |
v | void |
* | 字符串(char *) |
@ | 对象(无论是静态指定的还是通过id引用的) |
# | 类(class) |
: | 方法选标(SEL) |
[array type] | 数组 |
{name=type…} | 结构体 |
(name=type…) | 联合体 |
bnum | num个bit的位域 |
^type | type类型的指针 |
? | 未知类型(其他的情况,一般用来指函数指针 |
|
|
|
|
参考:
使用:1234cd CodeSnippets./createSnippets.sh成功之后输出:done
完全退出Xcode后重新新打开Xcode
删除代码块:1./deleteSnippets.sh
清除Xcode 缓存垃圾,释放磁盘存储空间:1./clearTempData.sh
打开代码块所在位置:1./openCodeSnippets.sh
|
|
调用 | 实现 | |
---|---|---|
D Button | 一键创建UIButton | |
D TableView | 一键创建UITabelView | |
D Label | 一键创建UILabel | |
D Label+Custom | 一键 Label自适应宽高 | |
D PickerView | 一键自定义UIPickerView | |
D Window | 一键创建UIWindow | |
D CornerRadius | 一键设置圆角 | |
D Dispatch_async | 一键 子 -> 主 线程(GCD) | |
D Timer | 一键 NSTimer 带暂停/开始 | |
D ImageView | 一键 UIImageView 圆角+边框 | |
D Switch | 一键创建 UISwitch 附带 点击Action | { 触发 } |
D TextField | 一键创建 UITextField 自定义 清除按键 img 是否密文输入 placeholder |
{ 触发 } |
D ScrollView | 一键创建 UIScrollView | { 触发 } |
D PageControl | 一键创建 UIPageControl | { 触发 } |
D Slider | 一键创建滑块 附带 值改变 拖动结束 method | { 触发 } |
D /// | 一键注释 | 触发 { } |
D interface | 一键添加 interface | #import 下面 触发 |
D Assign | 一键 声明 assign 属性 | interface 内触发 |
D Copy | 一键 声明 copy 属性 | interface 内触发 |
D Weak | 一键 weak 属性 | interface 内触发 |
D Strong | 一键 声明 Strong 属性 | interface 内触发 |
D Mark | 一键 mark | 触发 { } |
D docPath | 一键生成 documentPath | { 触发 } |
D NSNotificationCenter | 一键发送 接收通知 | { 触发 } |
D ActivityIndicatorView | 一键 正在加载..(菊花) 转起来 暂停 | { 触发 } |
D AlertController | 一键创建 警告框 附带 确定 取消 回调 | { 触发 } |
D AlertController UserNamePwdTextField |
一键创建UIAlertController 附带Username/PwdTextField |
{ 触发 } |
D PlayMusic | 一键播放音频文件 | 触发 { } |
D SegmentedControl duogeyipaianjian |
一键创建一排按键 多格按键 附带点击action | { 触发 } |
D hide_keyboard | 一键 点击 view 隐藏键盘 | 触发 { } |
D RequestDelegate | 一键创建networkRequestDelegate | 触发 { } |
D WebView | 一键创建 UIWebView 附带Delegate | { 触发 } |
D AFN_网络状态改变的时候触发 | 一键监听网络状态: 蜂窝网络, 无网络, wifi网络变化时触发回调 |
{ 触发 } |
D AFN_Upload | 利用AFNetworking3.1.0封装的两种上传文件方式 | 触发 { } |
D AFN_Get | 一键生成 AFNetworking get 网络请求 | 触发 { } |
D AFN_POST | 一键生成 AFNetworking POST 网络请求 带进度 | 触发 { } |
D AFN_Download | 一键生成 AFNetworking Download 带下载进度 自定义存储filepath |
触发 { } |
D POST_yuansheng | 一键生成 ios 原生 POST 网络请求, post 参数(可选) 自定义请求头 HTTPHeader (可选) 支持: application/x-www-form-urlencoded multipart/form-data 两种类型 POST |
{ 触发 } |
D PCH | 一键定义常用宏 | #ifndef PrefixHeader_pch #define PrefixHeader_pch 触发 D PCH #endif |
自iOS 8开始,UIAlertController就取代了UIAlertView和UIAlertSheet。
|
|
|
|
* Terminating app due to uncaught exception
‘NSInternalInconsistencyException’, reason: ‘Text fields can only be added to an alert controller of style UIAlertControllerStyleAlert’
##如上面说到的,在iPad中ActionSheet以弹出框的形式呈现,如果还是按照上面写就会崩溃。iPad弹出弹出框总是需要一个锚点,锚点可以是源视图,也可以是按钮。需要添加一下代码:12alertController.popoverPresentationController.sourceView = self.view;alertController.popoverPresentationController.sourceRect = self.view.bounds;
|
|