In Objective-C, there's a sort of hackish way to create private methods, in the .m file:
@interface FooClass (PrivateMethods)
- (void) doBar:(id)barAction withBaz:(id)bazAction;
@end
This works great for methods. I tried to do the same with a property:
@interface BarClass (PrivateMethods)
@property (nonatomic, strong) BazObject *myBaz;
@end
@implementation BarClass
@synthesize myBaz = _myBaz;
[...]
@end
This brought a compile warning: Property declared in category 'PrivateMethods' cannot be implemented in class implementation. I tried to move my property into a category:
@implementation BarClass (PrivateMethods)
@synthesize myBaz = _myBaz;
@end
Then: @synthesize is not allowed in a category's implementation.
The obvious answer is "quit trying, just use ivars", but I've been told by people at Apple that they've (personally) moved to entirely using properties. The safety they bring (like safety on a gun, harder to shoot yourself in the foot) makes me all happy inside, so is there any way to do this without resorting to naked ivars?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With