2015-08-27 1 views
1

Я использую последнюю версию Typhoon версии 1.x, которая поддерживает определение XML. Каждый раз, когда появляется новая версия бета-версий iOS, наша реализация Typhoon начинает разрушаться. Обычно от iOS GM, большинство вопросов уходит, или мы находим законным.Typhoon - Создание контроллеров представления с помощью initWithNib - XML ​​

Одна проблема, возникшая несколько раз (и всегда разрешенная), заключается в нашем построении контроллеров представлений. Мой вопрос заключается в том, есть ли лучший способ определить XML (я просто обеспокоен тем, что одна из этих версий iOS навсегда нарушит наш код). Контроллер моего представления определяется как:

<component class="MyViewController" key="my_view_controller"> 
    <initializer selector="initWithNibName:bundle:"> 
     <argument parameterName="nibName" value="MyNibName" required-class="NSString" /> 
    </initializer> 
</component> 

Есть ли лучший способ определить этот инициализатор? Я понимаю, что один аргумент передается методу с двумя аргументами. Мне нужно, чтобы второй аргумент был «ноль», и я понимаю, что, оставив его пустым, в конечном итоге используется «nil». Но каждый раз, начиная с бета-версии 2 или 3 нового iOS, эти контроллеры представлений начинают ломаться. В настоящее время с iOS9 и бета-версиями 6 это исправлено снова, но есть ли лучший способ сделать это?

ответ

0

В Typhoon 2.x и в дальнейшем можно (и необходимо) вводить nil явно, поскольку не указывая аргумент, больше не подразумевается nil. Это поможет предотвратить ошибки конфигурации.

Для вашего конкретного случая использования, я считаю, что nil здесь подразумевает, что `[NSBundle mainBundle] должен использоваться. Поэтому было бы целесообразно определить определение для основного пакета и ввести его.

<component class="NSBundle" key="mainBundle"> 
    <initializer selector="mainBundle"/> 
</component> 
Смежные вопросы