2015-01-20 3 views
1

저는 Swift에서 코드를 작성하려고하는 초보자입니다. 이 사이트는 값을 헤아릴 수 없었지만 지금은 해결책을 찾지 못한 문제가 있습니다.충돌 AVFoundation 및 AppKit Swift

저는 비디오 메타 데이터로 작업하고 있으며 스위프트에서 AVFoundation과 AppKit을 함께 사용하려고 할 때 궁금한 점이 있습니다.

이 코드는 값으로, 작동 "내 제목이"성공적으로 testitem 할당 :

import AVFoundation 

var testitem = AVMutableMetadataItem() 

testitem.identifier = AVMetadataIdentifieriTunesMetadataSongName 
testitem.value = "My title" 

를 그냥에서 "수입 AppKit의"문 결과를 추가하여 다음과 같이 나는 스위프트 놀이터에서 문제를 격리했다 오류 :

import AVFoundation 
import AppKit 

var testitem = AVMutableMetadataItem() 

testitem.identifier = AVMetadataIdentifieriTunesMetadataSongName 
testitem.value = "My title" 

오류 :.. GOI 무엇 " 'testitem'에서 '가치'에 할당 더 이상 인식 testitem의 값 속성을 보인다 수 없습니다

입니다 여기에? AppKit과 AVFoundation간에 약간의 비 호환성이 있습니까? 덧붙여 말하면, AVKit 가져 오기로 AppKit 가져 오기를 바꾸면이 문제를 해결하는 데 동일한 오류가 발생합니다.

답변

0

당신이 AppKit의 또는 AVKit을 가져 오면, value (즉 수입의 일부입니다) NSDictionaryControllerKeyValuePair에서, 함수, value()에 의해 컴파일러의 마음에 포섭되는 것으로 나타납니다.

setValue()으로 전화하여 문제를 쉽게 해결할 수 있습니다. 당신은 순서대로 함수로 value을 치료해야합니다

testitem.setValue("My title") 

참고 그걸 얻기 위해, 예를 들어, println(testitem.value()). 오브젝티브 C의 value 속성을 설정하기 때문에

당신이 잘 상상할 수 있듯이

,이 setValue: 전화로 같은이다, 목표 - C에서 문제가되지 않습니다. 그러나 Swift 컴파일러는 꽤 똑같은 방식으로 작동하지 않습니다. Swift에서는 getter/setter 함수 또는 속성을 볼 수 있지만 둘 다 볼 수는 없습니다. 나는 이것을 API에 버그로 애플에보고 할 것을 제안한다.

+0

이 대답으로 문제가 해결 되었습니까? – matt

+0

예 - 그것이 효과가 있고 말이됩니다. 감사합니다. – jbaraga

+0

그리고 흥미로운 질문이었습니다! – matt

관련 문제