2016-06-01 4 views
2

나는이 책을 읽었으며 실제로 배열을 설정하는 두 가지 방법이 있음을 알 수 있었다. 첫 번째는 이것이다 :Swift에서 배열을 사용하는 방법은 무엇입니까?

numElementsInSection.removeAll() 

하고 또한이 같은 배열을 설정할 수 있습니다 :

var data:NSMutableArray=[] 
나중에 같은 제거 객체로 당신에게 작업에 대한 다른 문법을 줄 것이다

var numElementsInSection:[Int]=[] 

다음과 같이 개체를 제거하십시오.

data.removeAllObjects() 

내가 옳은지, 왜 가지고 있는지, 어떤 것을 사용해야하는지 잘 모르겠습니다.

답변

5

첫 번째는 Swift 버전입니다. 두 번째는 번역 된 ObjC 버전입니다. 그것은 달려있다. 그러나 대부분의 경우 Swift를 작성할 때 "실제"Swift 코드를 사용하려고합니다.

2

NSMutableArray는 Apple의 Objective-C 유형에서 비롯되었으며 Objective-C 클래스 및 레거시 코드와 상호 작용하는 데 사용됩니다.

새로운 Swift 구문은 아마도 대부분의 시간을 원하는 것입니다.

+0

대부분 스위프트 배열을 사용할 때 ObjeC 클래스와 상호 작용할 수 있습니다. – dasdom

2
  • var numElementsInSection:[Int]=[] 예를 들면 Swift Array입니다.
  • var data:NSMutableArray=[]
  • 당신에게 NSMutableArray의 예를 제공 (목표 - C 형 배열입니다.) 둘은 상호 교환

. 그러나 당신이 그들에게 부르는 메소드는 어떤 타입의 배열이 객체에 의해 표현되는지에 달려 있습니다. 따라서 이들 메소드의 이름이 다릅니다. 여기

3

객관적-C NSArray를 VS 스위프트 어레이의 하나 이상의 주요 차이점이다

스위프트 어레이 구조체이므로이 포함 모든 객체 복사되는 것을 의미하는 값에 의해 전달된다.

하지만 NSArray는 클래스 (ObjC에서 연결됨)로 구현되므로 참조로 전달됩니다.

+1

글쎄, 실제로 스위프트는 그것보다 똑똑합니다. 실제로 사본을 변경하면 사본 만 복사됩니다. 그렇지 않으면 원본 만 유지합니다. – KPM

관련 문제