iOS笔记之每日心得2

更改拆分视图的上下分,左右分
菜单栏view下assistantEditor

拖进项目的文件夹一定要选new group。文件夹是黄色的才可以直接通过文件名到访问,如果是蓝色的要加上文件路径才可以访问

约束不要随便添加,老是用addMissingConstrains应该想好逻辑之后再加就水到渠成了
约束中有aspectRatio很好用控制宽高比
还有选中多个水平竖直对齐
或者单个直接选择在视图中居中
只有竖屏的情况下 把sizeClasses改为any,any.
preView状态下实时检测约束是否正确
下面有个加号可以直接添加
基本就可以搞定了

惊奇的发现拖进去的图片算是项目源文件,在Bundle文件夹下,而下载保存的图片一般放在Data/documents文件夹下

终端里按tab键直接出来
按↑↓切换出之前的
cd space 把文件拖到终端
./执行某个文件

if不加花括号就是一行的作用域

iPad和iPhone的区别
ipadMini等比例缩放,不需要再另作适配
多了退出键盘的按钮
多了splitVC(少用)和popoverC(超高)
ipad3开始就是retina了
共有api差异:
actionSheet在中间
iphone只三个方向(不能上下颠倒)
ipad4个
最大的差异在于横竖屏适配

***像safari一样滑动隐藏navibar
self.naviController.hidesBarsOnSwipe=Yes;

1.要使用到c++的内容随便找个文件改为。mm即可
2.build setting
apple languageC++
C== language

关于MRC
通过引用计数器RetainCounter来进行内存管理。
被retain时,RC+1,被release,RC-1,
将其放入autoreleasePool里时,到池外就release了
storyBoard连线在controller里是weak,
两者持有对象时都要给对象的RC+1,就是因为不+1的话,A把对象release掉B就不能用了。
而因为storyBoard一直存在,持有对象的引用,所以不必担心这个问题,Controller给它weak就可以了。
Delegate属性也是weak。
原因也是对象本来就自己存在,自己管自己,不需要通过这个属性来持有它,所以也给weak
然后NSString 既可以给Strong也可以给copy
就是因为其RC是个超级大的值,retain,release都无所谓。

使用ARC时要注意的一些问题,比如用self.和实例变量都可以,但是一定要小心,要统一代码风格,不要一会儿self.一会儿_,不然容易循环引用。
block里面的self也要注意,不要循环引用。

验证是否是合法的邮箱地址

-(BOOL) NSStringIsValidEmail:(NSString *)checkString
{
   BOOL stricterFilter = YES; // Discussion 
   NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
   NSString *laxString = @".+@([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
   NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
   NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
   return [emailTest evaluateWithObject:checkString];
}

masonry轻量级的布局框架,优雅的链式语法封装自动布局,简洁明了可读性强

NSPredicate用于查询,相当于SQL的where,数据库的过滤

***很重要的关于block和AFNetWorking 的问题
AFNetWorking
想将networking里的responseObject解析后的数据传给其他值
不可以使用函数返回值
AFNetworking发起get请求后,请求成功的回调success与请求失败的回调failure会在子线程里执行,而你的return _dataArr会在主线程里执行,这种block的回调机制是异步执行的,虽然你把[_dataArr addObject:model];写在了return _dataArr前,你以为写在前面的就会先执行(同一个线程里会是那样),实际上这里这两句代码分属于不同的线程。在这里,先执行return _dataAr,所以返回的结果为空。
Block体只可以访问并修改全局变量,全局静态变量,局部静态变量,对象的成员变量,对象的属性,__block修饰的局部变量,其余的均只可访问,不能修改。

把文件夹拖到个人收藏拖过去就有快捷方式了

最好不要出现中文不要出现空格

你可能感兴趣的:(iOS笔记之每日心得2)