------- android培训、java培训、期待与您交流! ----------
ios 中 protocol 代理 委托的理解
意义:代理委托给其他人做事
.h 在需要把数据传递出去的view进行协议的定义 比如
1:@protocol 进行定义
2:写入要实现的方法 changeMe:abc
3:用@property 进行属性的定义 比如 @property id<协议>delage;
.m 在这个适当的事件下去执行代理的命令 比如视图消失的时候
1:[self.delage changeMe:123];//实际上是给代理去做的事情 只是传递参数的命令
代理人:::::
1: 在.h的地方去做代理的实现接口 加上 <协议>;
2:在.m文件中设置对应的代理 [view delage]=self;
3:在.m文件中去实现具体方法 比如changeMe方法
ios中通知的用法
root在需要修改的视图 创建一条通知
[NSNoticationCenter defaultCenter]addObserver:self selector:@selector(chanlib:)name:@"mynoti" object:nil];
实现方法
-(void)chanlib:(NSnotification*)noti
{
id text=noti.object;
UILabel *la=(UILabel *)[self.view viewWithTag:11];
la.text=text;
}
model在需要数据传递时候的返回
[NSNoticationCenter defaultCenter]postNotificationName:@"mynoti" object:_text.text];
Block语句
Block的申明
int (^myBlocks) (int)
Block的创建
myBlocks=^(int a){
int result=a+a;
return result;
}
Block的调用
int ret =myBlocks(10);
//知识点1 作为参数
typedef int (^myblock)(int);
myblock block;
知识点2 引用变量
int number =20 //_block int number =20; 这样才可以用
myblock block=^(int a)
{
number =30; //错误
return 10;
}
内存管理
分配内存在寨上、所以对象进去会retain
加关键字_block 进里面将不在retain