2018-4周-iOS工作杂技

作者: Corbin___ | 来源:发表于2018-01-30 09:19 被阅读16次

2018-4周

一、objc_getAssociatedObjectobjc_setAssociatedObject

主要是创建分类的时候用到,但是要注意的是,如果分类创建的属性是NSSArray...之类的,需要创建对象的,那么分类这个属性的get方法应该这样写

- (NSMutableArray *)array
{
    NSMutableArray *array = objc_getAssociatedObject(self, @"array");
    if (!array) {
        array = [[NSMutableArray alloc] init];
        self.array = array;
    }
    
    return array;
}

- (void)setArray:(NSMutableArray *)array
{
    objc_setAssociatedObject(self, @"array", array, OBJC_ASSOCIATION_COPY_NONATOMIC);
}

二、mutableCopy和copy

mutableCopy:浅复制,指针复制
copy:深复制,内存复制
总结:

  • mutable contaniner classes:copy、mutableCopy都会create a memery , but the copy return an immutable object
  • imutable contaniner classes:copy don't create a memory , only point to the original object address.

三、NSDecimalNumber

NSDecimalNumber is the subclass of NSNumber.
It is mainly used to solve the lack of precision.

四、代理要继承<NSObject>协议

调用代理的可选方法,经常要用到respondsToSelector,这个是<NSObject>协议里面的

if ([self.delegate respondsToSelector:@selector(ViewControllerBsendValue:)])
    {
        //如果协议响应了ViewControllerBsendValue:方法
        //通知代理执行协议的方法
        [_delegate ViewControllerBsendValue:_textField.text];
    }

五、static、extern、const

  • static关键字修饰局部变量:
    1:当static关键字修饰局部变量时,该局部变量只会初始化一次,在系统中只有一份内存
    2:static关键字不可以改变局部变量的作用域,但是可延长局部变量的生命周期,该变量直到整个项目结束的时候才会被销毁

  • static修饰的全局变量:作用域仅限于当前文件,外部类不可以访问到该变量

  • extern:引用关键字,当某一个全局变量,没有用static修饰时,其作用域为整个项目文件,若是在其他类想引用该变量,则用extern关键字,例如,想引用其他类的全局变量,int age = 10;则在当前类中实现,extern int age;也可以在外部修改该变量,extern int age = 40;,若某个文件中的全局变量不想被外界修改,则用static修饰该变量,则其作用域只限于该文件

  • const修饰的指针不能再次赋值

int * const p = NULL;
int a = 20;
*p = &a; // 编译器报错

六、clipsToBounds

具体的说,就是当它取值为 YES 时,剪裁超出父视图范围的子视图部分;当它取值为 NO 时,不剪裁子视图。
默认值为 NO,但是在 UIScrollView 中,它的默认值是 YES,也就是说默认裁剪的。

七、CGRectGetMinX、CGRectGetMaxX、CGRectGetMinY、CGRectGetMaxY

  • CGRectGetMinX方法的作用得到目前view在当前屏幕中相对于整个View的最小值(位于屏幕的最左边)
    其实 CGRectGetMinX = view.origin.x

  • CGRectGetMaxX方法的作用得到目前view在当前屏幕中相对于整个View的最大值(位于屏幕的最右边)
    其实 CGRectGetMaxX = view.origin.x + view.size.width

  • CGRectGetMinY方法的作用得到目前view在当前屏幕中相对于整个View的最小值(位于屏幕的最上边)

  • CGRectGetMaxY方法的作用得到目前view在当前屏幕中相对于整个View的最大值(位于屏幕的最下边)

八、故事版的属性不走get、set方法

相关文章

  • 2018-4周-iOS工作杂技

    2018-4周 一、objc_getAssociatedObject和objc_setAssociatedObje...

  • iOS杂技

    1. 这里是列表文本const(常量) extern static 等使用场景。 在其他类文件中要想访问全局常量 ...

  • 写在iOS工作3周年之际

    写在iOS工作3周年之际 时间飞快,不知不觉已经iOS入门3周年了。 说说自己的工作历程。 在工作了2年多的单位里...

  • 养老工作2年杂技

    时间总是过的太快,抓都抓不住,一晃又过了一年,回望这一年的点滴。 六十岁的阿姨,因一人在家长时间独立生活,孩子要工...

  • 关于濮阳杂技产业发展的调查与建议

    (一) 濮阳是中国杂技之乡,杂技文化源远流长,杂技演艺在国内外都有重要影响...

  • 一些iOS杂技术

    这里会记录一些没用的iOS技术,但或许会是有趣的。 1.关于向前声明 为避免循环引用,C 语言有一个前向声明的机制...

  • 杂技

    心里关着一头正在歇斯底里地狂叫着的巨兽在猛烈地冲击着牢笼,哐乓,哐乓。表面上却云淡风轻,哼着小曲化着妆,即使黑眼圈...

  • 杂技

    半夜渴求一杯水时,很自然想起床头边有水可以喝,就很幸福了。慢慢的,幸福于我而言,变得越来越容易。无论我身边事物的好...

  • 杂技

    cat /etc/shells说明: 显示 /etc/shells 文件内容,即列出当前系统可用shell GNU...

  • 杂技

    杂技剧《熊猫——寻梦之旅》是我兑换的最后一场演出。它是沈阳杂技演艺集团创排的2015年度国家艺术基金项目。 用杂技...

网友评论

    本文标题:2018-4周-iOS工作杂技

    本文链接:https://www.haomeiwen.com/subject/rcevaxtx.html