I는 다음과 같이, 포인터를 취하고 그것을 채우는 기능 출력 버퍼로서 신속 어레이가 사용하고스위프트 배열
var buffer : [Int32] = ...
tehFillFunc(UnsafeMutablePointer<Int32>(buffer))
이 잘 작동이 문제는 컴파일러 불평이고 그건 Variable 'buffer' was never mutated; consider changing to 'let' constant
입니다. 필자가 채우기 기능에서 돌연변이가 일어 났을 것이라고 확신하고 있기 때문에 싫어합니다.
그래서 침묵 할 수있는 방법이 있습니까? (나는 단지 더미 세트를 할 수는 있지만, 올바르게 설정하는 것을 선호한다).
편집 :
class ViewController: UIViewController {
func fill(sth: UnsafeMutablePointer<Int32>) {
sth[0] = 7
}
override func viewDidLoad() {
super.viewDidLoad()
var array = [Int32].init(count: 10, repeatedValue: 0)
fill(UnsafeMutablePointer<Int32>(array))
print("\(array)")
}
}
그러나,이 솔루션은 이미 게시했습니다 : (C도 필요하지 않습니다) 문제를 보여줍니다 요청 전체 예제 코드로. 가장 간단한 형식으로 :
fill(&array)
코드에 아무런 경고 메시지가 표시되지 않습니다 ... –
@MartinR 맞습니다. 어떻게 원래의 C 함수가 선언되었는지 궁금합니다. – Sulthan
나는'void tehFillFunc (int * ptr);'를 사용했다. –