为了快速掌握oc的基本语法,按照上面文章速度学习oc .大概用了4~5天时间。粗越了解下oc.只是粗越了解。
目的主要还是实践 这个 “学习理论”。并完善这个学习理论。
鬼知道以后还要学习多少语言呢?
1.数字处理:四则运算。
2.字符串处理:分割和组合。
3.集合处理:可变和不可变集合。 dictionary(oc没写例子)
4.对象和继承:人,雇员,老板, 放入集合并多态的表示他们的薪水和税收。
5.意图和实现的分离(事件):单个函数指针的实现(c风格和block)。一组函数指针的实现(protocal)
6.io的处理。没写
7.内存管理
// // main.m // practice // Created by liangshun on 18/5/30. // Copyright © 2018年 liangshun. All rights reserved. #import <Foundation/Foundation.h> //定义协议 @protocol ButtonProtocol <NSObject> -(void) onClick; @end //委托者 @interface MyButton : NSObject @property id<ButtonProtocol> ButtonDelegate; -(void) Click; @end //被委托者 @implementation MyButton -(void)Click { if([self.ButtonDelegate respondsToSelector:@selector(onClick)]) { [self.ButtonDelegate onClick];///调用意图,实际调用了某个实现 } } @end //1.协议,可集中提供一组接口,让一个实现协议的类来完成。而建立不同的实现类,来达到扩展的意图。 @interface ButtonDelegate_SubmitButton : NSObject <ButtonProtocol> @end @implementation ButtonDelegate_SubmitButton -(void) onClick { NSLog(@"first button function"); } @end @interface ButtonDelegate_SubmitButton2 : NSObject <ButtonProtocol> @end @implementation ButtonDelegate_SubmitButton2 -(void) onClick { NSLog(@"second button function"); } @end int main(int argc, const char * argv[]) { MyButton *submitButton=[MyButton new]; submitButton.ButtonDelegate=[ButtonDelegate_SubmitButton new]; [submitButton Click]; //新的协议实现类。添加一个协议类,并传给委托者。委托者可随意扩展不同的实现。 submitButton.ButtonDelegate=[ButtonDelegate_SubmitButton2 new]; [submitButton Click]; return 0; }