2013-02-28 32 views

回答

3

一個對象是實際嵌入在筆尖中的東西。

一個外部對象是加載nib承諾在加載時提供的代碼(我相信通過將鍵映射到外部對象的字典)。

除了文件所有者(已經爲您提供)之外,大多數人從不使用任何外部對象。你幾乎肯定只需要對象。

+0

時,我會用每能否請您提供例如:

您可以使用下面的代碼連接代理對象的廈門國際銀行? (只是想法不代碼)。謝謝。 – RCB 2013-02-28 19:16:54

+1

@RCB:幾乎所有的筆尖都是某種物體。如果要嵌入IB不知道的類的對象,則可以使用字面值對象。您可以通過編輯新對象的Class值來完成此操作。直接使用對象並不常見。至於外部對象,你可能不需要這樣做。 – 2013-02-28 19:51:40

6

添加到其他答案: 您可以使用'外部對象'來訪問跨多個xib的通用對象。你也可以用其他方式做到這一點,但這會很方便。

舉個例子,如果你有一個'大'行動來執行多個xib的按鈕點擊,並且如果你有很多這樣的動作(另外如果它是你執行這個動作的相同數據),而不是調用addTarget:action...,您可以創建該類的代理對象並將其連接到按鈕。

id *proxy = <someObject>; //The object you want to wire up 
//In the below line of code use the same key as the identifier you give for the proxy object in the Interface Builder 
UINib *nib = [UINib nibWithNibName:@"ViewController" bundle:Nil]; 
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:proxyObject,@"proxy", nil]; 
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:dict,UINibExternalObjects, nil]; 
NSArray *nibArray = [nib instantiateWithOwner:self options:dict2]; 
self.view = [nibArray objectAtIndex:0]; 
相關問題