В чем разница между объектом и внешним объектом в IB?
Когда я должен использовать каждый из них?
Объект против внешнего объекта в XCode Interface Builder
Ответы:
Добавление к другому ответу: вы можете использовать «Внешний объект» для доступа к общему объекту через несколько xib. Можно было бы сделать это и другими способами, но это было бы удобно.
Например, если у вас есть «большое» действие, которое необходимо выполнить для нажатия кнопки на нескольких xib, и если у вас много таких действий (и, кроме того, если это те же данные, над которыми вы выполняете это действие), вместо вызова addTarget:action...
вы может создать прокси-объект этого класса и подключить его к кнопкам.
Вы можете подключить прокси-объект к вашему xib, используя следующий код:
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];
Объект — это то, что фактически встроено в перо.
Внешний объект - это тот, который код, загружающий перо, обещает предоставить во время загрузки (я полагаю, через словарь, который сопоставляет ключи с внешними объектами).
Большинство людей никогда не используют никаких внешних объектов, кроме владельца файла (который уже предоставлен вам). Вы почти наверняка просто хотите Objects.