Для очень простого объекта, подобного этому:
@interface MyObject : NSObject
@property(strong) NSObject* thingAboutMyObject;
- (void) aThingToDo;
- (void) moreToDo;
- (void) yetAnotherAction;
@end
Кто-то, кто работает с MyObject, получает завершение кода, включающий все методы и свойства из NSObject. Имеет смысл, почему это происходит, но в большинстве случаев методы, которые мне больше всего нравятся, относятся к самому классу. Я хотел бы знать, есть ли способ создания класса, чтобы намекнуть на IDE xcode, что вы хотите "выделить" фактический интерфейс при работе с объектами класса.
Я видел несколько классов, которые, похоже, "обрабатывают" это, дублируя имя класса в определениях метода, так что они сортируются вместе в списке завершения, например:
- (void) myobjectAThingToDo;
- (void) myobjectMoreToDo;
- (void) myobjectYetAnotherAction;
Но это не похоже на особенно элегантное решение ([myObject myobjectAThingToDo]
) И оно ужасно ломается в ситуациях, в которых участвует полиморфизм.
Вот пример того, что такое "идеальное" решение. Я мог бы сделать официальный запрос функции, если кто-то не предоставит подходящую альтернативу. Но на данный момент он должен хотя бы уточнить, о чем я прошу.
Было бы здорово, если бы был намек на завершение кода, чтобы мой список завершения был сгруппирован по классу, например:
MyObject
- [M] aThingToDo
- [M] moreToDo
- [M] thingAboutMyClass
- [M] ещеAnotherAction
NSObject
- [M] accessibilityActivate
- [M] accessibilityActivation
- ...
Предположительно, более глубокая иерархия объектов могла бы просто отображать родительские классы в одном стиле, упорядочиваясь по принципу "близость" наследования. Список, подобный этому, может легко фильтровать по мере ввода и исключать группировки классов, которые не имеют совпадений.
Может ли кто-нибудь предложить решения, чтобы помочь с этим? Я сомневаюсь, что что-то, что делает ТОЧНО, что я хочу, но если есть хорошие способы довести классы к интерфейсу на первый план или, по крайней мере, получить NSObject, я бы хотел его услышать.