Ответ 1
По умолчанию не существует разницы между двумя разными шаблонами, кроме кода, который они помещают в файл. Как вы заметили, оба они имеют одинаковое расширение, и они оба являются текстовыми файлами - компилятор не относится к ним иначе.
Общее правило состоит в том, чтобы импортировать модуль только в том случае, если он вам нужен в этом файле - в основном, если вы получите ошибку компиляции в противном случае. Вы получите ошибку компилятора из-за отсутствия импорта, если попытаетесь использовать из них типы.
Фонд
Фонд - это, в основном, стандартная библиотека разработки Apple, реализованная в Objective-C. Он включает такие типы данных, как NSArray, NSString и NSDictionary. Однако Swift предоставляет замены для этих типов данных: Array, String и Dictionary. Вам нужно только import Foundation
в файлах, которые пытаются взаимодействовать с API-интерфейсом Objective-C. Однако, поскольку все существующие API написаны в Objective-C (так как Swift является настолько новым), вам придется импортировать Foundation почти во все файлы, кроме базовых объектов домена.
UIKit
UIKit фактически включает Foundation. Если вы импортируете UIKit, вам не нужно также импортировать Foundation. UIKit - это набор стандартных API, специфичных для интерфейса iOS. Он включает в себя такие виды, как UITableView и контроллеры, такие как UIViewController. Вам нужно будет это делать при работе с пользовательским интерфейсом iOS-приложений.
Cocoa Класс касания
Этот шаблон полезен для классов подкласса из UIKit и потенциально имеет Xcode для создания файлов построителя интерфейса для вас. Если вам не нужна ни одна из этих вещей, вы должны просто использовать шаблон Swift Class. Только ваш объект наследуется от NSObject, если вам действительно нужно (если вам нужно использовать свой класс Swift от Objective-C). Если вы не наследуете NSObject, есть дополнительные оптимизации, которые может сделать компилятор, и он избегает некоторых из более медленных частей среды выполнения Objective-C.