본문 바로가기

Swift

Swift에서 포인터에 메모리 할당하기

스위프트에서 포인터를 사용하게 되면 메모리를 할당해주어야 나중에 실행시켜보면 오류가 나지 않는다.

아직 포인터 개념이 좀 약해서 선언 후 이짓저짓 다 해 보았지만 결론은 큰 차이가 없어서 기록을 남긴다.


let pxbuffer = UnsafeMutablePointer<CVPixelBuffer?>.alloc(1)

 // if pxbuffer = nil, you will get status = -6661


처음에 참고한 코드는 nil을 넣으라고 했는데 리턴값이 6661 오류가 발생하였다.

다음으로 찾아낸 코드는 .alloc(1)을 해주었는데 이대로 해 보니 오류는 발생하지 않았다. 하지만 다른 데서 오류가 났었기 때문에 이 부분을 신경 쓸 겨를이 없었다.


나중에 오류가 나지 않는 코드를 완성한 후 1 이외에도 다른 값들을 넣어 보았다.


let pxbuffer = UnsafeMutablePointer<CVPixelBuffer?>.alloc(width * height)


하지만 역시 오류 없이 제대로 된 결과가 나왔다.


그래서 결론이 같다면 큰 값 넣는 것 보다는 작은 값 넣는 것이 좋지 않을까 생각되어 앞으로 1만 넣기로 했다.


이 부분은 좀 더 이해를 해 보아야 할 것 같다.


스위프트 포인터에 대해 참고할 만한 사이트는 다음과 같다.

http://jamesonquave.com/blog/objective-c-pointers-and-swift/


아직 정독은 해 보지 못 했다.