摘要:
栈:存储值类型(有时候翻译成“堆栈”) 无ARC(自动引用计数)负担,由系统自动管理,以执行函数为单位(一个函数一个栈) 空间大小编译时决定(根据参数和局部变量可以确定) 函数执行时,系统自动分配一个栈 函数执行结束,系统会立即回收stack 函数之间通过拷贝值传递 具有局限性,大小有限额,超出会s 阅读全文
摘要:
结构体和类的共同点:都可以将多个数据封装为一个整体结构体和类的不同点: 结构体只能封装数据,而类还可以封装行为; 结构体实例是值类型,类实例是对象类型 结构体实例存储在栈空间,类实例存储在堆空间 结构体变量赋值是值拷贝,类实例赋值是指针引用 应用场景: 如果封装的这个数据,不仅有数据还有方法,只能使 阅读全文
摘要:
Target-Action: 目标-动作机制,所有的UIControl及子类都是这个机制;原理:在对象产生某个事件的特定时刻,给一个对象发送一个消息;类内部target去执行action方法 Delegate: iOS2.0以后出现,delegate配合protocol,delegate 是一对一的 阅读全文
摘要:
协议的构成: 协议:用来指定代理双方可以做什么,必须做什么。 代理:根据指定的协议,完成委托方需要实现的功能。 委托:根据指定的协议,指定代理去完成什么功能。 协议的修饰符: 协议有两个修饰符@optional和@required,创建一个协议如果没有声明,默认是@required状态的。这两个修饰 阅读全文
摘要:
block下循环引用的问题 __block本身并不能避免循环引用,避免循环引用需要在block内部把__block修饰的obj置为nil __weak可以避免循环引用,但是其会导致外部对象释放了之后,block 内部也访问不到这个对象的问题,我们可以通过在 block 内部声明一个 __strong 阅读全文
摘要:
结论: 1, 深复制与浅复制 2,immutable和mutable 3,代码分析: #pragma mark - String - (void)stringCopyAndMutableCopy { NSString *originStr = @"123"; NSString *copyStr = 阅读全文