Есть ли способ создать файл NIB программно? - PullRequest
1 голос
/ 27 июля 2010

Я знаю, что легко создать файл NIB с помощью конструктора интерфейса, но мне было интересно, есть ли способ архивировать существующий UIView в NIB для использования позже.

Похоже, что файл NIB - это просто особый тип пакета, в котором каждый из объектов UIView архивируется с использованием NSCoding, но я не могу найти больше информации, кроме этого. Все ресурсы, которые я нашел, говорят об использовании конструктора интерфейса для создания правильного файла NIB.

Любая помощь будет оценена!

Ответы [ 2 ]

1 голос
/ 04 августа 2012

@ Yuji .. ваш ответ НЕПРАВИЛЬНЫЙ.«Перо» и «вид» похожи на идентичных близнецов, у которых разные «взгляды».По сути, они абсолютно одинаковы ... и их могут заставить делать то же самое одинаково ... но они родились в разных больницах и живут в отдельных семьях.

Что происходит, когдаВы «архивируете» .. или «копируете» представления по своей сути и по своей сути те же, что и IB, используя различные и часто неправильно понимаемые способы и средства encode и decode, withCoder, то есть

- (id)initWithCoder:(NSCoder*)coder {
    if ((self = [super initWithCoder:coder])) {
    backgroundColor = [coder decodeObjectForKey:@"backgroundColor"];
    uniqueID = [coder decodeObjectForKey: @"uniqueID"];
    [self updateTrackingAreas];
    if (something) [self addSubview:atv];
}   return self; }
- (id)copyWithZone:(NSZone *)zone; { return self; }
- (void) encodeWithCoder:(NSCoder *)aCoder {
   [aCoder encodeObject:backgroundColor forKey:@"backgroundColor"];
   [aCoder encodeObject:uniqueID forKey:@"uniqueID"];
   [aCoder encodeObject:file forKey:@"file"];
   [aCoder encodeObject:atv forKey:@"atv"];     
   [aCoder encodeBool:hasText forKey:@"hasText"];
}

Это просто schlemiel schlomozel такая вещь ... разные штрихи для разных людей. Xcode - это компилятор , который гораздо лучше читает какой-то сумасшедший XML , чем мы (в то время как NIB), в то время как мы привыкли иметь руку с Objective C.Различные средства для достижения одного и того же результата.

Вы думаете, что XCode шептал сладкое ничто ассемблеру, о котором вы не знали? Не ревнуйте!

1 голос
/ 27 июля 2010

Боюсь, ты не сможешь.Вы можете заархивировать UIView в любой файл, но не можете использовать его как файл пера.

Вы можете вывести содержимое файла пера в код Objective-C, используя nib2objc , но я думаю, это не то, что вы хотите.

...