]> git.saurik.com Git - apple/objc4.git/blob - runtime/NSObject.h
78ea56a97d0efb1e99cf82de08bf5d9f0f8448f1
[apple/objc4.git] / runtime / NSObject.h
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)
51 OBJC_ROOT_CLASS
52 OBJC_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