Obj-C에서 Swift로 간단한 메소드를 변환하려고하는데, 어떻게해야하는지 문서에서 해결할 수 없습니다.참조로 Obj-C 패스를 Swift로 변환
- (void)getChar:(unichar *) outChar
{
*outChar = 'a';
}
을 지금까지 스위프트이에있어 가장 가까운이있다 :
func getChar(inout outChar:CMutablePointer<unichar>) ->()
{
outChar = ("a" as NSString).characterAtIndex(0)
}
는 내가 이해하지 못하는 것을 설명하는 베어 뼈의 예와 방법을 단순화했습니다
물론 3 라인 오류가 있습니다. Unichar는 CMutablePointer로 변환 할 수 없습니다.
BuildingCocoaApps pdf에는 Obj-C에서 포인터를 사용하는 방법에 대한 짧은 섹션이 있지만 어떻게 관련이 있는지 알 수는 없습니다.
다른 사람이 어떻게하는지 설명 할 수 있습니까?
편집 :
unichar c;
[myObject getChar:&c];
내가에서 호출 해요 때문에 나는의 FUNC 전에 @objc 추가 할 필요가 있음을 깨달았다 :이 같은의 Obj-C의 방법/FUNC를 호출하고 Obj-C. 이제는 더 많은 오류가 발생합니다.
확실히 Obj-C에서 참조로 전달됩니다. Obj-C에는 모든 C 기능이 포함되어 있기 때문에이 언어에서. 코코아 API에서도 마찬가지입니다. 모든 scan * 메소드가 참조로 전달되는 NSScanner API에서 예제를 찾아보십시오. –