2016-06-01 5 views
2

私は本を読んでいますが、実際には配列を設定する2つの方法があります。最初のものはこれです:Swiftで配列を使う方法は?

numElementsInSection.removeAll() 

、あなたがは次のように配列を設定することができます:

var data:NSMutableArray=[] 
後に、このような削除オブジェクトとしてあなたの操作のために異なる構文を与える

var numElementsInSection:[Int]=[] 

とオブジェクトを削除する:

data.removeAllObjects() 

どちらが正しいかわからない、なぜあなたは2を持っているのかわかりません。

答えて

5

最初はスウィフト版です。もう一つは、翻訳されたObjCのバージョンです。場合によります。しかし、Swiftを書くときには、たぶんあなたはおそらく "本当の" Swiftコードを使いたいと思うでしょう。

2

NSMutableArrayは、AppleのObjective-Cタイプに由来し、Objective-Cクラスおよび従来のコードと対話するために使用されます。

新しいスウィフト構文はおそらくほとんどの時間に必要なものです。

+0

ほとんどの場合、Swift配列を使用するときにObjeCクラスと対話できます。 – dasdom

2
  • var numElementsInSection:[Int]=[]Swift Arrayのインスタンスを指定します。 var data:NSMutableArray=[]
  • はあなた NSMutableArrayのインスタンス与える(Objective-Cのタイプのアレイである。)、それらの両方が交換可能である

。しかし、あなたがそれらを呼び出すメソッドは、オブジェクトによって表されている配列の型に依存します。したがって、それらのメソッドの名前が異なります。ここ

3

は、Objective-CのNSArrayの対スウィフトアレイのもう一つの主な相違点である。

スウィフトアレイが構造されているので、含まれているすべてのオブジェクト がコピーされることを意味する値で渡されます。

しかし、NSArrayは(ObjCからブリッジされた)クラスとして実装されているので、 が参照として渡されます。

+1

実際、スウィフトはそれよりスマートです。実際にコピーを変更したときにのみコピーされます。それ以外の場合は、オリジナルのみを保持します。 – KPM

関連する問題