#include <Foundation/Foundation.h>
@interface Foo : NSObject {
int value;
}
@property (nonatomic, assign) int value;
- (id)initWithValue:(int)value_;
@end
@implementation Foo
@synthesize value;
- (id)init {
return [self initWithValue:10];
}
- (id)initWithValue:(int)value_ {
if ( self = [super init] ) {
value = value_;
}
return self;
}
@end
int main()
{
Foo *f = [[Foo alloc] init];
[f setValue:99];
NSLog(@"v = %d", [f value]);
[f dealloc];
return 0;
}
@property (nonatomic, retain) NSString* myString;
@synthesize myString;
- (NSString *) myString {
return myString;
}
- (void) setMyString: (NSString *) newValue { // 注意 setter 的名字
if (newValue != myString) {
[myString release];
myString = [newValue retain];
}
}
---------------------------------------------------
@property (nonatomic, assign) NSString* myString;
@synthesize myString;
- (NSString *) myString {
return myString;
}
- (void) setMyString: (NSString *) newValue {
myString = newValue; // 对 object 使用 assign,编译通过,但不表示运行正确
}
评论