objective-c---구성원 변수 역할 영역, @property, @Synthesize, id, 다시 쓰기, 사용자 정의 구조 방법
7496 단어 objective-c
구성원 변수 역할 도메인:
참고:
@implementation Person
{
int _age;//
}
// : .m .h
@property와synthesize
다음은 Person 클래스의 코드를 예로 들면
에 있습니다.h 파일
@interface Person : NSObject
{
int _age;
NSString *_name;
}
@property int age;
@property NSString *name;
@end
표시 2 개 속성: 연령:age,이름:name, (@property로) 대응하는 setter와 Getter 방법 2개를 기본적으로 생성합니다.
@synthesize는 get과 set 방법을 자동으로 실현하고, 그 다음에 =멤버 변수를 추가하는 것을 알려 줍니다.
에 있습니다.m 파일 중
@implementation Person
@synthesize name = _name; // _name
@synthesize age = _age;
@end
setter 2개와 Getter 방법을 실현하는 것을 나타낸다. 그 중에서age=age는 Getter와setter 방법에서 조작하는 실력 변수가 라고 합니다.age, 생략하면=age, = _name, 그럼 있을 거야.l 파일에서 같은 이름의 실례 변수age,name (주의:여기 밑줄이 없습니다) 이 생성된 setter와 Getter 방법이 실행하는 실례 변수는age,name이므로age,_name이 실행되지 않았습니다.ios 5.0 후 @synthesize도 생략하고 쓰지 않을 수 있습니다.h 파일에서 @property만 쓰면 컴파일러는 자동으로 해당하는 실례 변수를 생성하고 실례 변수의 이름은 속성 이름 앞에 밑줄을 긋는다.
@synthesize 연서:
@synthesize age = _age,name = _name;
@property 연결:
@property NSString *name,*sex;
//@property : , , :
@property int age,NSString *name;
가장 간단한 단계 구성원 변수와 get,set 방법의 설명, 실현
@property int age; // _age,
// : ,
synthesize 없음=멤버 변수
// .m
@synthesize age;
// age , _age, age, @private age 。
@property 특성
id
id: 만능 바늘로 이해할 수 있습니다.\모든 oc 대상을 가리킵니다.ID = NSObject *
하나의 Person 클래스가 있는데, Person 대상을 만드는 데는 다음과 같은 세 가지 방법을 사용할 수 있다
Person *p = [Person new];
NSObject *o = [Person new];
id id1 = [Person new];
다시 쓰기 init 방법 (구조 방법)
// id, instancetype
- (id)init{
//1、 super init ,
//2、
//3、return self
self = [super init]; //
if (self != nil) {
_age = 23;
}
return self; //
}
구조 방법을 다시 쓰는 데 주의해야 할 점:
사용자 정의 구성 방법
구조 방법을 사용자화하는 사양:
// :
// .m
- (id)initWithName:(NSString *)name{
if (self = [super init]) {
_name = name;
}
return self;
}
사용자 정의 구성 방법 호출
Person *p = [[Person alloc]initWithName:@"chenfanfang"];
사용자 정의 구조 방법에서 초기화하려는 구성원 변수가 부류의 구성원 변수에 속하면 점문법(즉 부류의 set 방법을 호출하여 실현할 수 있음)
-(id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no{
if (self = [super init]) {
_no = no;
self.name = name; // [self setName:name];
self.age = age; // [self setAge:age];
}
return self;
}
주: 상기 구조 방법의 재작성 예는 개발에서 흔히 볼 수 없고 흔히 볼 수 있는 예는 다음과 같다.
- (id)initWithName:(NSString *)name andAge:(int)age andNo:(int)no{
if (self = [super initWithName:name andAge:age]) {
_no = no;
}
return self;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
iOS 메모설 연휴 동안 회사의 프로젝트 시간이 매우 바쁜 데다가 자신이 iOS의 작은 프로젝트를 하나 하고 있기 때문에 퇴근과 주말 시간에 거의 쉬지 않아서 블로그도 태만해졌다. 여기에는 내가 이 작은 프로젝트를 쓸 때 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.