KVC 및 OC 사전
1995 단어 VC
[dict setObject:<#(id)#> forKey:<#(id<NSCopying>)#>]
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSMutableDictionary *dict=[[NSMutableDictionary alloc] init];
[dict setObject: @"1a23" forKey:[NSNumber numberWithInt:123]];//<span style="font-family: Arial, Helvetica, sans-serif;">[NSNumber numberWithInt:123] ( 、 、 、 、 、 )</span>
NSLog(@"y:%@",[dict objectForKey:[NSNumber numberWithInt:123]]);
}
return 0;
}
출력 결과는2015-01-30 10:40:15.677 Test[12481:303] y:1a23
KVC는 사전 대상 호출이 필요하지 않습니다. NSObject의 분류에서 왔습니다. @interface NSObject(NSKeyValueCoding)
KVC의 장점은ClassA에 가입한 비공개 구성원 변수에 Getter 방법이나setter 방법을 설정하지 않았다는 것이다.그러나 사용자로서 이 구성원 변수를 가져오거나 변경해야 할 때 KVC를 사용할 수 있습니다.하지만 전제 조건은 이 키가 ClassA의 구성원 변수여야 한다는 것이다.그렇지 않으면 잘못 보고한다.
@interface ClassA : NSObject
{
@private
NSNumber* _x;
}
@property(nonatomic,retain,readonly) NSNumber* x;
@end
#import "ClassA.h"
int main(int argc, const char * argv[])
{
@autoreleasepool
{
ClassA *a=[[ClassA alloc] init];
[a setValue:[NSNumber numberWithInt:123] forKey:@"x"];
<span style="white-space: pre;"> </span>//<span style="font-family: Arial, Helvetica, sans-serif;">[a setValue:[NSNumber numberWithInt:123] forKey:@"y"]; y, </span>
NSLog(@"x:%@",[a valueForKey:@"x"]);
}
return 0;
}
출력2015-01-30 11:00:37.687 Test[12583:303] x:123은 개인 구성원 변수라도setter 함수가 없어도 설정하고 변경할 수 있음을 알 수 있다.
KVC는 setter와 Getter 함수를 우선적으로 변경할 수 있습니다.setter와 Getter 함수가 없으면 구성원 변수를 가져와 변경합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
VB에서 VC로 작성된 DLL을 호출하는 방법 공유이 두 가지가 있으면 VC를 사용하는 수조처럼 처리할 수 있습니다.도면을 내보내는 경우 WMF 또는 BMP 형식을 생성하여 VB를 호출할 수 있습니다.그러나 나는 VB가 창의 핸들 hWnd와 hDC, 그리고 창의 그...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.