2010-07-26 5 views
1

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

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

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

ответ

1

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

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

+0

Интересный проект, тем не менее! – djdrzzy

1

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

Что происходит, когда вы .. или представление «копия», «архив» в корне, и, по существу то же, что 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 шептал сладким нишам ассемблеру, о котором вы не знали? Не ревнуй!