Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы основы ссылка на протокол NSObject

Опции
Развертывание Target:

На этой странице
Язык:

NSObject

NSObject методы групп протокола, которые являются основным принципом всех объектов Objective C.

Если объект соответствует этому протоколу, это можно считать первоклассным объектом. Такой объект можно спросить о:

  • Класс и место его класса в иерархии наследования

  • Соответствие к протоколам

  • Возможность реагировать на определенное сообщение

Корневой класс Какао, NSObject, принимает этот протокол, таким образом, все объекты, наследовавшиеся от NSObject опиши функции этот протокол.

Наследование


Соответствует


Не применимый

Оператор импорта


Swift

import ObjectiveC

Не применимый

Доступность


Доступный в OS X v10.0 и позже.
  • класс - класс Требуемый

    Возвращает объект класса для класса получателя. (требуемый)

    Объявление

    Objective C

    - (Class)class

    Возвращаемое значение

    Объект класса для класса получателя.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    class (NSObject класс)

  • Возвращает объект класса для суперкласса получателя. (требуемый)

    Объявление

    Swift

    var superclass: AnyClass? { get }

    Objective C

    @property(readonly) Class superclass

    Возвращаемое значение

    Объект класса для суперкласса получателя.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    superclass (NSObject класс)

  • isEqual (_:) - isEqual: Требуемый

    Возвращает булево значение, указывающее, равны ли получатель и данный объект. (требуемый)

    Объявление

    Swift

    func isEqual(_ anObject: AnyObject?) -> Bool

    Objective C

    - (BOOL)isEqual:(id)anObject

    Параметры

    anObject

    Объект быть по сравнению с получателем. Может быть nil, когда возвращается этот метод NOfalse.

    Возвращаемое значение

    YEStrue если получатель и anObject равны, иначе NOfalse.

    Обсуждение

    Этот метод определяет то, что это означает для экземпляров быть равным. Например, контейнерный объект мог бы определить два контейнера как равные, если их соответствующие объекты все отвечают YEStrue к isEqual: запрос. Посмотрите NSData, NSDictionary, NSArray, и NSString спецификации класса для примеров использования этого метода.

    Если два объекта равны, у них должно быть то же значение хэш-функции. Если Вы определяете, эта последняя точка особенно важна isEqual: в подклассе и намереваются поместить экземпляры того подкласса в набор. Удостоверьтесь, что Вы также определяете hash в Вашем подклассе.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – хеш

  • хеш - хеш Требуемый

    Возвращает целое число, которое может использоваться в качестве табличного адреса в структуре хэш-таблицы. (требуемый)

    Объявление

    Swift

    var hash: Int { get }

    Objective C

    @property(readonly) NSUInteger hash

    Возвращаемое значение

    Целое число, которое может использоваться в качестве табличного адреса в структуре хэш-таблицы.

    Обсуждение

    Если два объекта равны (как определено isEqual: метод), у них должно быть то же значение хэш-функции. Если Вы определяете, эта последняя точка особенно важна hash в подклассе и намереваются поместить экземпляры того подкласса в набор.

    Если непостоянный объект добавляется к набору, использующему значения хэш-функции для определения позиции объекта в наборе, значение, возвращенное hash в то время как объект находится в наборе, метод объекта не должен изменяться. Поэтому любой hash метод не должен полагаться ни на одну информацию о внутреннем состоянии объекта, или необходимо удостовериться, что информация о внутреннем состоянии объекта не изменяется, в то время как объект находится в наборе. Таким образом, например, непостоянный словарь может быть помещен в хэш-таблицу, но Вы не должны изменять его, в то время как это находится в там. (Обратите внимание на то, что может быть трудно знать, является ли данный объект в наборе.)

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – isEqual:

  • сам () - сам Требуемый

    Возвращает получатель. (требуемый)

    Объявление

    Swift

    func `self`() -> Self!

    Objective C

    - (instancetype)self

    Возвращаемое значение

    Получатель.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – класс

  • Возвращает булево значение, указывающее, является ли получатель экземпляром данного класса или экземпляром какого-либо класса, наследовавшегося от того класса. (требуемый)

    Объявление

    Swift

    func isKindOfClass(_ aClass: AnyClass) -> Bool

    Objective C

    - (BOOL)isKindOfClass:(Class)aClass

    Параметры

    aClass

    Объект класса, представляющий класс Objective C, который будет протестирован.

    Возвращаемое значение

    YEStrue если получатель является экземпляром aClass или экземпляр любого класса, наследовавшегося от aClass, иначе NOfalse.

    Обсуждение

    Например, в этом коде, isKindOfClass: возвратился бы YEStrue потому что, в Основе, NSArchiver класс наследовался от NSCoder:

    • NSMutableData *myData = [NSMutableData dataWithCapacity:30];
    • id anArchiver = [[NSArchiver alloc] initForWritingWithMutableData:myData];
    • if ( [anArchiver isKindOfClass:[NSCoder class]] )
    • ...

    Будьте осторожны при использовании этого метода на объектах, представленных кластером класса. Из-за природы кластеров класса объект, который Вы возвращаете, может не всегда быть типом, который Вы ожидали. Если Вы вызываете метод, возвращающий кластер класса, точный тип, возвращенный методом, является лучшим индикатором того, что можно сделать с тем объектом. Например, если метод возвращает указатель на NSArray объект, Вы не должны использовать этот метод, чтобы видеть, является ли массив непостоянным, как показано в следующем коде:

    • // DO NOT DO THIS!
    • if ([myArray isKindOfClass:[NSMutableArray class]])
    • {
    • // Modify the object
    • }

    При использовании таких конструкций в коде Вы могли бы думать, что это в порядке для изменения объекта, который в действительности не должен быть изменен. Выполнение так могло бы тогда создать проблемы для другого кода, ожидавшего объект остаться неизменным.

    Если получатель является объектом класса, этот метод возвраты YEStrue если aClass Объект класса того же типа, NOfalse иначе.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – isMemberOfClass:

  • Возвращает булево значение, указывающее, является ли получатель экземпляром данного класса. (требуемый)

    Объявление

    Swift

    func isMemberOfClass(_ aClass: AnyClass) -> Bool

    Objective C

    - (BOOL)isMemberOfClass:(Class)aClass

    Параметры

    aClass

    Объект класса, представляющий класс Objective C, который будет протестирован.

    Возвращаемое значение

    YEStrue если получатель является экземпляром aClass, иначе NOfalse.

    Обсуждение

    Например, в этом коде, isMemberOfClass: возвратился бы NOfalse:

    • NSMutableData *myData = [NSMutableData dataWithCapacity:30];
    • id anArchiver = [[NSArchiver alloc] initForWritingWithMutableData:myData];
    • if ([anArchiver isMemberOfClass:[NSCoder class]])
    • ...

    Объекты класса могут быть созданными объектами компилятора, но они все еще поддерживают понятие членства. Таким образом можно использовать этот метод, чтобы проверить, что получателем является определенный Объект класса.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – isKindOfClass:

  • Возвращает булево значение, указывающее, реализует ли получатель или наследовал метод, который может реагировать на указанное сообщение. (требуемый)

    Объявление

    Swift

    func respondsToSelector(_ aSelector: Selector) -> Bool

    Objective C

    - (BOOL)respondsToSelector:(SEL)aSelector

    Параметры

    aSelector

    Селектор, идентифицирующий сообщение.

    Возвращаемое значение

    YEStrue если получатель реализует или наследовал метод, который может ответить на aSelector, иначе NOfalse.

    Обсуждение

    Приложение ответственно за определение ли a NOfalse ответ нужно считать ошибкой.

    Вы не можете протестировать, наследовал ли объект метод от своего суперкласса путем отправки respondsToSelector: к объекту с помощью super ключевое слово. Этот метод будет все еще тестировать объект в целом, не только реализацию суперкласса. Поэтому отправка respondsToSelector: к super эквивалентно отправке его к self. Вместо этого необходимо вызвать NSObject метод класса instancesRespondToSelector: непосредственно на суперклассе объекта, как проиллюстрировано в следующем фрагменте кода.

    • if( [MySuperclass instancesRespondToSelector:@selector(aMethod)] ) {
    • // invoke the inherited method
    • [super aMethod];
    • }

    Вы не можете просто использовать [[self superclass] instancesRespondToSelector:@selector(aMethod)] так как это может заставить метод перестать работать, если он вызывается подклассом.

    Обратите внимание на то, что, если получатель в состоянии передать aSelector сообщения к другому объекту, это будет в состоянии реагировать на сообщение, хотя косвенно, даже при том, что возвращается этот метод NOfalse.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    forwardInvocation: (NSObject класс)
    instancesRespondToSelector: (NSObject класс)

  • Возвращает булево значение, указывающее, соответствует ли получатель данному протоколу. (требуемый)

    Объявление

    Swift

    func conformsToProtocol(_ aProtocol: Protocol) -> Bool

    Objective C

    - (BOOL)conformsToProtocol:(Protocol *)aProtocol

    Параметры

    aProtocol

    Объект протокола, представляющий определенный протокол.

    Возвращаемое значение

    YEStrue если получатель соответствует aProtocol, иначе NOfalse.

    Обсуждение

    Этот метод работает тождественно к conformsToProtocol: метод класса, объявленный в NSObject. Это предоставлено как удобство так, чтобы Вы не должны были заставлять объект класса узнавать, может ли экземпляр реагировать на данный набор сообщений.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

  • Возвращает строку, описывающую содержание получателя. (требуемый)

    Объявление

    Swift

    var description: String { get }

    Objective C

    @property(readonly, copy) NSString *description

    Возвращаемое значение

    Строка, описывающая содержание получателя.

    Обсуждение

    Этот метод используется для создания текстового представления объекта, например в отформатированной строке:

    • ClassName *anObject = <#An object#>;
    • NSString *string = [NSString stringWithFormat:@"anObject is %@", anObject];

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – debugDescription

  • Возвращает строку, описывающую содержание получателя для представления в отладчике.

    Объявление

    Swift

    optional var debugDescription: String { get }

    Objective C

    @property(readonly, copy) NSString *debugDescription

    Возвращаемое значение

    Строка, описывающая содержание получателя для представления в отладчике.

    Обсуждение

    Объектная команда печати отладчика вызывает этот метод для создания текстового описания объекта.

    NSObject реализации этот метод путем вызова через к description метод. Таким образом, по умолчанию, описание отладки объекта совпадает со своим описанием. Однако можно переопределить debugDescription если Вы хотите разъединить их.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    – описание

  • Отправляет указанное сообщение в получатель и возвращает результат сообщения. (требуемый)

    Объявление

    Objective C

    - (id)performSelector:(SEL)aSelector

    Параметры

    aSelector

    Селектор, идентифицирующий сообщение для отправки. Если aSelector NULL, NSInvalidArgumentException повышен.

    Возвращаемое значение

    Объект, который является результатом сообщения.

    Обсуждение

    performSelector: метод эквивалентен отправке aSelector обменивайтесь сообщениями непосредственно к получателю. Например, все три из следующих сообщений делают ту же вещь:

    • id myClone = [anObject copy];
    • id myClone = [anObject performSelector:@selector(copy)];
    • id myClone = [anObject performSelector:sel_getUid("copy")];

    Однако performSelector: метод позволяет Вам отправлять сообщения, не определяющиеся до времени выполнения. Переменный селектор может быть передан как параметр:

    • SEL myMethod = findTheAppropriateSelectorForTheCurrentSituation();
    • [anObject performSelector:myMethod];

    aSelector параметр должен идентифицировать метод, не берущий параметров. Для методов, возвращающих что-либо кроме объекта, использовать NSInvocation.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Отправляет сообщение в получатель с объектом как параметр. (требуемый)

    Объявление

    Objective C

    - (id)performSelector:(SEL)aSelector withObject:(id)anObject

    Параметры

    aSelector

    Селектор, идентифицирующий сообщение для отправки. Если aSelector NULL, NSInvalidArgumentException повышен.

    anObject

    Объект, который является единственным параметром сообщения.

    Возвращаемое значение

    Объект, который является результатом сообщения.

    Обсуждение

    Этот метод совпадает с performSelector: за исключением того, что можно предоставить параметр за aSelector. aSelector должен идентифицировать метод, берущий отдельный аргумент идентификатора типа. Для методов с другими типами аргумента и возвращаемыми значениями, использовать NSInvocation.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – performSelector:withObject:withObject:
    methodForSelector: (NSObject класс)

  • Отправляет сообщение в получатель с двумя объектами как параметры. (требуемый)

    Объявление

    Objective C

    - (id)performSelector:(SEL)aSelector withObject:(id)anObject withObject:(id)anotherObject

    Параметры

    aSelector

    Селектор, идентифицирующий сообщение для отправки. Если aSelector NULL, NSInvalidArgumentException повышен.

    anObject

    Объект, который является первым параметром сообщения.

    anotherObject

    Объект, который является вторым параметром сообщения

    Возвращаемое значение

    Объект, который является результатом сообщения.

    Обсуждение

    Этот метод совпадает с performSelector: за исключением того, что можно предоставить два параметра за aSelector. aSelector должен идентифицировать метод, который может взять два параметра идентификатора типа. Для методов с другими типами аргумента и возвращаемыми значениями, использовать NSInvocation.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

    См. также

    – performSelector:withObject:
    methodForSelector: (NSObject класс)

  • isProxy () - isProxy Требуемый

    Возвращает булево значение, указывающее, не убывает ли получатель от NSObject. (требуемый)

    Объявление

    Swift

    func isProxy() -> Bool

    Objective C

    - (BOOL)isProxy

    Возвращаемое значение

    NOfalse если получатель действительно убывает от NSObject, иначе YEStrue.

    Обсуждение

    Этот метод необходим потому что отправка isKindOfClass: или isMemberOfClass: к NSProxy объект протестирует объект, прокси помогает для, не сам прокси. Используйте этот метод, чтобы протестировать, если получатель является прокси (или элемент некоторого другого корневого класса).

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Swift

    import ObjectiveC

    Доступность

    Доступный в OS X v10.0 и позже.

  • Постепенно увеличивает подсчет ссылок получателя. (требуемый)

    Объявление

    Objective C

    - (instancetype)retain

    Возвращаемое значение

    self.

    Обсуждение

    Вы отправляете объект a retain обменивайтесь сообщениями, когда Вы хотите препятствовать тому, чтобы он был освобожден, пока Вы не закончили использовать его.

    Когда его подсчет ссылок достигает, объект освобожден автоматически 0. retain сообщения постепенно увеличивают подсчет ссылок, и release сообщения постепенно уменьшают его. Для получения дополнительной информации об этом механизме см. Усовершенствованное Руководство по программированию управления памятью.

    Как удобство, retain возвраты self потому что это может использоваться во вложенных выражениях.

    Вы реализовали бы этот метод, только если Вы определяли свою собственную схему подсчета ссылок. Такие реализации должны возвратиться self и не должен вызывать унаследованный метод путем отправки a retain сообщение к super.

    Специальные замечания

    Вместо того, чтобы использовать подсчет ссылки на руководство, необходимо принять ARC — посмотрите Переход к Информации о версии ARC.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

  • выпуск - выпуск Требуемый

    Постепенно уменьшает подсчет ссылок получателя. (требуемый)

    Объявление

    Objective C

    - (oneway void)release

    Обсуждение

    Получатель отправляется a dealloc обменивайтесь сообщениями, когда достигнет его подсчет ссылок 0.

    Вы только реализовали бы этот метод для определения собственной схемы подсчета ссылок. Такие реализации не должны вызывать унаследованный метод; т.е. они не должны включать сообщение выпуска в super.

    Для получения дополнительной информации о механизме подсчета ссылок см. Усовершенствованное Руководство по программированию управления памятью.

    Специальные замечания

    Вместо того, чтобы использовать подсчет ссылки на руководство, необходимо принять ARC — посмотрите Переход к Информации о версии ARC.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

  • Постепенно уменьшается получатель сохраняют количество в конце текущего блока пула автовыпуска. (требуемый)

    Объявление

    Objective C

    - (instancetype)autorelease

    Возвращаемое значение

    self.

    Обсуждение

    Для получения дополнительной информации о блоках пула автовыпуска, см. Усовершенствованное Руководство по программированию управления памятью.

    Специальные замечания

    Вместо того, чтобы использовать подсчет ссылки на руководство, необходимо принять ARC — посмотрите Переход к Информации о версии ARC.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

  • retainCount - retainCount Требуемый

    Не используйте этот метод. (требуемый)

    Объявление

    Objective C

    - (NSUInteger)retainCount

    Возвращаемое значение

    Подсчет ссылок получателя.

    Специальные замечания

    Этот метод не представляет ценности в отладке проблем управления памятью. Поскольку любое число объектов платформы, возможно, сохранило объект для содержания ссылок на него, в то время как одновременно пулы автовыпуска могут содержать любое число задержанных выпусков на объекте, очень маловероятно, что можно получить полезную информацию от этого метода.

    Для понимания фундаментальных правил управления памятью, что необходимо соблюдать считайте Политику управления памятью. Для диагностирования проблем управления памятью используйте подходящий инструмент:

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.

  • зона - зона Требуемый

    Зоны осуждаются и игнорируются большинством классов, имеющих его в качестве параметра. (требуемый)

    Объявление

    Objective C

    - (struct _NSZone *)zone

    Возвращаемое значение

    Указатель на зону, от которой был выделен получатель.

    Оператор импорта

    Objective C

    @import ObjectiveC;

    Доступность

    Доступный в OS X v10.0 и позже.