iOS SDK 4.3 學習筆記 iPhone101 (03)

來源:互聯網
上載者:User

關於 Connection

 
Connection 對我來說也是一個新概念。
 
我的理解是這樣的:
 
nib 檔中包含了所有的介面對象,但是這些對象響應使用者的操作是在 .m 檔案中的,這樣就需要一種機制,把 nib 檔中的對象和 .m 檔案中的方法及變數聯絡起來,這就是 connection 的作用。
而我們在建立 connection 的時候,也同時在 .m 和 .h 檔案中增加了相應的內容。 .h 和 .m 中的內容比較好理解,這裡就不提了。 nib 檔中的內容是我比較感興趣的部分。
 
先以按鈕行為為例。
在 nib 檔中,有這樣一段:
<object class="IBCocoaTouchEventConnection" key="connection">
   <string key="label">changeGreeting:</string>
   <reference key="source" ref="834966934"/>
   <reference key="destination" ref="372490531"/>
   <int key="IBEventType">7</int>
</object>
這是描述 changeGreeting 這個行為的。其中的 source 是 834966934 ,destination 是 372490531 。
我們可以找到:
<object class="IBUIButton" id="834966934">
這樣我們就清楚 source 是個按鈕了。
我們還可以找到:
<object class="IBProxyObject" id="372490531">
   <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
   <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
</object>
這樣我們就清楚 destination 是 IBProxyObject,也就是 IBFilesOwner。(我的理解是,這個就是 myViewController 。)
 
TextField 和 Lable 有些類似
<object class="IBCocoaTouchOutletConnection" key="connection">
   <string key="label">textField</string>
   <reference key="source" ref="372490531"/>
   <reference key="destination" ref="523173636"/>
</object>
 
<object class="IBCocoaTouchOutletConnection" key="connection">
   <string key="label">label</string>
   <reference key="source" ref="372490531"/>
   <reference key="destination" ref="651503596"/>
</object>
 
他們的 source 都是 myViewController,destination 分別是 IBUITextField 和 IBUILabel 。
<object class="IBUITextField" id="523173636">
<object class="IBUILabel" id="651503596">
 
View 是一個比較特殊的對象。
<object class="IBCocoaTouchOutletConnection" key="connection">
   <string key="label">view</string>
   <reference key="source" ref="372490531"/>
   <reference key="destination" ref="191373211"/>
</object>
他的 source 是 myViewController , destination 是 IBUIView 。
<object class="IBUIView" id="191373211">
   <reference key="NSNextResponder"/>
看字面意思好像是下一個 responder ,不是很理解這個東東。
 
還有一個 delegate 對象。
<object class="IBCocoaTouchOutletConnection" key="connection">
   <string key="label">delegate</string>
   <reference key="source" ref="523173636"/>
   <reference key="destination" ref="372490531"/>
</object>
他的 source 是 IBUITextField , destination 是 myViewController 。
這個也不大理解。


摘自 pingjiang2003的專欄

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.