I spotted this today and just want to verify my understanding of what is going on. "prefixName" is a readonly property that uses a getter method to directly pass a value back, there is no iVar storing the result on the PR_ViewController object. Also if the property was not readonly adding a setter still would not work as there is no iVar to set.
- Created: [Meth] prefixName
By contrast "characterName" works the usual way for a property, adding a getter, a setter and an iVar.
- Created: [Meth] characterName
- Created: [Meth] setCharacterName
- Created: [iVar] characterName
.
@interface PR_ViewController : UIViewController
@property (nonatomic, readonly) NSString *prefixName;
@property (nonatomic, retain) NSString *characterName;
.
@implementation PR_ViewController
@synthesize characterName;
- (NSString *)prefixName {
return @"FRED";
}