IOS要用到的零碎东西
2024-08-23 22:41:33
有些东西虽然不重要,但是零零碎碎会用到,就做个笔录吧:
协议中有2个关键字可以控制方法是否要实现(默认是@required),在大多数情况下,
用途在于程序员之间的交流
@required:这个方法必须要实现(若不实现,编译器会发出警告)
@required
- (void)test;
- (void)test2;
@optional:这个方法不一定要实现
@optional
- (void)test3;
@synthesize 的语义是如果你没有手动实现 setter 方法和 getter 方法,那么编译器会自动为你加上这两个方法。
@dynamic 告诉编译器:属性的 setter 与 getter 方法由用户自己实现,不自动生成。(当然对于 readonly 的属性只需提供 getter 即可)。假如一个属性被声明为 @dynamic var,然后你没有提供 @setter方法和 @getter 方法,编译的时候没问题,但是当程序运行到 instance.var = someVar
,由于缺 setter 方法会导致程序崩溃;或者当运行到 someVar = var
时,由于缺 getter 方法同样会导致崩溃。编译时没问题,运行时才执行相应的方法,这就是所谓的动态绑定。
最新文章
- 树莓派debian配置lamp【解决apache不显示php】
- Fragment要点复习
- Web 前端
- JAVA基础知识之JVM-——反射和泛型
- Android 子activity关闭 向父activity传值
- vc6静态库的生成和调用
- CSS中常用中文字体转Unicode编码表
- (转)反射发送实战(-)InvokeMember
- Oracle 更改用户名
- struts2官方演示程序总结struts2-blank
- VXLAN, 一种叠加在L3网络上的L2网络
- LINQ学习之旅 C#3.0新特性(一)
- RichEdit文字背景色的处理
- 解决linux更新apt软件源时报出GPG错误
- 深入浅出MongoDB应用实战开发
- 点分治&;&;动态点分治学习笔记
- nginx Beginner’s Guide
- APUE学习笔记——8.1-8.4 进程基础
- Android SurfaceFlinger
- 使用VisualSVN建立SVN服务器