本文共 4474 字,大约阅读时间需要 14 分钟。
在 iOS 中,决定 OC 的方法签名的因素有
而与方法的返回值、参数类型无关。
两者不会相互影响,推送通知时的参数指定了是类或者类的实例对象接收通知,因为在方法签名的影响因素中,方法类型是其中一个因素,所以当两个方法的方法名称相同,参数个数相同,方法类型不同时,那么这两个方法是不同方法。
两个文件中相同的类扩展不能有同名的变量,可以有相同名称的属性,但是该属性在.h文件中必须是只读的,而在.m文件中必须是可读可写的。
可知,在哪个线程推送的通知,监听到该通知的对象的方法就在哪个线程执行,并且当一个对象注册了多少次相同的通知时,其不会覆盖,推送一次通知时,注册的方法就会执行多少次。
^
必须在括号内且在 block 返回类型之后,而变量名在符号 ^
之后或者在声明语句的最后,声明时,返回类型不可省略,参数可为空,但参数的括号不能省略;^
必须在定义语句的开始位置,之后的返回值类型和参数均可省略;NSString * a = ^ NSString *(NSString *string){ return string;}(@"hello world");
测试代码如下:
- (instancetype)init{ self = [super init]; if (self) { self = [[[NSBundle mainBundle]loadNibNamed:@"TestView" owner:nil options:nil]lastObject]; } [self.button addTarget:self action:@selector(btnClicked2:) forControlEvents:(UIControlEventTouchUpInside)]; [self.button addTarget:self action:@selector(btnClicked1:) forControlEvents:(UIControlEventTouchUpInside)]; [self.button addTarget:self action:@selector(btnClicked2:) forControlEvents:(UIControlEventTouchUpInside)]; return self;} - (IBAction)btnClicked3:(id)sender{ NSLog(@"%s",__FUNCTION__);} - (IBAction)btnClicked4:(id)sender{ NSLog(@"%s",__FUNCTION__);}- (IBAction)btnClicked2:(id)sender{ NSLog(@"%s",__FUNCTION__);}- (IBAction)btnClicked1:(id)sender{ NSLog(@"%s",__FUNCTION__);} - (IBAction)abtnClicked3:(id)sender{ NSLog(@"%s",__FUNCTION__);} - (IBAction)btnClicked0:(id)sender{ NSLog(@"%s",__FUNCTION__);} -(IBAction)btnClicked33:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)btnClicked33333333:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClicked4:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClickedb:(id)sender{ NSLog(@"%s",__FUNCTION__);} -(IBAction)bbtnClickedbb:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClickedbbbbb:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClicked123bb:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClicked1245bbbbb:(id)sender{ NSLog(@"%s",__FUNCTION__);} -(IBAction)bbtnClicked123bbbbbb:(id)sender{ NSLog(@"%s",__FUNCTION__);}-(IBAction)bbtnClicked1235bbbbb:(id)sender{ NSLog(@"%s",__FUNCTION__);}
测试结果如下:
2017-03-19 00:20:51.182 MyfirstIOSAPP[2334:165227] -[TestView abtnClicked3:]2017-03-19 00:20:51.183 MyfirstIOSAPP[2334:165227] -[TestView bbtnClicked1235bbbbb:]2017-03-19 00:20:51.183 MyfirstIOSAPP[2334:165227] -[TestView bbtnClicked123bb:]2017-03-19 00:20:51.184 MyfirstIOSAPP[2334:165227] -[TestView bbtnClicked123bbbbbb:]2017-03-19 00:20:51.184 MyfirstIOSAPP[2334:165227] -[TestView bbtnClicked1245bbbbb:]2017-03-19 00:20:51.184 MyfirstIOSAPP[2334:165227] -[TestView bbtnClicked4:]2017-03-19 00:20:51.184 MyfirstIOSAPP[2334:165227] -[TestView bbtnClickedb:]2017-03-19 00:20:51.185 MyfirstIOSAPP[2334:165227] -[TestView bbtnClickedbb:]2017-03-19 00:20:51.185 MyfirstIOSAPP[2334:165227] -[TestView bbtnClickedbbbbb:]2017-03-19 00:20:51.185 MyfirstIOSAPP[2334:165227] -[TestView btnClicked0:]2017-03-19 00:20:51.185 MyfirstIOSAPP[2334:165227] -[TestView btnClicked33333333:]2017-03-19 00:20:51.186 MyfirstIOSAPP[2334:165227] -[TestView btnClicked33:]2017-03-19 00:20:51.186 MyfirstIOSAPP[2334:165227] -[TestView btnClicked3:]2017-03-19 00:20:51.186 MyfirstIOSAPP[2334:165227] -[TestView btnClicked4:]2017-03-19 00:20:51.187 MyfirstIOSAPP[2334:165227] -[TestView btnClicked1:]2017-03-19 00:20:51.189 MyfirstIOSAPP[2334:165227] -[TestView btnClicked2:]
转载地址:http://ptdws.baihongyu.com/