master
  1/*	NSObject.h
  2	Copyright (c) 1994-2012, Apple Inc. All rights reserved.
  3*/
  4
  5#ifndef _OBJC_NSOBJECT_H_
  6#define _OBJC_NSOBJECT_H_
  7
  8#if __OBJC__
  9
 10#include <objc/objc.h>
 11#include <objc/NSObjCRuntime.h>
 12
 13@class NSString, NSMethodSignature, NSInvocation;
 14
 15@protocol NSObject
 16
 17- (BOOL)isEqual:(id)object;
 18@property (readonly) NSUInteger hash;
 19
 20@property (readonly) Class superclass;
 21- (Class)class OBJC_SWIFT_UNAVAILABLE("use 'type(of: anObject)' instead");
 22- (instancetype)self;
 23
 24- (id)performSelector:(SEL)aSelector;
 25- (id)performSelector:(SEL)aSelector withObject:(id)object;
 26- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
 27
 28- (BOOL)isProxy;
 29
 30- (BOOL)isKindOfClass:(Class)aClass;
 31- (BOOL)isMemberOfClass:(Class)aClass;
 32- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
 33
 34- (BOOL)respondsToSelector:(SEL)aSelector;
 35
 36- (instancetype)retain OBJC_ARC_UNAVAILABLE;
 37- (oneway void)release OBJC_ARC_UNAVAILABLE;
 38- (instancetype)autorelease OBJC_ARC_UNAVAILABLE;
 39- (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE;
 40
 41- (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
 42
 43@property (readonly, copy) NSString *description;
 44@optional
 45@property (readonly, copy) NSString *debugDescription;
 46
 47@end
 48
 49
 50OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
 51OBJC_ROOT_CLASS
 52OBJC_EXPORT
 53@interface NSObject <NSObject> {
 54#pragma clang diagnostic push
 55#pragma clang diagnostic ignored "-Wobjc-interface-ivars"
 56    Class isa  OBJC_ISA_AVAILABILITY;
 57#pragma clang diagnostic pop
 58}
 59
 60#pragma clang diagnostic push
 61#pragma clang diagnostic ignored "-Wobjc-load-method"
 62+ (void)load;
 63#pragma clang diagnostic pop
 64
 65+ (void)initialize;
 66- (instancetype)init
 67#if NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER
 68    NS_DESIGNATED_INITIALIZER
 69#endif
 70    ;
 71
 72+ (instancetype)new OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
 73+ (instancetype)allocWithZone:(struct _NSZone *)zone OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
 74+ (instancetype)alloc OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
 75- (void)dealloc OBJC_SWIFT_UNAVAILABLE("use 'deinit' to define a de-initializer");
 76
 77- (void)finalize OBJC_DEPRECATED("Objective-C garbage collection is no longer supported");
 78
 79- (id)copy;
 80- (id)mutableCopy;
 81
 82+ (id)copyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
 83+ (id)mutableCopyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
 84
 85+ (BOOL)instancesRespondToSelector:(SEL)aSelector;
 86+ (BOOL)conformsToProtocol:(Protocol *)protocol;
 87- (IMP)methodForSelector:(SEL)aSelector;
 88+ (IMP)instanceMethodForSelector:(SEL)aSelector;
 89- (void)doesNotRecognizeSelector:(SEL)aSelector;
 90
 91- (id)forwardingTargetForSelector:(SEL)aSelector OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
 92- (void)forwardInvocation:(NSInvocation *)anInvocation OBJC_SWIFT_UNAVAILABLE("");
 93- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector OBJC_SWIFT_UNAVAILABLE("");
 94
 95+ (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector OBJC_SWIFT_UNAVAILABLE("");
 96
 97- (BOOL)allowsWeakReference UNAVAILABLE_ATTRIBUTE;
 98- (BOOL)retainWeakReference UNAVAILABLE_ATTRIBUTE;
 99
100+ (BOOL)isSubclassOfClass:(Class)aClass;
101
102+ (BOOL)resolveClassMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
103+ (BOOL)resolveInstanceMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
104
105+ (NSUInteger)hash;
106+ (Class)superclass;
107+ (Class)class OBJC_SWIFT_UNAVAILABLE("use 'aClass.self' instead");
108+ (NSString *)description;
109+ (NSString *)debugDescription;
110
111@end
112
113#endif
114
115#endif