DAY04 数组
复习网络
1 UIAlertView多线程
建立 initWithTitle:dom
message:函数
delegate:设置代理动画
cancelButton:atom
otherButtonTitle线程
设置警告框样式:代理
alert.alertView=枚举对象
显示
[alert show]
要想成为代理对象:
遵照协议 实现方法 设置委托方和某一代理方关联起来
判断用户点击的按钮
方法一:判断按钮的索引
方法二:判断按钮的标题
2. UIActionSheet
建立:
显示[sheet showInView:self.view]
代理对象
遵照协议<UIActionSheetDelegate>
实现方法
将代理对象与委托对象关联
3 MVC
Model 模型 数据的存储 程序的业务逻辑 多线程 网络传输 文件存储
View 视图 视图的搭建
Controller 控制器 搭起了M与V的链接
4 补充知识
4.1 IBOutletController输出口集合
在控制器中声明的一个数组(用Strong修饰)可是数组的对象来源于系统中建立的对象(对象是weak)
4.2 随机数的产生
C语言的一个函数arc4random()
随机数从0开始的一个无符号的正整数
特色:不须要设置随机种子
与srand(unsigned)time(0))
int nun=rand()%10的区别
4.3 Lazy Loading晚加载
将一些对象的初始化工做 从ViewDidLoad中提取出来,放到Get方法中进行 这样在这个对象不得不加载的时候才调用建立,而不是一开始View就建立出来。
4.4属相若是是ReadyOnly 能够在.m文件中extrntion里面设置属性可读可写
---------------------------------------------------------------------------------------------------------------------
1 多MVC之间的页面跳转
视图之间的切换时经过切换试图控制器来实现切换的
1》建立新的视图控制器
2》退出新的视图
[self presentViewController:新控制器 animated:是否有动画 completion:nil]
3》返回上一个视图
[self dismissViewControllerAnimated:YES copletion:nil];
2 对界面之间的传值
2.1正向传值(A----->B)
1》增长属性
2》赋值
3》界面展示以前在B中重写
-(void)viewWillAppear:(BOOL)animated方法
2.2 反向传值(B---->A)
方法一:
step1:B中公开一个能够接受A引用的aVc;
step2: A 中公开一个能够接受返回值的数据类型message
step3:A推出B以前 将本身的引用传给B
step4:B在dismiss 以前将要返回的数据传给持有A的引用中公开的属性message
step5:在A的ViewWillAppear中显示message的内容
方法二:
委托方:推出的B
代理方:推出B的那个对象A
委托方须要作的三件事:
1.制定协议
2.制定协议的方法
3.何时使用
代理方作的三件事:
1.遵照协议
2.实现方法
3.把本身设置为代理
3 协议的定义:
1》协议名:类名+Delegate
2》方法的第一个参数必定是委托方本身
3》方法尽可能体现调用的时机
Eg:
@protocol InputViewControllerDelegate <NSObject>
-(void)inputViewController:(InputViewController*)inputVc inputFinishedWithMessahe:(NSString*)message;
合适的时机给代理发消息
@end
添加一个公开的Delegate方法
@property(nonatomic,weak)id<BViewControllerDelegate> delegate;
5 扩展
在类内的initXX 、get、set中使用实例变量即下划线 其余地方都用self
内存修饰
copy :NSString、Block
copy 将对象的拷贝赋给引用 拷贝完是不可改变的