init(symbol: String, converter: UnitConverter)
Overview 概要
The Foundation framework provides concrete subclasses for many of the most common types of physical units. Foundationフレームワークは、最も一般的な種類の物理的な単位の多くに対して具象サブクラスを提供します。
NSDimension subclass NSDimensionサブクラス |
Description 説明 |
Base unit 基本単位 |
---|---|---|
Unit of measure for acceleration 加速度の計測単位 |
meters per second squared (m/s²) メートル毎秒毎秒(m/s²) |
|
Unit of measure for planar angle and rotation 平面の角度と回転のための計測単位 |
degrees (°) 度(°) |
|
Unit of measure for area 面積の計測単位 |
square meters (m²) 平方メートル(m²) |
|
Unit of measure for concentration of mass 質量濃度の計測単位 |
grams per liter (g/L) |
|
Unit of measure for dispersion 分散に対する計測単位 |
parts per million (ppm) 100万分の1(ppm) |
|
Unit of measure for duration of time |
seconds (sec) 秒数(sec) |
|
Unit of measure for electric charge 電荷の計測単位 |
coulombs (C) クーロン (C) |
|
Unit of measure for electric current 電流の計測単位 |
amperes (A) アンペア(A) |
|
Unit of measure for electric potential difference 電位差の計測単位 |
volts (V) ボルト(V) |
|
Unit of measure for electric resistance 電気抵抗の計測単位 |
ohms (Ω) オーム(Ω) |
|
Unit of measure for energy エネルギーの計測単位 |
joules (J) ジュール(J) |
|
Unit of measure for frequency 周波数の計測単位 |
hertz (Hz) ヘルツ(Hz) |
|
Unit of measure for fuel efficiency |
liters per 100 kilometers (L/100km) リットル毎100キロメートル(L/100km) |
|
Unit of measure for illuminance 照度の計測単位 |
lux (lx) ルクス(lx) |
|
Unit of measure for quantities of information |
bytes (b) バイト(b) |
|
Unit of measure for length 長さの計測単位 |
meters (m) メートル(m) |
|
Unit of measure for mass 質量の計測単位 |
kilograms (kg) キログラム(kg) |
|
Unit of measure for power 仕事率の計測単位 |
watts (W) ワット(W) |
|
Unit of measure for pressure 圧力の計測単位 |
newtons per square meter (N/m²) ニュートン毎平方メートル(N/m²) |
|
Unit of measure for speed スピードの計測単位 |
meters per second (m/s) メートル毎秒(m/s) |
|
Unit of measure for temperature 温度の計測単位 |
kelvin (K) ケルビン(K) |
|
Unit of measure for volume 体積の計測単位 |
liters (L) リットル(L) |
Each instance of a Dimension
subclass has a converter
, which represents the unit in terms of the dimension’s base
. For example, the NSLength
class uses meters
as its base unit. The system defines the predefined miles
unit by a Unit
with a coefficient
of 1609
, which corresponds to the conversion ratio of miles to meters (1 mi = 1609.34 m); the system defines the predefined meters
unit by a Unit
with a coefficient
of 1
because it’s the base unit.
Dimension
サブクラスの各インスタンスは、あるconverter
を持ちます、それはその次元の持つbase
に基づく単位を表します。例えば、NSLength
クラスはmeters
をそれの基本単位として使います。システムは、あらかじめ定義されるmiles
単位をUnit
によってcoefficient
(係数)の1609
で定義します、それはマイルからメートルへの変換率に相当します(1 mi = 1609.34 m);システムは、あらかじめ定義されるmeters
単位をUnit
によってcoefficient
として1
を使って定義します、なぜならそれが基本単位だからです。
You typically use an NSDimension
subclass in conjunction with the NSMeasurement
class to represent specific quantities of a particular unit.
あなたは、一般的にNSDimension
サブクラスをNSMeasurement
クラスと連携して使って、特定の単位の一定の量を表します。
Working with Custom Units あつらえの単位を扱う
In addition to the Apple-provided units, you can define custom units. You can initialize custom units from a symbol and converter of an existing type or implemented as a class method of an existing type for additional convenience. You can also define your own NSDimension
subclass to represent an entirely new unit dimension.
Apple提供の単位に加えて、あなたはあつらえの単位を定義できます。あなたは、あつらえの単位を既存の型の表象とコンバータから初期化することまたは既存の型のクラスメソッドとして実装することが追加の利便性のために行えます。あなたはまた、あなた自身のNSDimension
サブクラスを定義して、まったく新しい単位次元を表せます。
Initializing a Custom Unit with a Specified Symbol and Definition あつらえの単位を指定の表象と定義で初期化する
The simplest way to define a custom unit is to create a new instance of an existing NSDimension
subclass using the init(symbol:
method.
あつらえの単位を定義する最も単純な方法は、既存のNSDimension
サブクラスの新しいインスタンスをinit(symbol:
メソッドを使って作成することです。
For example, the smoot is a nonstandard unit of length (1 smoot = 1.70180 m). You can create a new instance of Unit
as follows:
例えば、smootは長さの非標準単位です(1 smoot = 1.70180 m)。あなたは、Unit
の新しいインスタンスを次のように作成できます:
Extending Existing Dimension Subclasses 既存の次元サブクラスを拡張する
Alternatively, if you use a custom unit extensively throughout an app, consider extending the corresponding Dimension
subclass and adding a static variable.
または、あなたがあるあつらえの単位を広範囲にあるアプリの至る所で使うならば、該当するDimension
サブクラスを拡張して、ある静的変数の追加を考慮してください。
For example, a measurement of speed can be furlongs per fortnight (1 fur/ftn = 201.168 m / 1,209,600 s). If an app makes frequent use of this unit, you can extend Unit
to add a furlongs
static variable for convenient access as follows:
例えば、ある速度の測定はファーロング毎2週間であることが可能です(1 fur/ftn = 201.168 m / 1,209,600 s)。あるアプリがこの単位を頻繁に使うようならば、あなたはUnit
を拡張して、furlongs
静的変数を加えることが便利なアクセスのために可能です、次のように:
Creating a Custom Dimension Subclass あつらえの次元サブクラスを作成する
You can create a new subclass of Dimension
to describe a new unit dimension.
あなたは、Dimension
の新しいサブクラスを作成することで、新しい単位次元を記述できます。
For example, the Foundation framework doesn’t define any units for radioactivity. Radioactivity is the process by which the nucleus of an atom emits radiation. The SI unit of measure for radioactivity is the becquerel (Bq), which is the quantity of radioactive material in which one nucleus decays per second (1 Bq = 1 s-1). Radioactivity is also commonly described in terms of curies (Ci), a unit defined relative to the decay of one gram of the radium-226 isotope (1 Ci = 3.7 × 1010 Bq). You can implement a Custom
class that defines both units of radioactivity as follows:
例えば、Foundationフレームワークはどんな単位も放射能に対して定義しません。放射能は、原子核が放射線を発する一連の作用です。放射能のための計測のSI単位はベクレル(Bq)です、それはそこにおいて秒あたり1つの原子核が崩壊するところの放射性物質の量です(1 Bq = 1 s-1)。放射能はまた、よくキュリー(Ci)、1グラムのラジウム226同位体の崩壊に関して定義される単位に基づいて記述されます(1 Ci = 3.7 × 1010 Bq)。あなたはCustom
クラスを実装できます、それは放射能の単位の両方とも定義します、以下のように:
Subclassing Notes サブクラス作成の注意
The system provides Dimension
for subclassing. Although the subclasses listed in Table 1 are suitable for most purposes, you may want to define a custom unit type. For instance, you may need a custom unit type to represent a derived unit, such as magnetic flux (measured as the product of electric potential difference and time).
システムは、Dimension
をサブクラス作成のために提供します。表 1で一覧にされるサブクラスがほとんどの目的に適するとはいえ、あなたはあつらえの単位型を定義したいかもしれません。例えば、あなたはあつらえの単位型をある組立単位、例えば磁束(電位差と時間の積として測定される)を表すために必要とするかもしれません。
To represent dimensionless units, subclass Unit
directly.
次元なし単位を表すには、直接にUnit
のサブクラスにしてください。
Methods to Override メソッドのオーバーライド
All subclasses must fully implement the base
method designating the base unit, relative to which you define any additional units.
全てのサブクラスは、基本単位を指名しているbase
メソッドを完全に実装しなければなりません、それに相対してあなたはあらゆる追加単位を定義します。
You must also implement a class method named for the base unit itself, to use interchangeably. For example, the Unit
class defines its base
in terms of the lux (lx) and provides a corresponding lux
class method.
あなたはまた、基本単位それ自身に名前をつけるクラスメソッドを実装しなければなりません、入れ替えて使うために。例えば、Unit
クラスは、それのbase
をルクス(lx)に基づいて定義します、そして対応するlux
クラスメソッドを提供します。
Alternatives to Subclassing サブクラス作成の代わりとなるもの
As described in Working with Custom Units, you need to create a custom subclass of Dimension
only if you or the system haven’t defined a unit of the desired dimension. You can define a custom unit for an existing Dimension
subclass by either calling the init(symbol:
method or extending the subclass and adding a corresponding class method.
あつらえの単位を扱うにおいて記述されるように、あなたがDimension
のあつらえのサブクラスを作成する必要があるのは、望む次元の単位をあなたまたはシステムが定義していない場合だけです。あなたは、既存のDimension
サブクラスに対してあつらえの単位を定義することが、init(symbol:
メソッドを呼び出すこと、またはサブクラスを拡張して対応するクラスメソッドを加えることのどちらかによって行えます。