1.presentViewController和pushViewController區別:
presentViewController:與dismissViewControllerAnimated配對使用,不含有導航條
pushViewController:push后的控制器view顯示導航條
2.- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory方法理解:
作用:1.判斷path下文件是否存在
2.判斷是文件還是目錄(isDirectory是傳出參數,用于判斷是文件還是目錄)
3.創建block匿名函數之前一般需要對self進行weak化,否則造成循環引用無法釋放controller:
__weak MyController weakSelf = self 或者 __weak __typeof(self) weakSelf = self;
執行block方法體的時候也可以轉換為強引用之后再使用:MyController strongSelf = weakSelf; if (!strongSelf) { return; }
- 告訴tableView所有cell的高度是自動計算的(根據設置的約束來計算)
self.tableView.rowHeight = UITableViewAutomaticDimension;
5.對于@property關鍵字,在類中一般聲明私有成員變量以及setter和getter方法,而在分類中只會生成setter和getter方法
- (void)load{
NSLog(@"%f);
}訪問分類中的變量
6.Invalid operands to binary expression:類型不匹配,可能是整形變量定義時前面加了*
7.在類方法中,有些框架的方法不能被調用?(sd_setImageWithURL)
8.關于XMGViewController *vc = [[XMGViewController alloc] init]中的init方法小結:
init方法底層默認會調用initWithNibName方法,首先判斷nibName有沒有值,若有值,則直接加載nibName指定的文件,若沒有執行以下代碼:
1.若nibName為空,則加載與控制器同名的xib,XMGViewController.xib
2.若沒有與控制器同名的xib,則加載相似名稱的xib,XMGView.xib
3.若沒有與控制器相似名稱的xib,則系統默認創建一個空的view
9.當頁面跳轉,跳轉到的頁面無法設置背景色的時候可能是控制器沒有view
10.快速將項目提交到遠程代碼庫的方法:
1.在oschina創建代碼庫
2.利用xcode將遠程代碼庫check到本地初始化,本地化。
3.將已經創建的項目放到與git同級的目錄下,用xcode打開項目,然后點擊commit,并且同事勾選push一切就ok了。
11.layoutSubviews在以下情況下會被調用:
1、init初始化不會觸發layoutSubviews
但是是用initWithFrame 進行初始化時,當rect的值不為CGRectZero時,也會觸發
2、addSubview會觸發layoutSubviews
3、設置view的Frame會觸發layoutSubviews,當然前提是frame的值設置前后發生了變化
4、滾動一個UIScrollView會觸發layoutSubviews
5、旋轉Screen會觸發父UIView上的layoutSubviews事件
6、改變一個UIView大小的時候也會觸發父UIView上的layoutSubviews事件
12.動態語言與靜態語言的區別:
靜態語言的數據類型是在編譯時確定的,動態語言的數據類型是在程序運行時確定的.多數靜態語言在使用之前,必須聲明數據類型;
oc動態語言的三大特性:動態類型\動態綁定\動態加載