Objective-C property that is readonly publicly, but has a private setter Objective-C property that is readonly publicly, but has a private setter objective-c objective-c

Objective-C property that is readonly publicly, but has a private setter


I think what you're looking for are called class extensions. You would declare the property read-only in the header:

@interface MyClass : NSObject {}@property (readonly, assign) NSInteger myInteger;@end

Then redeclare in your class extension in the implementation file:

@interface MyClass ()@property (readwrite, assign) NSInteger myInteger;@end@implementation MyClass@end

For more check out Apple's documentation


I might be late, but without extension i did using the following technique

@interface MyClass : NSObject { NSString * name;}@property (readonly, strong) NSString * name;@end

on the other hand in implementation file

@implementation MyClass @synthesize name; - (id)initWithItems:(NSDictionary *)items {self = [super init];if(self){   name = @"abc";}return self;}@end

doing so it will set your value and will be accessible as readonly.Thanks.