代码块的调用
来源:互联网 发布:粤语听古仔软件下载 编辑:程序博客网 时间:2024/06/05 00:55
mian.m
#import <Foundation/Foundation.h>
#import "Login.h"
#import "Register.h"
int main(int argc,constchar * argv[]) {
@autoreleasepool {
Login *log=[[Loginalloc]init];
NSLog(@"gogo Login");
[log toRegister];
NSLog(@"Register");
NSLog(@"注册的信息是:用户名是:%@ 用户密码是:%@",log.userName,log.passWord );
}
return 0;
}
Login.h
#import <Foundation/Foundation.h>
@interface Login : NSObject
@property (nonatomic,strong)NSString *userName;
@property (nonatomic,strong)NSString *passWord;
-(void)toRegister;
@end
Login.h
#import "Login.h"
#import "Register.h"
@implementation Login
//跳转到注册界面
-(void)toRegister
{
NSLog(@"User no font,GO Register");
Register *reUI=[[Registeralloc]init];//定义Register类型的对象reUI
reUI.block=^(NSString *str1,NSString *str2){//调用Register中的代码块block 并将返回值str1 和str2接收
_userName=str1;//将名字和密码赋值
_passWord=str2;
};
//输入个人信息
[reUI printInfo];
[reUI toLogin];
}
@end
Register.h
#import <Foundation/Foundation.h>
#import "Login.h"
typedef void (^BlockType)(NSString *str1,NSString* str2);//定义代码块的类型
@interface Register : NSObject
@property (nonatomic,strong)NSString *rName;
@property (nonatomic,strong)NSString *rWord;
@property (nonatomic,strong)Login *lg;//定义Login类型的对象
@property (nonatomic,strong)BlockType block;//定义代码块对象
-(void)printInfo;
-(void)toLogin;
@end
Register.m
#import "Register.h"
@implementation Register
-(void)printInfo
{
_rName=@"listen to rain";
_rWord=@"123456";
}
-(void)toLogin
{
//把用户名和密码传递给登录界面
// [self.lg setUserName:_rName];
// [self.lg setPassWord:_rWord];
//等价
// _lg.userName=_rName;
// _lg.userName=_rWord;
NSLog(@"注册成功,返回登录");
_block(_rName,_rWord);
}
@end
代码的运行顺序是
main方法中的
[log toRegister];
跳转到Login方法中执行到
Register *reUI=[[Registeralloc]init]
调用Register中的方法将两个返回值赋值到代码块中之后
返回Login方法中
- 代码块的调用
- 构造代码块与静态代码块的调用时机
- 自动调用,代码块
- Java中的代码块系列1——静态代码块和构造代码块的调用机制
- Java构造函数、构造代码块和静态代码块的区别和调用时间
- 静态代码块、构造代码块与构造函数的调用顺序
- 关于静态代码块调用顺序的若干问题总结
- 静态代码块 代码块 构造函数调用顺序
- 代码块的使用
- 代码块的使用
- 代码块{}的使用
- 代码块的隐藏
- Java的代码块
- JAVA的代码块
- Java的代码块
- 代码块的学习
- 有用的代码块
- Java的代码块
- (java)Contains Duplicate II
- 关于反射中.getDeclaredContructor()返回构造方法顺序的问题
- leetcode刷题日记——Contains Duplicate
- gcc动态库及静态库
- Android进阶:PopupWindow详解
- 代码块的调用
- 修改 SVN 提交 LOG 默认编辑器
- 解决在Fragment中不能自动弹出软键盘的问题
- 开源框架之xUtils3.0使用
- 存储过程常用技巧
- 如何在Allegro中添加中文汉字
- CAAnimation动画/CAAnimation Group
- 黑马程序员--Java编程之反射篇
- 轻松学习JavaScript二十:DOM编程学习之获取节点