2014-12-21 2 views
0

У меня есть PlayViewController.swift, и он просто слишком длинный. Я добавил новый быстрый файл «Options.swift» и вырезал некоторые функции из PlayViewController.swift в Options.swiftФайл контроллера моего представления слишком длинный, как поместить некоторые функции в отдельный быстрый файл

Теперь, когда я запускаю проект, он дает ошибку «Использовать неразрешенный идентификатор» на функциональные вызовы

Также любые вызовы элементов ui в playcontroller с помощью self. дать 'использование неразрешенного идентификатора' self '

что мне не хватает?

+0

Ну, 'self' действует только в классе, поэтому, если вы вырвите некоторые методы и переместите их в другой файл (тем самым сделав его функциями),' self' станет неопределенным. И места, где вы называете методы, которые теперь являются функциями, не могут быть решены, поскольку компилятор не знает, где находятся определения. Однако, не видя кода, это немного угадающая игра. Если вы публикуете свой код, сообщество может дать гораздо более точную помощь быстрее. – 11684

ответ

3

Что вы хотите сделать, это написать extension в PlayViewController в другом файле. Таким образом, другой файл будет выглядеть следующим образом:

extension PlayViewController { 
    // ... stick your functions (i.e. methods) here 
} 

Это использование расширения, как способ распространения определению класса над более чем один файл, вполне законно и часто.

+0

хороший. я сделал то, что мне нужно. – Kashif

+0

Хотя обратите внимание, что вы не можете объявлять свойства в расширениях Swift (если не использовать 'objc_setAssociatedObject'), что немного раздражает меня, когда я хочу разорвать объявление огромного класса. – franklsf95

Смежные вопросы