В настоящее время я изучаю Obj-C для программирования iOS, но есть некоторые понятия, которые меня путают. В частности, аксессоры getter и setter.Confused О Getter and Setter
Я читаю несколько разных вещей о них - некоторые говорят, что они автоматически создаются при использовании @property, и нет необходимости устанавливать их вручную, другие говорят, что вам нужно использовать @synthesize.
См. Комментарии к приведенному ниже коду. Я смущен тем, что мне нужно на самом деле вручную, и правильным способом вызова метода.
// SomeClass.h
#import <Foundation/Foundation.h>
@interface SomeClass : NSObject
@property (nonatomic, strong) NSString *firstName;
-(NSString *) firstName;
@end
// SomeClass.m
#import "SomeClass.h"
@implementation SomeClass
// DO I NEED THE CODE BELOW OR ARE THESE AUTO-CREATED?
// ****************************************************
-(NSString *) firstName {
return _firstName;
}
-(void) setFirstname:(NSString *) newValue {
_firstName = newValue;
}
// ****************************************************
@end
int main() {
@autoreleasepool {
SomeClass *aClass = [[SomeClass alloc] init];
// How would you set the first name?
aClass.firstName = @"Richard"; //Does this call setFirstName?
// OR
[aClass setFirstName:@"Richard"];
}
return 0;
}
[ссылка] (http://rypress.com/tutorials/objective-c/properties.html) Проверьте это. Он отвечает на все – simonkaspers1
Не то, что свойства строки обычно должны быть определены 'copy', а не' strong'. –