I have a file called ViewMessages.m
which is becoming quite verbose. I'd like to refactor and put part of my methods into a separate file. It seems that Categories are the right way to go, so I've created a Category
on ViewMessages
called DataEngineViewMessages
It created 2 files, DataEngineViewMessages.h
and DataEngineViewMessages.m
My Question: Do I need to #import "DataEngineViewMessage.h"
in my original ViewMessage.h
or .m
in order to access my new methods?
Not into the .h file. The category header should import ViewMessages.h
, and if required the category header should be imported into ViewMessages.m
. This prevents any kind of circularity.
Usually you want to differentiate between category methods that should be public (defined in a header perhaps like ViewMessages+DataEngine.h
) and category methods that are for internal use (defined in a header perhaps like ViewMessages+Private.h
). The former shouldn't be included by ViewMessages
and the latter should (again, in the .m file).