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;
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
50__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0)
51OBJC_ROOT_CLASS
52OBJC_EXPORT
53@interface NSObject <NSObject> {
54    Class isa  OBJC_ISA_AVAILABILITY;
55}
56
57+ (void)load;
58
59+ (void)initialize;
60- (instancetype)init;
61
62+ (instancetype)new;
63+ (instancetype)allocWithZone:(struct _NSZone *)zone;
64+ (instancetype)alloc;
65- (void)dealloc;
66
67- (void)finalize;
68
69- (id)copy;
70- (id)mutableCopy;
71
72+ (id)copyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
73+ (id)mutableCopyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
74
75+ (BOOL)instancesRespondToSelector:(SEL)aSelector;
76+ (BOOL)conformsToProtocol:(Protocol *)protocol;
77- (IMP)methodForSelector:(SEL)aSelector;
78+ (IMP)instanceMethodForSelector:(SEL)aSelector;
79- (void)doesNotRecognizeSelector:(SEL)aSelector;
80
81- (id)forwardingTargetForSelector:(SEL)aSelector __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
82- (void)forwardInvocation:(NSInvocation *)anInvocation;
83- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector;
84
85+ (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector;
86
87- (BOOL)allowsWeakReference UNAVAILABLE_ATTRIBUTE;
88- (BOOL)retainWeakReference UNAVAILABLE_ATTRIBUTE;
89
90+ (BOOL)isSubclassOfClass:(Class)aClass;
91
92+ (BOOL)resolveClassMethod:(SEL)sel __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
93+ (BOOL)resolveInstanceMethod:(SEL)sel __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
94
95+ (NSUInteger)hash;
96+ (Class)superclass;
97+ (Class)class;
98+ (NSString *)description;
99+ (NSString *)debugDescription;
100
101@end
102
103#endif
104
105#endif
106