NSValue
NSValue объект является простым контейнером для единственного C или элемента данных Objective C. Это может содержать любой из скалярных типов такой как int, float, и char, а также указатели, структуры и объект id ссылки. Используйте этот класс для работы с такими типами данных в наборах (такой как NSArray и NSSet), кодирование значения ключа и другой APIs, требующий объектов Objective C. NSValue объекты являются всегда неизменными.
Разделение на подклассы примечаний
Краткий обзор NSValue класс является открытым интерфейсом кластера класса, состоящего главным образом из частных, реальных классов, создающих и возвращающих объект значения, подходящий для данной ситуации. Возможно разделить на подклассы NSValue, но выполнение так требует обеспечения складов для значения (который не наследован подклассами), и реализация двух примитивных методов.
Методы для переопределения
Любой подкласс NSValueдолжен переопределить примитивные методы экземпляра getValue: и objCType. Эти методы должны воздействовать на хранение, что Вы предусматриваете значение.
Вы могли бы хотеть реализовать инициализатор для своего подкласса, подходящего для хранения, которое Вы обеспечиваете. NSValue класс не имеет определяемого инициализатора, таким образом, Ваш инициализатор должен только вызвать init метод super. NSValue класс принимает NSCopying и NSSecureCoding протоколы; если Вы хотите экземпляры своего собственного подкласса, создаваемого из копирования или кодирования, переопределяете методы в этих протоколах.
Можно также хотеть реализовать hash метод, чтобы заставить Ваш подкласс работать хорошо в наборах.
Альтернативы разделению на подклассы
Если необходимо только использовать NSValue объекты для обертки пользовательские типы данных или структуры, определенные Вашим приложением, Вы не должны создавать NSValue подкласс. Вместо этого создайте категорию, использующую существующий NSValue методы, чтобы сохранить и получить данные Вашего пользовательского типа. Например, код ниже определяет пользовательскую структуру Многогранника и создает NSValue удобные методы сохранить и получить его:
typedef struct {int numFaces;float radius;} Polyhedron;@interface NSValue (Polyhedron)+ (instancetype)valuewithPolyhedron:(Polyhedron)value;@property (readonly) Polyhedron polyhedronValue;@end@implementation NSValue (Polyhedron)+ (instancetype)valuewithPolyhedron:(Polyhedron)value{return [self valueWithBytes:&value objCType:@encode(Polyhedron)];}- (Polyhedron) polyhedronValue{Polyhedron value;[self getValue:&value];return value;}@end
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
init (bytes:objCType:) - initWithBytes:objCType:Определяемый инициализаторИнициализирует объект значения содержать указанное значение, интерпретируемое с указанным типом Objective C.
Объявление
Swift
init(bytesvalue: UnsafePointer<Void>, objCTypetype: UnsafePointer<Int8>)Objective C
- (instancetype)initWithBytes:(const void *)valueobjCType:(const char *)typeПараметры
valueУказатель на данные, которые будут сохранены в новом объекте значения.
typeТип Objective C
value, в соответствии с@encode()директива компилятора. Не делайте твердого кода этот параметр как струна до.Возвращаемое значение
Содержащий инициализированный объект значения
value, который интерпретируется как то, чтобы иметь тип Objective Ctype. Возвращенный объект мог бы отличаться, чем исходный получатель.Обсуждение
Посмотрите Темы Программирования Числа и Значения для других соображений в создании объекта значения.
Это - определяемый инициализатор для
NSValueкласс.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает объект значения, содержащий указанное значение, интерпретируемое с указанным типом Objective C.
Объявление
Objective C
+ (NSValue *)valueWithBytes:(const void *)valueobjCType:(const char *)typeПараметры
valueУказатель на данные, которые будут сохранены в новом объекте значения.
typeТип Objective C
value, в соответствии с@encode()директива компилятора. Не делайте твердого кода этот параметр как струна до.Возвращаемое значение
Содержащий новый объект значения
value, который интерпретируется как то, чтобы иметь тип Objective Ctype.Обсуждение
Посмотрите Темы Программирования Числа и Значения для других соображений в создании объекта значения и примеров кода.
Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает объект значения, содержащий указанное значение, интерпретируемое с указанным типом Objective C.
Объявление
Swift
init(_value: UnsafePointer<Void>, withObjCTypetype: UnsafePointer<Int8>) -> NSValueObjective C
+ (NSValue *)value:(const void *)valuewithObjCType:(const char *)typeПараметры
valueУказатель на данные, которые будут сохранены в новом объекте значения.
typeТип Objective C
value, в соответствии с@encode()директива компилятора. Не делайте твердого кода этот параметр как струна до.Возвращаемое значение
Содержащий новый объект значения
value, который интерпретируется как то, чтобы иметь тип Objective Ctype.Обсуждение
Этот метод имеет тот же эффект как
valueWithBytes:objCType:и может быть осужден в будущем выпуске. Необходимо использоватьvalueWithBytes:objCType:вместо этого.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Копирует значение в указанный буфер.
Объявление
Swift
func getValue(_buffer: UnsafeMutablePointer<Void>)Objective C
- (void)getValue:(void *)bufferПараметры
bufferБуфер, в который можно скопировать значение. Буфер должен быть достаточно большим для содержания значения.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Струна до, содержащая тип Objective C данных, содержится в объекте значения.
Объявление
Swift
var objCType: UnsafePointer<Int8> { get }Objective C
@property(readonly) const char *objCTypeОбсуждение
Это свойство обеспечивает ту же строку, произведенную
@encode()директива компилятора.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает объект значения, содержащий указанный указатель.
Объявление
Swift
init(pointeraPointer: UnsafePointer<Void>) -> NSValueObjective C
+ (NSValue *)valueWithPointer:(const void *)aPointerПараметры
aPointerЗначение для нового объекта.
Возвращаемое значение
Содержащий новый объект значения
aPointer.Обсуждение
Этот метод эквивалентен вызову
value:withObjCType:этим способом:NSValue *theValue = [NSValue value:&aPointer withObjCType:@encode(void *)];
Этот метод не копирует содержание
aPointer, таким образом, Вы не должны для освобождения памяти в месте назначения указателя в то время какNSValueобъект существует.NSDataобъекты могут больше подойти для произвольных указателей, чемNSValueобъекты.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает объект значения, содержащий указанный объект.
Объявление
Swift
init(nonretainedObjectanObject: AnyObject?) -> NSValueObjective C
+ (NSValue *)valueWithNonretainedObject:(id)anObjectПараметры
anObjectЗначение для нового объекта.
Возвращаемое значение
Содержащий новый объект значения
anObject.Обсуждение
Этот метод эквивалентен вызову
value:withObjCType:этим способом:NSValue *theValue = [NSValue value:&anObject withObjCType:@encode(void *)];
Этот метод полезен, если Вы хотите добавить объект к набору, но не хотите, чтобы набор создал сильную ссылку к нему.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Возвращает значение как невведенный указатель.
Объявление
Swift
func pointerValue() -> UnsafeMutablePointer<Void>Objective C
- (void *)pointerValueВозвращаемое значение
Значение как указатель на недействительный. Если объект значения не создавался для содержания элемента данных размера указателя, результат не определен.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Значение как несохраненный указатель на объект. (только для чтения)
Объявление
Swift
var nonretainedObjectValue: AnyObject? { get }Objective C
@property(nonatomic, readonly) id nonretainedObjectValueОбсуждение
Если ценность не была создана для содержания элемента данных размера указателя, результат не определен.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру диапазона Основы.
Объявление
Swift
init(rangerange: NSRange) -> NSValueObjective C
+ (NSValue *)valueWithRange:(NSRange)rangeПараметры
rangeЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию о диапазоне.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
rangeValue rangeValueСвойствоПредставление структуры диапазона Основы значения. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру точки Основы.
Объявление
Swift
init(pointaPoint: NSPoint) -> NSValueObjective C
+ (NSValue *)valueWithPoint:(NSPoint)aPointПараметры
aPointЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию о точке.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру размера Основы.
Объявление
Swift
init(sizesize: NSSize) -> NSValueObjective C
+ (NSValue *)valueWithSize:(NSSize)sizeПараметры
sizeЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию о размере.
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
Создает новый объект значения, содержащий указанную прямоугольную структуру Основы.
Объявление
Swift
init(rectrect: NSRect) -> NSValueObjective C
+ (NSValue *)valueWithRect:(NSRect)rectПараметры
rectЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий данные в
rectструктура.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
-
pointValue pointValueСвойствоПредставление структуры точки Основы значения. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Представление структуры размера Основы значения. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Прямоугольное представление структуры Основы значения. (только для чтения)
Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
См. также
-
Создает новый объект значения, содержащий указанный CoreAnimation, преобразовывают структуру.
Объявление
Swift
init!(CATransform3DaTransform: CATransform3D) -> NSValueObjective C
+ (NSValue *)valueWithCATransform3D:(CATransform3D)aTransformПараметры
aTransformЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию о преобразовании.
Оператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
См. также
CATransform3DValueCATransform3D -
CATransform3DValue CATransform3DValueСвойствоCoreAnimation преобразовывают представление структуры значения. (только для чтения)
Объявление
Swift
var CATransform3DValue: CATransform3D { get }Objective C
@property(readonly) CATransform3D CATransform3DValueОператор импорта
Objective C
@import QuartzCore;Swift
import QuartzCoreДоступность
Доступный в OS X v10.5 и позже.
См. также
+ valueWithCATransform3D:CATransform3D
-
Создает новый объект значения, содержащий указанную временную структуру CoreMedia.
Объявление
Swift
init!(CMTimetime: CMTime) -> NSValueObjective C
+ (NSValue *)valueWithCMTime:(CMTime)timeПараметры
timeЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию времени носителей.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру диапазона времени CoreMedia.
Объявление
Swift
init!(CMTimeRangetimeRange: CMTimeRange) -> NSValueObjective C
+ (NSValue *)valueWithCMTimeRange:(CMTimeRange)timeRangeПараметры
timeRangeЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию о диапазоне времени.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру отображения времени CoreMedia.
Объявление
Swift
init!(CMTimeMappingtimeMapping: CMTimeMapping) -> NSValueObjective C
+ (NSValue *)valueWithCMTimeMapping:(CMTimeMapping)timeMappingПараметры
timeMappingЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий информацию об отображении времени.
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
CMTimeValue CMTimeValueСвойствоПредставление временной структуры CoreMedia значения. (только для чтения)
Оператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
CMTimeRangeValue CMTimeRangeValueСвойствоПредставление структуры диапазона времени CoreMedia значения. (только для чтения)
Объявление
Swift
var CMTimeRangeValue: CMTimeRange { get }Objective C
@property(readonly) CMTimeRange CMTimeRangeValueОператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
CMTimeMappingValue CMTimeMappingValueСвойствоВремя CoreMedia, отображая представление структуры значения. (только для чтения)
Объявление
Swift
var CMTimeMappingValue: CMTimeMapping { get }Objective C
@property(readonly) CMTimeMapping CMTimeMappingValueОператор импорта
Objective C
@import AVFoundation;Swift
import AVFoundationДоступность
Доступный в OS X v10.7 и позже.
См. также
-
Создает новый объект значения, содержащий указанный CoreLocation географическая координатная структура.
Объявление
Swift
init!(MKCoordinatecoordinate: CLLocationCoordinate2D) -> NSValueObjective C
+ (NSValue *)valueWithMKCoordinate:(CLLocationCoordinate2D)coordinateПараметры
coordinateЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий географическую координатную информацию.
Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в OS X v10.9 и позже.
См. также
-
Создает новый объект значения, содержащий указанную структуру промежутка координаты MapKit.
Объявление
Swift
init!(MKCoordinateSpanspan: MKCoordinateSpan) -> NSValueObjective C
+ (NSValue *)valueWithMKCoordinateSpan:(MKCoordinateSpan)spanПараметры
spanЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий координатную информацию о промежутке.
Оператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в OS X v10.9 и позже.
См. также
-
MKCoordinateValue MKCoordinateValueСвойствоCoreLocation географическое координатное представление структуры значения. (только для чтения)
Объявление
Swift
var MKCoordinateValue: CLLocationCoordinate2D { get }Objective C
@property(readonly) CLLocationCoordinate2D MKCoordinateValueОператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в OS X v10.9 и позже.
-
MapKit координируют представление структуры промежутка значения. (только для чтения)
Объявление
Swift
var MKCoordinateSpanValue: MKCoordinateSpan { get }Objective C
@property(readonly) MKCoordinateSpan MKCoordinateSpanValueОператор импорта
Objective C
@import MapKit;Swift
import MapKitДоступность
Доступный в OS X v10.9 и позже.
-
Создает объект значения, содержащий указанный вектор SceneKit с тремя элементами.
Объявление
Swift
init!(SCNVector3vector: SCNVector3) -> NSValueObjective C
+ (NSValue *)valueWithSCNVector3:(SCNVector3)vectorПараметры
vectorЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий векторную информацию.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
См. также
-
Создает объект значения, содержащий указанный вектор SceneKit с четырьмя элементами.
Объявление
Swift
init!(SCNVector4vector: SCNVector4) -> NSValueObjective C
+ (NSValue *)valueWithSCNVector4:(SCNVector4)vectorПараметры
vectorЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий векторную информацию.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
См. также
-
Создает объект значения, содержащий указанную матрицу SceneKit 4 x 4.
Объявление
Swift
init!(SCNMatrix4v: SCNMatrix4) -> NSValueObjective C
+ (NSValue *)valueWithSCNMatrix4:(SCNMatrix4)vПараметры
vЗначение для нового объекта.
Возвращаемое значение
Новый объект значения, содержащий матричную информацию.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.10 и позже.
См. также
-
SCNVector3Value SCNVector3ValueСвойствоПредставление вектора Набора Сцены с тремя элементами значения. (только для чтения)
Объявление
Swift
var SCNVector3Value: SCNVector3 { get }Objective C
@property(readonly) SCNVector3 SCNVector3ValueОператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
См. также
-
SCNVector4Value SCNVector4ValueСвойствоПредставление вектора Набора Сцены с четырьмя элементами значения. (только для чтения)
Объявление
Swift
var SCNVector4Value: SCNVector4 { get }Objective C
@property(readonly) SCNVector4 SCNVector4ValueОператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
См. также
-
SCNMatrix4Value SCNMatrix4ValueСвойствоНабор Сцены 4 x 4 матричных представления значения. (только для чтения)
Объявление
Swift
var SCNMatrix4Value: SCNMatrix4 { get }Objective C
@property(readonly) SCNMatrix4 SCNMatrix4ValueОператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.10 и позже.
См. также
-
Возвращает булево значение, указывающее, равны ли объект значения и другой объект значения.
Объявление
Swift
func isEqualToValue(_aValue: NSValue) -> BoolObjective C
- (BOOL)isEqualToValue:(NSValue *)aValueПараметры
aValueДругое значение возражает, с которым можно сравнить объект значения.
Возвращаемое значение
YEStrueесли оба объекта значения равны; иначе,NOfalse.Обсуждение
NSValueкласс сравнивает тип и содержание каждого объекта значения определить равенство.Оператор импорта
Objective C
@import Foundation;Swift
import FoundationДоступность
Доступный в OS X v10.0 и позже.
