init(object: Any)
init(objects: UnsafePointer<AnyObject>, count: Int)
Availability 有効性
Technology
class NSArray : NSObject
NSArray
and its subclass NSMutable
manage ordered collections of objects called arrays. NSArray
creates static arrays, and NSMutable
creates dynamic arrays. You can use arrays when you need an ordered collection of objects.
NSArray
とそれのサブクラスNSMutable
は、オブジェクトの順番付けられたコレクション、 配列(array)と呼ばれるものを管理します。NSArray
は静的な配列を作成します、そしてNSMutable
は動的な配列を作成します。あなたは、オブジェクトの順番付けられたコレクションが必要な時に配列を使うことができます。
NSArray
is “toll-free bridged” with its Core Foundation counterpart, CFArray
. See Toll-Free Bridging for more information on toll-free bridging.
NSArray
は、それのCore Foundation相当物、CFArray
と「トールフリーブリッジ」されます。トールフリーブリッジに関する更なる情報としてトールフリーブリッジを見てください。
In addition to the provided initializers, such as init
, you can create an NSArray
object using an array literal.
提供されたイニシャライザ、例えばinit
などに加えて、あなたはNSArray
オブジェクトを配列リテラルを使って作成できます。
In Objective-C, the compiler generates code that makes an underlying call to the init(objects:
method.
Objective-Cでは、コンパイラがinit(objects:
メソッドへの隠れた呼び出しをするコードを生成します。
You should not terminate the list of objects with nil
when using this literal syntax, and in fact nil
is an invalid value. For more information about object literals in Objective-C, see Working with Objects in Programming with Objective-C.
あなたは、このリテラル構文を使う時にオブジェクトのリストをnil
で終端すべきではありません、そして実際nil
は無効な値です。Objective-Cにおけるオブジェクトリテラルについてのさらなる情報として、Working with ObjectsをProgramming with Objective-Cでみてください。
In Swift, the NSArray
class conforms to the Array
protocol, which allows it to be initialized with array literals. For more information about object literals in Swift, see Literal Expression in The Swift Programming Language (Swift 4.1).
Swiftでは、NSArray
クラスはArray
プロトコルに準拠します、そのことはそれが配列リテラルで初期化されることを可能にします。Swiftにおけるオブジェクトリテラルについての更なる情報としてリテラル式をSwiftプログラミング言語(Swift 4.1)で見てください。
In addition to the provided instance methods, such as object(at:)
, you can access NSArray
values by their indexes using subscripting.
提供されたインスタンスメソッド、object(at:)
,などに加えて、あなたはNSArray
値にアクセスすることがそれらのインデックスによって添え字を使うことで可能です。
There is typically little reason to subclass NSArray
. The class does well what it is designed to do—maintain an ordered collection of objects. But there are situations where a custom NSArray
object might come in handy. Here are a few possibilities:
NSArray
のサブクラスを作る理由は一般的にほとんどありません。クラスは、それが行うように設計されたこと—オブジェクトの順番付けられたコレクションの保守—を適切に実行します。しかしあつらえのNSArray
オブジェクトが便利かもしれない場面があります。ここに少しばかりの可能性があります:
Changing how NSArray
stores the elements of its collection. You might do this for performance reasons or for better compatibility with legacy code.
NSArray
がそれのコレクションの要素を格納する方法を変える。あなたはこれを性能上の理由のためにまたはレガシーコードとのより良い互換性のために行います。
Acquiring more information about what is happening to the collection (for example, statistics gathering). コレクションに何が起こっているかについてもっと情報を取得する(例えば、統計を取る)。
Any subclass of NSArray
must override the primitive instance methods count
and object(at:)
. These methods must operate on the backing store that you provide for the elements of the collection. For this backing store you can use a static array, a standard NSArray
object, or some other data type or mechanism. You may also choose to override, partially or fully, any other NSArray
method for which you want to provide an alternative implementation.
これらのメソッドは、あなたがコレクションの要素に対して提供するバッキングストア上で演算を行わなければなりません。このバッキングストアに対してあなたは、静的配列、標準的NSArray
オブジェクト、または何か他のデータ型もしくは仕組みを使うことができます。あなたはまた、それに対してあなたが代替の実装を提供することを望む他のあらゆるNSArray
メソッドを、部分的にまたは完全に、オーバーライドすることを選べます。
You might want to implement an initializer for your subclass that is suited to the backing store that the subclass is managing. If you do, your initializer must invoke one of the designated initializers of the NSArray
class, either init()
or init(objects:
. The NSArray
class adopts the NSCopying
, NSMutable
, and NSCoding
protocols; custom subclasses of NSArray
should override the methods in these protocols as necessary.
あなたは、あなたのサブクラスに対して、そのサブクラスを管理しているバッキングストアに適したイニシャライザを実装したいかもしれません。あなたがそうするならば、あなたのイニシャライザはNSArray
クラスの指定イニシャライザの1つ、init()
またはinit(objects:
どちらかを発動しなければなりません。NSArray
クラスは、NSCopying
、NSMutable
、そしてNSCoding
プロトコルを採用します;NSArray
のカスタムサブクラスは、必要に応じてこれらのプロトコルにおいてメソッドをオーバーライドすべきです。
Remember that NSArray
is the public interface for a class cluster and what this entails for your subclass. You must provide the storage for your subclass and implement the primitive methods that directly act on that storage.
NSArray
はクラスクラスタに対するパブリックインターフェイスであること、そしてあなたのサブクラスに課せられるのは何かを忘れないでください。あなたは、あなたのサブクラスに対してストレージを提供して、そのストレージ上で直に役割を果たす根本的メソッドを実装しなければなりません。
Before making a custom subclass of NSArray
, investigate NSPointer
and the corresponding Core Foundation type, CFArray. Because NSArray
and CFArray
are “toll-free bridged,” you can substitute a CFArray
object for a NSArray
object in your code (with appropriate casting). Although they are corresponding types, CFArray
and NSArray
do not have identical interfaces or implementations, and you can sometimes do things with CFArray
that you cannot easily do with NSArray
. For example, CFArray
provides a set of callbacks, some of which are for implementing custom retain-release behavior. If you specify NULL
implementations for these callbacks, you can easily get a non-retaining array.
NSArray
のカスタムクラスを作る前に、NSPointer
と対応するCore Foundation型、CFArrayを調べて見てください。NSArray
とCFArray
は、「toll-freeブリッジ」されるので、あなたは、あなたのコードにおいて(適切なキャストを行うことで)CFArray
オブジェクトをNSArray
オブジェクトの代わりにすることができます。とは言えそれらが対応している型であっても、CFArray
とNSArray
は全く同一のインターフェイスや実装を持ちません、そしてあなたは時々CFArray
を使って、あなたがNSArray
では簡単にはできないような事を行えます。例えば、CFArray
はひとそろいのコールバックを提供します、それらの幾つかはカスタム「保持-解放」挙動を実装するためのものです。あなたがNULL
実装をこれらのコールバックに対して指定するならば、あなたは非保持(非リテイン)配列を簡単に得ることができます。
If the behavior you want to add supplements that of the existing class, you could write a category on NSArray
. Keep in mind, however, that this category will be in effect for all instances of NSArray
that you use, and this might have unintended consequences. Alternatively, you could use composition to achieve the desired behavior.
あなたが望む挙動が既存のクラスのそれの補遺を追加する場合、あなたはNSArray
上でカテゴリを書くことができます。しかしながら、このカテゴリはあなたが使うNSArray
インスタンス全てに対して発効になるのを心してください、そしてこれは意図しない成り行きをもたらすかもしれません。あるいは、あなたは望む挙動を達成するためにコンポジション(合成)を使うことができます。
init(object: Any)
init(objects: UnsafePointer<AnyObject>, count: Int)
init()
init(array: [Any])
init(array: [Any], copyItems : Bool)
anArray
as the source of data objects for the array.
新しく割り当てられた配列を、anArray
をその配列のデータオブジェクトのソースとして使って初期化します。
init?(contentsOfFile : String)
init?(contentsOf : URL)
init(objects: UnsafePointer<AnyObject>?, count: Int)
func contains(Any) -> Bool
var count: Int
var firstObject : Any?
var lastObject : Any?
func object(at: Int) -> Any
subscript(Int) -> Any
func objects(at: IndexSet) -> [Any]
func objectEnumerator () -> NSEnumerator
func reverseObjectEnumerator () -> NSEnumerator
func index(of: Any) -> Int
func index(of: Any, in: NSRange) -> Int
func indexOfObjectIdentical (to: Any) -> Int
func indexOfObjectIdentical (to: Any, in: NSRange) -> Int
func indexOfObject (passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int
func indexOfObject (options: NSEnumerationOptions, passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int
func indexOfObject (at: IndexSet, options: NSEnumerationOptions, passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> Int
func indexesOfObjects (passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> IndexSet
func indexesOfObjects (options: NSEnumerationOptions, passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> IndexSet
func indexesOfObjects (at: IndexSet, options: NSEnumerationOptions, passingTest : (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) -> IndexSet
func index(of: Any, inSortedRange : NSRange, options: NSBinarySearchingOptions, usingComparator : (Any, Any) -> ComparisonResult) -> Int
NSComparator
block.
与えられたNSComparator
ブロックを使って配列の中の要素と比較される、指定された範囲内の、あるオブジェクトのインデックスを返します。
func enumerateObjects ((Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
func enumerateObjects (options: NSEnumerationOptions, using: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
func enumerateObjects (at: IndexSet, options: NSEnumerationOptions, using: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
func firstObjectCommon (with: [Any]) -> Any?
func isEqual (to: [Any]) -> Bool
func adding(Any) -> [Any]
func addingObjects (from: [Any]) -> [Any]
func filtered(using: NSPredicate) -> [Any]
func subarray(with: NSRange) -> [Any]
var sortedArrayHint : Data
sortedArray(_:context:hint:)
.
配列を分析して「ヒント」を返します、それは、そのヒントがsortedArray(_:context:hint:)
に提供される場合この配列のソートをはかどらせるものです。
func sortedArray ((Any, Any, UnsafeMutableRawPointer?) -> Int, context: UnsafeMutableRawPointer?) -> [Any]
comparator
.
ある配列を返します、それは、受け手側の配列の持つ要素を昇順で比較関数comparator
によって定義されるとおりに列記するものです。
func sortedArray ((Any, Any, UnsafeMutableRawPointer?) -> Int, context: UnsafeMutableRawPointer?, hint: Data?) -> [Any]
comparator
.
ある配列を返します、それは、受け手側の配列の持つ要素を昇順で比較関数comparator
によって定義されるとおりに列記するものです。
func sortedArray (using: [NSSortDescriptor]) -> [Any]
func sortedArray (using: Selector) -> [Any]
func sortedArray (comparator: (Any, Any) -> ComparisonResult) -> [Any]
NSComparator
block.
新しい配列を返します、それは、受け手側の配列の持つ要素を昇順で、与えられたNSComparator
ブロックによって指定される比較メソッドで決定されるとおりに列記するものです。
func sortedArray (options: NSSortOptions, usingComparator : (Any, Any) -> ComparisonResult) -> [Any]
NSComparator
block.
新しい配列を返します、それは、受け手側の配列の持つ要素を昇順で、与えられたNSComparator
ブロックによって指定される比較メソッドで決定されるとおりに列記するものです。
typealias Comparator
func componentsJoined (by: String) -> String
NSString
object that is the result of interposing a given separator between the elements of the array.
NSString
オブジェクトを作成して返します、それは与えられた分離子を配列の要素の間に挟むことの結果です。
var description: String
func description(withLocale : Any?) -> String
func description(withLocale : Any?, indent: Int) -> String
func write(toFile : String, atomically: Bool) -> Bool
func write(to: URL, atomically: Bool) -> Bool
func pathsMatchingExtensions ([String]) -> [String]
func addObserver (NSObject, forKeyPath : String, options: NSKeyValueObservingOptions, context: UnsafeMutableRawPointer?)
func removeObserver (NSObject, forKeyPath : String)
func removeObserver (NSObject, forKeyPath : String, context: UnsafeMutableRawPointer?)
func removeObserver (NSObject, fromObjectsAt : IndexSet, forKeyPath : String, context: UnsafeMutableRawPointer?)
func addObserver (NSObject, toObjectsAt : IndexSet, forKeyPath : String, options: NSKeyValueObservingOptions, context: UnsafeMutableRawPointer?)
func removeObserver (NSObject, fromObjectsAt : IndexSet, forKeyPath : String)
anObserver
from all key value observer notifications associated with the specified keyPath
relative to the array’s objects at indexes
.
anObserver
を、indexes
での配列のオブジェクトそれらと相対的に、この指定されたkeyPath
と結び付けられた、全てのキー値監視通知から取り除きます。
func setValue (Any?, forKey : String)
setValue(_:forKey:)
on each of the array's items using the specified value
and key
.
setValue(_:forKey:)
を配列の要素それぞれの上でこの指定されたvalue
とkey
を使って発動します。
func value(forKey : String) -> Any
value(forKey:)
using key
on each of the array's objects.
value(forKey:)
をkey
を使って配列の要素それぞれの上で発動する結果を含んでいる配列を返します。
func shuffled() -> [Any]
func shuffled(using: GKRandomSource) -> [Any]
class NSOrderedCollectionDifference
struct NSOrderedCollectionDifferenceCalculationOptions
struct NSBinarySearchingOptions
index(of:inSortedRange:options:usingComparator:)
.
index(of:inSortedRange:options:usingComparator:)
を使う検索と挿入に対するオプション。
init(arrayLiteral : Any...)
elements
.
elements
で初期化されるインスタンスを作成します。
func makeIterator () -> NSFastEnumerationIterator