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 將對象的拷貝賦給引用 拷貝完是不可改變的