1.代码组织
在函数分组和protocol/delegate实现中使用#pragma mark -来分类方法,要遵循以下一般结构:
|
|
在函数分组和protocol/delegate实现中使用#pragma mark -来分类方法,要遵循以下一般结构:
|
|
runtime是系统运行时的一些机制,C语言中,函数的调用在编译的时候就会决定调用哪个函数,然后再顺序执行。
OC不同,OC是动态语言,所谓的动态是指,可以在编译时更改。这时我们就要用到runtime。OC是面向对象的语言,在编译的时候会都会最终转化成C语言,也就是runtime代码。这个时候我们可以修改runtime代码来改变代码最终的执行效果。
之前在网上看过不少xcode调试的方法,没有收集记录下来。今天把他们归纳在一起方便以后学习查看。
Xcode8新增:Memory Graph解决闭包引用循环问题
有很多叹号说明就有问题了。看内存中object的名字,有一条是Closure captures leaked。展开后点击就可以看到这个issue对应的内存图形展示在中间的面板中。
每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm。随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods。
CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过多年发展,现在已经成为iOS开发事实上的依赖管理标准工具。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
最近升级了最新的系统OS10.12.1,xcode也随之升级了。但是发现使用cocoaPods却出现问题了。应该是cocoaPods为了适配苹果的升级而进行了更新。好了接下来又要折腾一番了。
1、所有Objective-C语言的对象都必须这样声明:
NSString *someString = @"the string";
它声明了一个名为somgString的变量,其类型是NSString。也就是说此变量为指向NSString
的指针。所有对象所占内存总是分配在堆空间中,而绝不会分配在栈中分配在堆中的内存必须直接管理。(现在是使用引用计数进行自动管理了。不需要手动管理)而那些定义中不含的变量分配在栈上的内存则会在其栈桢弹出时自动清理。
之前做了一个功能,要求扫描二维码和微小型条码的扫描,微小型条码有多小,当客户一拿过来的时候我一脸蒙逼。条码高度就只有这一行字的高度,在纸上密密麻麻贴了一大条。这怎么扫?我马上用ZXing,ZBar什么的试了下,成功率极低。这显然无法满足需求。然后自己琢磨用系统提供的方法实现。
more >>
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true