上周五老陆给我们讲了阿里All in无线的战略,让我有点情绪激动,有点看到曙光的感觉,也深感庆幸年初转向无线领域的正确性,也情不自禁地写了这个“软文”。
之前读《浪潮之巅》感觉任何伟大的公司都有可能有衰落的一天,比如A&T、HP、Nokia和Moto,现在互联网时代更加加速了这个衰败过程,以至于阿里在这个看上去的盛世就开始感到危机重重,几位老大寝食难安,深感如果不在无线上站稳脚跟就等于步入死亡,并且死期不远。
Google很可怕,微信更可怕,阿里如果不能把持住移动端的入口,做任何事情就等于在自掘坟墓,这样也就自然而然地把来往和云OS放在了首要的战略位置,整个阿里都投进来做这个,我就不相信做不成。
阿里向无线的大转型也可以类比到我们技术人员对将来发展的判断,我们技术人员能拿多少薪水在很大程度上取决于所走的技术路线。从传统的PC端软件开发到互联网,再到现在的移动互联网,每次技术革命都会淘汰一批人,也会成就一批人,曾几何时当年毕业时选择去金蝶和用友的同学是多么风光,做ERP等大型企业系统是多么的高端大气上档次,但后来呢,如果他们没有转向互联网,估计现在活得也蛮苦逼的,普遍待遇是没法和几个互联网公司比的,因为只有在互联网公司技术才更有价值,技术人员才更值钱。后来做互联网的现在又会有同样的危机,如果不转向做无线,也会有同样当年做传统软件的风险,因此,技术人员需要对市场有个判断,需要有与时俱进的态度,不会有一招吃遍天的银弹了。现在还在做PC端产品线的阿里同学们都需要学习无线技术,都需要加入这个潮流的变革中。这是个信号,我也就顺便发出来,提醒更多的朋友。
现在想想移动OS的开发技术一定会成为热点和主流技术,特别是web-based OS,所以真的有必要把这个群体弄得更大一些,大家一起多多探讨这个领域,不至于让它过于高端和神秘。搞了一个“来往”扎堆(类似微信群的概念,但可以加到500人),还是蛮适合这个主题的讨论,对移动OS的开发技术和阿里无线发展的朋友可以加入进来,大家多多探讨,我也会把阿里云OS的最新进展拿出来给大家分享。安装了来往的人可以直接扫描以下二维码加入进来。
安装来往可以访问http://www.laiwang.com/
协议就相当于是C++中的纯虚基类,它只能定义函数并且只能由其他类来实现。而委托则类似于Java接口,其实协议和委托之间并无必然联系,只是在Obj—C中常用协议来实现委托。
protocol-协议,就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。
delegate-委托,顾名思义就是委托别人办事,就是当一件事情发生后,自己不处理,让别人来处理。
注意以下几点:
1.协议声明了可以被任何类实现的方法;
2.协议不是类,它是定义了一个其他对象可以实现的接口 ;
3.如果在某个类中实现了协议中的某个方法,也就是这个类实现了那个协议。
4.协议经常用来实现委托对象。
5.在协议的声明中的特性关键字:
@optional预编译指令:表示可以选择实现的方法
@required预编译指令:表示必须强制实现的方法
下面来举个栗子:
1)一个人(custom)去饭店吃饭,custom要下订单-(void)ordor;,这时候waiter来了,为cumstor服务。
2)当custom吃晚饭要付款了-(void)pay;,这是后waiter过来收款,custom付款。
首先先创建一个协议
#import <Foundation/Foundation.h> @protocol Manager <NSObject> @required -(void)order;//下订单 -(void)pay:(int)x;//付款 @end
首先是一个顾客类,由于顾客要将服务的事情都交给服务员处理,所以在让顾客实现Manager这个协议,成为委托人,以下是头文件:
#import <Foundation/Foundation.h> #import "Manager.h" @interface Custom : NSObject<Manager>//引入协议的概念 @property (nonatomic,weak) id delegate; @end以下是.m文件:
#import "custom.h" @implementation Custom @synthesize delegate=_delegate; -(id)init{ if (self=[super init]) { // } return self; } -(void)order{ [_delegate order];//让接受委托的人去执行订单任务 } -(void)pay:(int)i{ [_delegate pay:i];//让接受委托的人去执行收款的任务 } @end
然后,我们来实现服务员的类,导入"Manager.h"这个协议的头文件,实现协议中的方法
#import <Foundation/Foundation.h> #import "Manager.h" @interface Waiter : NSObject @end
以下是.m文件:
#import "waiter.h" @implementation Waiter -(id)init{ if (self=[super init]) { // } return self; } -(void)order{ NSLog(@"服务员过来为顾客服务\n"); } -(void)pay:(int)i{ NSLog(@"服务员过来收钱:%d\n",i); } @end
#import <Foundation/Foundation.h> #import "custom.h" #import "waiter.h" int main(int argc, const char * argv[]) { @autoreleasepool { Waiter * w=[[Waiter alloc] init]; Custom * c=[[Custom alloc] init]; c.delegate=w; [c order]; [c pay:1000]; // insert code here... NSLog(@"Hello, World!"); } return 0; }
Office Professional 2010正式版-三步破解激活