IOS學習筆記,ios學習資料

來源:互聯網
上載者:User

IOS學習筆記,ios學習資料

1.IOS的UI先建立的是UiViewController,以便對UIView進行管理,之後在進行建立的是UIView,每個UIView裡面再建立不同的UI控制項。

2.串連出錯,Terminating app due to uncaought exception 'NSUnknowKeyException', reason: '[<ViewController> setValue:forUndefinedKey:]: this class is not key value coding

3.所有屬性和方法聲明最好放在ViewController.m檔案的類私人擴充裡面。

4.transform屬性使用CGAffineTransformMakeTranslation()方法進行建立的時候會以初始狀態為基準,每次傳參數相當於重新賦值,僅僅只是以初始狀態作為參照,不進行疊加。可以使用自增或自減的變數作為參數或者使用CGAffineTransformTranslate(),它使用當前的transform作為參數然後返回一個新的transform,可以實現疊加。

5.transform的旋轉也是同樣的使用CGAffineTransformMakeRotation()方法只能有效一次。同上對應方法為CGAffineTransformRotate()。

6.同樣的transform也擁有放大縮小功能,使用的是CGAffineTransformMakeScale和CGAffineTransformScale方法。參數是x,y的比例,以1為原始比例。

7.copy : NSString;    strong : 一般對象;        weak : UI控制項;    assign : 基礎資料型別 (Elementary Data Type);

8.storyboard用來描述整個軟體的介面,xib用來描述局部的軟體介面。

9.property的括弧內每個欄位的作用
assign:簡單複製,不更改索引計數(Reference Counting),對應基礎資料類
copy:建立一個索引計數為1的對象,然後釋放舊的對象,對應NSString
retain:釋放舊的對象,將對象的值賦予輸入對象,再提高輸入對象的索引計數為1,對應其他NSObject和其子類
weak和strong的區別:當一個對象不在有strong型的指標指向它的時候,會被釋放,即使有weak型的指標指向它。一但最後一個strong類型指標離去,所有剩餘的weak型指標都會被清除。
copy和strong的區別:1.copy建立的是一個相同的對象,而retain不是。2.copy是內容拷貝,retain是指標拷貝。3.copy是內容的拷貝,對於NSString是這樣,但是如果是NSArray類型的,則只是copy了指向array中元素的指標,即“淺複製”。
atomic和nonatomic:atomic是一種線程保護技術,防止在寫未完成的時候被另一個線程讀取,如果沒有使用多線程則可以開啟nonatomic。

10.方法前面加好減號的作用????

11.xcode自訂程式碼片段@property (nonatomic, retain) <#type#> *<#name#>;
選中我們剛剛輸入的那段代碼,把它拖到Code Snippets Library中。
滾動到Code Snippets Library的最底部,找到一個花括弧上面帶個“User”文字的表徵圖。
單擊那個表徵圖,會彈出一個視窗。然後點擊視窗底部左邊的Edit按鈕
在Title和Completionshortcut這兩項中,輸入程式碼片段的標題和快速鍵。快速鍵用於啟用代碼提示,標題則會顯示在代碼提示中。此例中,我們輸入標題為“Objective-C @property retain”,快速鍵為“@property ”。
選擇對應的platform、language和Completion scope。然後點擊“Done”按鈕。
此例中,platform我們選All;language選Objective-C;Completion scope選Class Interface Methods。
Completion scope指定了啟用代碼提示的快速鍵的有效地區,比如這裡我們選的Class Interface Methods就是說明這段代碼的快速鍵在聲明類方法的地區才能啟用代碼提示;在其他任何地區,無論怎麼敲這個快速鍵,都不會出現這段代碼的提示。

12.ScrollView代理的實現:1.在某個類實現協議UIScrollViewDelegate。2.在該類可以實現代理中optional的方法。3.設定ScrollView.delegate = 該類。
好處:可以讓一個對象A監聽對象B狀態的改變,等同於對象A通知對象B自己狀態的改變。

13.OSI七層模型:物理層,資料連結層,網路層,傳輸層,會話層,展示層,應用程式層
    TCP/IP四層模型:主機到網路層,網路連接層,傳輸層,應用程式層

14.UiTableView可以直接設定rowHeight屬性來設定統一的行高。
而使用delegate協議實現heightForRowAtIndexPath方法則可以針對行號來設定行高。

15.UITableView在使用numberOfRowsInSection的時候會出現記憶體問題,因為該方法會在cell進入螢幕顯示範圍的時候進行調用,而如果一個對象多次進入螢幕顯示範圍,則該方法會給該資料多次開闢空間,雖然離開螢幕範圍的cell會自動銷毀,但是不斷得建立銷毀會給予cpu壓力。正確方法應該是在建立對象的時候去UITableView內建的緩衝池中尋找可用的cell,如果沒有找到可用的再開闢空間,如果找到則直接重新覆寫屬性,在建立以及尋找時需要reuseIdentifier這個屬性來辨別不同的cell。尋找的方法為UITableView內建方法dequeueReuseableCellWithIdentifier:

--------------------------------------手動分割線-----------------------------------------

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.