IOS 에서 KVC 의 사용 방법 인 스 턴 스 상세 설명
KVC 는 키 밸 류 코딩 의 줄 임 말로 키 인 코딩 을 의미한다.iOS 에 서 는 속성의 이름(즉 키)을 사용 해 대상 을 간접 적 으로 접근 하 는 방법 을 제공 했다.어떤 어 려 운 말 은 실제 적 으로 클래스 정 의 를 통 해 우 리 는 클래스 의 각종 속성 을 볼 수 있다.그러면 속성의 이름 을 사용 하면 우 리 는 클래스 의 예화 된 대상 의 이 속성 값 을 방문 할 수 있다.
이 방법 은 getter/setter 방법 을 통 해 대상 의 속성 에 접근 하지 않 을 수 있 습 니 다.하나의 구성원 변 수 는 getter/setter 를 제공 하지 않 으 면 외부 에서 이 변수 에 대한 접근 경 로 를 잃 기 때 문 입 니 다.한편,KVC 는 방문 방법 을 제 공 했 는데 이것 은 어떤 경우 에 매우 위력 적일 것 이다.
더 이상 말 하지 않 겠 습 니 다.코드 를 올 립 니 다.
@interface myPerson : NSObject
{
NSString *_name;
int _age;
int _height;
int _weight;
}
@end
@interface testViewController : UIViewController
@property (nonatomic, retain) myPerson *testPerson;
@end
- (void)testKVC
{
testPerson = [[myPerson alloc] init];
NSLog(@"testPerson's init height = %@", [testPerson valueForKey:@"height"]);
[testPerson setValue:[NSNumber numberWithInt:168] forKey:@"height"];
NSLog(@"testPerson's height = %@", [testPerson valueForKey:@"height"]);
}
첫 번 째 코드 는 my Person 의 종 류 를 정의 하 는 것 입 니 다.이 종 류 는 가 있 습 니 다.height 의 속성 이지 만 getter/setter 의 접근 방법 은 제공 되 지 않 았 습 니 다.동시에 testView Controller 라 는 클래스 에 my Person 의 대상 지침 이 있 습 니 다. my Person 이 예화 되면 일반적으로 이 대상 에 접근 할 수 없 는height 속성 입 니 다.하지만 KVC 를 통 해 우 리 는 해 냈 습 니 다.코드 는 testKVC 라 는 함수 입 니 다.
실행 후 인쇄 값 은:
2013-11-02 11:16:21.970 test[408:c07] testPerson's init height = 0
2013-11-02 11:16:21.971 test[408:c07] testPerson's height = 168
이것 은 확실히 읽 고 썼 다 는 것 을 설명 한다height 속성. KVC 의 일반적인 방법:
- (id)valueForKey:(NSString *)key;
- (void)setValue:(id)value forKey:(NSString *)key;
value ForKey 방법 은 key 의 값 에 따라 대상 의 속성 을 읽 습 니 다.setValue:forKey:key 의 값 에 따라 대상 의 속성 을 씁 니 다. 여기 몇 가지 강조 할 게 있어 요.
1.key 의 값 이 정확 해 야 합 니 다.맞 춤 법 이 틀 리 면 이상 이 발생 합 니 다.
2.key 의 값 이 정의 되 지 않 았 을 때 value ForUndefinedKey:이 방법 은 호출 됩 니 다.이 방법 을 직접 썼 다 면 key 의 값 이 잘못 되 었 을 때 여기 로 호출 됩 니 다.
3.클래스 키 가 반복 적 으로 끼 워 져 있 기 때문에 키 Path 라 는 개념 이 있 습 니 다.키 Path 는'번호'로 하나의 키 를 연결 하면 이 경로 에 따라 접근 할 수 있 습 니 다.
4.NSArray/NSSet 등 은 모두 KVC 를 지원 합 니 다.
이상 은 IOS KVC 의 사용 방법 입 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 을 하 십시오.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS에서 ReplayKit 및 RTC 사용 방법응용된 소리와 아나운서의 소리를 포함한다.이 두 가지 수요를 감안하여 우리는 스크린 공유를 하는 생방송에 필요한 미디어 흐름을 간단하게 분석할 수 있다. 만약 우리가 Audio App과 Audio Mic를 두 개의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.