Почему новые классы ObjC не могут происходить из UIViewController? - PullRequest
0 голосов
/ 25 июля 2010

Итак, я делаю приложения для iOS с момента выхода первого iPod touch, но что-то меня всегда удивляло; почему список новых классов Cocoa Touch ограничен подклассами NSObject, UIView и UITableView? Я обычно делаю подклассы UIImageView и UIViewController.

Я делаю это неправильно ™? Я полностью не понял MVC до такой степени, что я делаю классы контроллера, где я не должен? Каково философское обоснование того, что классы никогда не должны сходить с базового класса контролера?

Ответы [ 3 ]

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

Хм ... может быть, это только я, но я вижу шаблон подкласса UIViewController, когда выбираю новый файл.

шаблон UIViewController http://files.me.com/aclark78/obnp83

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

Что дает вам идею, что вы не должны подкласс UIViewController?Это непосредственно из документации для UIViewController:

В типичном приложении для iPhone обычно есть как минимум один пользовательский подкласс UIViewController, а чаще всего их несколько.

Предполагается, что C из MVC является наименее пригодной для повторного использования частью, и вся его работа заключается в посредничестве между M & V. Если вы обнаружите что-то в разделе C вашего кода, то вам придется скопировать и вставить его в несколько подклассов.данного объекта или нескольких проектов, этот код должен быть перемещен в другое место.

Если вы просто основываетесь на том факте, что нет красивого всплывающего пункта меню, который говорит UIViewController, не беспокойтесь об этом Appleпросто еще не удосужился написать файл шаблона для этого класса.

0 голосов
/ 25 июля 2010

Как говорит @theMikeSwan, просто нет шаблонов GUI для этого, когда вы создаете новый класс в Xcode GUI. Но вы всегда можете создать новый подкласс, чьим родителем изначально является NSObject. После этого вы просто переходите к своему коду и меняете родительский класс на любой другой.

Итак ... нет, вы не ошибаетесь в том смысле, что правильно понимаете, что часто хотите создать подкласс UIViewController; но да, вы делаете это неправильно, так как вы предполагаете, что не должны делать это только потому, что Xcode GUI не поддерживает это:)

...