iOS学习——第五天
来源:互联网 发布:python twisted过时 编辑:程序博客网 时间:2024/05/18 00:49
1.@protocol:协议(相当于JAVA中的接口),可多继承(<protocol1,protocol2,…..>)
建立方式:
eg;在parent类中继承protocol
//MyProtocol.h
#import<Foundation/Foundation.h>
@protocol MyProtocol <NSObject>
-(void)fun1;
@end
//Parent.h
#import<Foundation/Foundation.h>
#import"MyProtocol.h"
@interface Parent :NSObject <MyProtocol>
@property (strong,nonatomic)NSMutableString *str;
-(void)fun1;//必须实现接口中的方法
@end
2.category
扩展现有类的方法,可利用被扩展类的对象调用扩展的方法
category只能添加方法,不能添加变量
建立方式:
catefory on Parent
建立好之后:
//Parent+MyCategory.h
#import"Parent.h"
@interface Parent (MyCategory)
-(void) test2;
@end
//Parent+MyCategory.m
#import"Parent+MyCategory.h"
@implementation Parent (MyCategory)
-(void) test2
{
NSLog(@"Category");
}
@end
//AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
Parent *p=[[Parent alloc] init];
[ptest2];//可调用扩展的方法
returnYES;
}
3.extension
//Parent.h
#import<Foundation/Foundation.h>
#import"MyProtocol.h"
@interface Parent :NSObject <MyProtocol>
@property (strong,nonatomic,readonly)NSMutableString *str;//成员变量的属性定义为readonly
-(void)fun1;//必须实现接口中的方法
@end
//Parent.m
#import"Parent.h"
@interfaceParent()
@property (strong,nonatomic,readwrite)NSMutableString *str;//在自己的成员变量的属性改为readwrite,这样就可以对外暴露readonly,但内部可修改
@end
@implementation Parent
-(void) fun1
{
self.str=[[NSMutableStringalloc]initWithString:@"test"];//可修改
}
@end
方法不可以通过此方法保护,只要实现了方法就一定可以被调用
- iOS学习——第五天
- iOS学习——第五天练习
- 学习IOS的第五天
- java学习总结——第五天
- spring4学习日记——第五天
- C语言学习第五天—递归
- IOS 学习第五天 对象初始化
- iOS-学习笔记-UI-第五天
- IOS第五天——循环和条件语句
- iOS 第五天
- OpenStack学习笔记————第五天
- Android学习第五天————AdapterViewFlipper组件
- 8天学习MongoDB——第五天 主从复制
- 《30天自制操作系统》学习笔记——第五天
- Java基础学习第五天——方法与数组
- Java进阶学习第五天——XML入门
- python第五天学习记录——模块
- 我的html学习——第五天
- 项目生产环境下 log4j 和spring MVC视图解析viewResolvers的配置
- OpenNMS架构介绍
- mysql的root密码忘记解决方
- 表格的边距 边框设置
- POJ 1039 Pipe
- iOS学习——第五天
- py mysql 操作(增删改查)
- 用myeclipse创建servlet
- DUILIB库笔记:消息的路由
- 在电脑上android虚拟机如何安装apk文件
- HDU 1403 Longest Common Substring(后缀数组 最长公共子串)
- Notification 恢复到最后显示的Activity
- Android 添加了外部jar包,为什么运行时还是报java.lang.ClassNotFoundException。。。
- 操作系统实验_lru