구조체가 특정 유형인지 어떻게 알 수 있습니까? 즉, 객체를 얻는다면, 멍청한 타입이 구조체라는 것을 어떻게 알 수 있습니까?구조체 isKindOfClass
+(BOOL)isPrimitive:(id)input
{
return [input isKindOfClass:[NSNumber class] ] || [input isKindOfClass:[NSDate class]] || [input isKindOfClass:[NSString class]]
|| __IS_THIS_A_STRUCT__ (specifically SEL);
}
내가 IS_THIS_A_STRUCT의 장소에 배치해야합니까?
구조체가 될 수 없습니다. 또는 당신은 그것을 정말로 잘못하고 있습니다. 'id'는 ObjC 객체에 대한 포인터 여야합니다. 그렇지 않으면 컴파일러가 경고합니다. 그러나 struct는 NSValue로 래핑 될 수 있습니다. 아마도 테스트하고자하는 것일 수 있습니다. –
'SEL'은 구조체가 아니며'char *'입니다. 어떤 것이 객체인지 아닌지를 결정하는 것은 불가능할 수 있습니다. isa 포인터를 가진 구조체를 전달할 수 있고 모든 것이 잘 될 수 있기 때문에 볼 수 있습니다. – CodaFi
개체를 복제하고 있으며 해당 속성 중 일부는 selector 형식입니다. 이 메소드는 선택기 (및 문자열/날짜/등)를 복제 된 객체로 전송해야합니다. 어떻게해야합니까? – user2453876