이 코드는 UITableViewController 하위 클래스 인 viewDidLoad 메서드에 있습니다. UITableViewController 하위 클래스에는 테스트 메서드가 포함되어 있습니다.NSDictionary에 값으로 선택기를 포함 시키려면 어떻게해야합니까?
예외를 발생시키지 않고 충돌합니다. 나는 보통 직렬화에 더 탄력적이기 때문에 문자열을 사용하여 디버그 읽기 사전을 쉽게하는 것을 선호
// Set selector
SEL inSelector = @selector(something:);
NSValue *selectorAsValue = [NSValue valueWithBytes:&inSelector objCType:@encode(SEL)];
id dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"some text", @"text", selectorAsValue, @"selector", nil];
// Retrieve selector
SEL outSelector;
[(NSValue *)[dict objectForKey:@"selector"] getValue:&outSelector];
// Now outSelector can be used as a selector, e.g. [self performSelector:outSelector]
NSValue는 객체의 비 객체 유형을 래핑하기위한 올바른 클래스입니다. NSPoint, NSRect 및 NSSize는 모두 전용 생성자를 가지고 있으며 숫자 유형은 NSNumber 하위 클래스로 래핑되지만 임의의 구조체를 래핑하고 객체를 보유하지 않고 객체를 래핑 할 수도 있습니다. 참고 ... NSValue는 * 입력 된 * 데이터 용입니다. 이진 데이터의 임의의 블록은 NSData로 래핑되어야합니다. –
이것은 NSValue에 대한 카테고리를 요구합니다 – cfischer