One solution (and highly controversial) solution is to convert you class into a singleton implementation and then convert all static methods into regular methods.
EG if you had a class called FileManager and in there you had a method which looked like
+ (NSString *) getDocumentsDirectory
and for whatever reason you wanted to call a nonstatic method from inside there you would need to change your implementation to be something like this
+ (FileManager *)sharedInstance {
// Singleton implementation
static FileManager* instance;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[FileManager alloc] init];
});
return instance;
}
- (NSString *) getDocumentsDirectory
And instead of calling
[FileManager getDocumentsDirectory];
you would call
[[FileManager sharedInstance] getDocumentsDirectory];
There are several reasons as to why you wouldn't want to create a singleton, however, that is beyond the scope of my response :).