2009-12-11 1 views
27

릴리스를 사용하지 않고 NSMutableData를 지운 다음/init를 다시 사용하여 다시 사용하려면 어떻게해야합니까? resetBytesInRange를 0으로 설정하려고했지만이 사실을 확신하지 못했습니다. 누구든지 도울 수 있니?NSMutableData에서 내용을 지우는 방법

답변

58

당신이 빈 버퍼를 원하는 경우 :

[data setLength:0]; 

당신이 제로로 모든 바이트를 크기를 유지하지만 설정하려면 :

[data resetBytesInRange:NSMakeRange(0, [data length])]; 
+1

무엇에 대해 [데이터 사항 setData : 무기 호] ? – karim

+0

@karim 설명서가 모호 합니다만 방금 테스트했으며 OS X 10.8에서 작동합니다. – benzado

+1

두 번째 코드를 사용하면 'data'변수는 항상 같은 메모리를 유지하지만 (모두 삭제됨 - 0000000) 따라서 '데이터'에 더 많은 데이터를 추가하려고하면이 범위의 끝에 추가됩니다. 예를 들어, 내 '데이터'300 바이트, 우리는이 resetBytes 호출 한 다음 100 바이트 더 추가합니다. '데이터'의 길이는 400 바이트입니다 (그러나 100 바이트는 아님). 전략에 따라 setLength 또는 resetBytesInRange를 사용할 수 있습니다. –