2016-03-02 2 views
1

Я открыл XCode проект, полученный в качестве учебника по Apple («Auto Layout Cookbook»), когда я нашел два файла со странным именованием:.swift имя файла, содержащего знак плюс

  1. Рецепт + Загрузка. скор
  2. Рецепт + Storyboards.swift

Оба содержат расширение под названием Рецепт. Я не смог найти никаких документов об этом названии.

Есть ли причина, по которой они назвали файлы таким образом?

+1

Это просто соглашение об обозначении категорий из эпохи ObjC («Категория _A обычно объявляется в отдельном файле заголовка и реализуется в отдельном файле исходного кода. В случае XYZPerson вы можете объявить категорию в заголовке файл XYZPerson + XYZPersonNameDisplayAdditions.h._ ") https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html – Alladinian

+0

@Alladinian: thanks! –

ответ

4

Именование происходит из Objective-C, где каждое расширение для класса требует имени. Например, класс Recipe может иметь расширение:

@interface Recipe (Loading) 
@end 

который содержит методы, связанные с «Загрузка». Такие расширения обычно помещались в файлы с именем Recipe+Loading.h (то есть класс Recipe, расширенный с помощью методов Loading).

В Swift-расширениях нет имени, но старые привычки умереть. Они использовали одно и то же имя для файлов.

+0

Это может быть способ избежать именования столкновений? В этом проекте в том же каталоге есть Recipe.swift, содержащий структуру рецепта, например –

+0

@IanBell. Если вы имеете в виду конфликты в именах файлов, то да. Это способ разделить реализацию на несколько файлов. – Sulthan

+0

Да, я имел в виду имена файлов :-) –

1

Это обычное соглашение об именах от Objective-C. Как вы догадались, в основном он содержит расширения до Recipe, которые относятся к загрузке и раскадровке соответственно. Это прежде всего способ разбить большие исходные файлы или расширения ярлыков на системные классы (String, Array и т. Д.).

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