更改拆分視圖的上下分,左右分
菜單欄view下assistantEditor
拖進項目的文件夾一定要選new group。文件夾是黃色的才可以直接通過文件名到訪問,如果是藍色的要加上文件路徑才可以訪問
約束不要隨便添加,老是用addMissingConstrains應該想好邏輯之后再加就水到渠成了
約束中有aspectRatio很好用控制寬高比
還有選中多個水平豎直對齊
或者單個直接選擇在視圖中居中
只有豎屏的情況下 把sizeClasses改為any,any.
preView狀態下實時檢測約束是否正確
下面有個加號可以直接添加
基本就可以搞定了
驚奇的發現拖進去的圖片算是項目源文件,在Bundle文件夾下,而下載保存的圖片一般放在Data/documents文件夾下
終端里按tab鍵直接出來
按↑↓切換出之前的
cd space 把文件拖到終端
./執行某個文件
if不加花括號就是一行的作用域
iPad和iPhone的區別
ipadMini等比例縮放,不需要再另作適配
多了退出鍵盤的按鈕
多了splitVC(少用)和popoverC(超高)
ipad3開始就是retina了
共有api差異:
actionSheet在中間
iphone只三個方向(不能上下顛倒)
ipad4個
最大的差異在于橫豎屏適配
***像safari一樣滑動隱藏navibar
self.naviController.hidesBarsOnSwipe=Yes;
1.要使用到c++的內容隨便找個文件改為。mm即可
2.build setting
apple languageC++
C== language
關于MRC
通過引用計數器RetainCounter來進行內存管理。
被retain時,RC+1,被release,RC-1,
將其放入autoreleasePool里時,到池外就release了
storyBoard連線在controller里是weak,
兩者持有對象時都要給對象的RC+1,就是因為不+1的話,A把對象release掉B就不能用了。
而因為storyBoard一直存在,持有對象的引用,所以不必擔心這個問題,Controller給它weak就可以了。
Delegate屬性也是weak。
原因也是對象本來就自己存在,自己管自己,不需要通過這個屬性來持有它,所以也給weak
然后NSString 既可以給Strong也可以給copy
就是因為其RC是個超級大的值,retain,release都無所謂。
使用ARC時要注意的一些問題,比如用self.和實例變量都可以,但是一定要小心,要統一代碼風格,不要一會兒self.一會兒_,不然容易循環引用。
block里面的self也要注意,不要循環引用。
驗證是否是合法的郵箱地址
-(BOOL) NSStringIsValidEmail:(NSString *)checkString
{
BOOL stricterFilter = YES; // Discussion
NSString *stricterFilterString = @"[A-Z0-9a-z\\._%+-]+@([A-Za-z0-9-]+\\.)+[A-Za-z]{2,4}";
NSString *laxString = @".+@([A-Za-z0-9]+\\.)+[A-Za-z]{2}[A-Za-z]*";
NSString *emailRegex = stricterFilter ? stricterFilterString : laxString;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:checkString];
}
masonry輕量級的布局框架,優雅的鏈式語法封裝自動布局,簡潔明了可讀性強
NSPredicate用于查詢,相當于SQL的where,數據庫的過濾
***很重要的關于block和AFNetWorking 的問題
AFNetWorking
想將networking里的responseObject解析后的數據傳給其他值
不可以使用函數返回值
AFNetworking發起get請求后,請求成功的回調success與請求失敗的回調failure會在子線程里執行,而你的return _dataArr會在主線程里執行,這種block的回調機制是異步執行的,雖然你把[_dataArr addObject:model];寫在了return _dataArr前,你以為寫在前面的就會先執行(同一個線程里會是那樣),實際上這里這兩句代碼分屬于不同的線程。在這里,先執行return _dataAr,所以返回的結果為空。
Block體只可以訪問并修改全局變量,全局靜態變量,局部靜態變量,對象的成員變量,對象的屬性,__block修飾的局部變量,其余的均只可訪問,不能修改。
把文件夾拖到個人收藏拖過去就有快捷方式了
最好不要出現中文不要出現空格