If we omit synthesize and implement the setter and getter methods by ourselves, the system will not generate the corresponding setter and getter methods, as well as instance variables.
1. When the semantic feature is declared as assign, the internal implementation of the method is implemented by setter and getter.
-(Void) setname :( nsstring *) name {
_ Name = Name;
}
-(Nsstring *) name {
Return _ name;
}
2. When the semantic feature is declared as retain, the setter and getter methods are internally implemented.
-(Void) setname :( nsstring *) name {
If (_ name! = Name ){
[_ Name release];
_ Name = [name retain];
}
}
-(Nsstring *) name {
Return [[_ name retain] autorelease];
}
3. When the semantic feature is declared as copy, the setter and getter methods are implemented internally.
-(Void) setname :( nsstring *) name {
If (_ name! = Name ){
[_ Name release];
_ Name = [Name copy];
}
}
-(Nsstring *) name {
Return [[_ name retain] autorelease];
}