123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- * Copyright (c) 1999-2003, 2005-2007 Apple Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
- /*
- Object.h
- Copyright 1988-1996 NeXT Software, Inc.
-
- DEFINED AS: A common class
- HEADER FILES: <objc/Object.h>
- */
- #ifndef _OBJC_OBJECT_H_
- #define _OBJC_OBJECT_H_
- #include <stdarg.h>
- #include <objc/objc-runtime.h>
- #if __OBJC__ && !__OBJC2__
- __OSX_AVAILABLE(10.0)
- __IOS_UNAVAILABLE __TVOS_UNAVAILABLE
- __WATCHOS_UNAVAILABLE __BRIDGEOS_UNAVAILABLE
- OBJC_ROOT_CLASS
- @interface Object
- {
- Class isa; /* A pointer to the instance's class structure */
- }
- /* Initializing classes and instances */
- + (id)initialize;
- - (id)init;
- /* Creating, copying, and freeing instances */
- + (id)new;
- + (id)free;
- - (id)free;
- + (id)alloc;
- - (id)copy;
- + (id)allocFromZone:(void *)zone;
- - (id)copyFromZone:(void *)zone;
- - (void *)zone;
- /* Identifying classes */
- + (id)class;
- + (id)superclass;
- + (const char *) name;
- - (id)class;
- - (id)superclass;
- - (const char *) name;
- /* Identifying and comparing instances */
- - (id)self;
- - (unsigned int) hash;
- - (BOOL) isEqual:anObject;
- /* Testing inheritance relationships */
- - (BOOL) isKindOf: aClassObject;
- - (BOOL) isMemberOf: aClassObject;
- - (BOOL) isKindOfClassNamed: (const char *)aClassName;
- - (BOOL) isMemberOfClassNamed: (const char *)aClassName;
- /* Testing class functionality */
- + (BOOL) instancesRespondTo:(SEL)aSelector;
- - (BOOL) respondsTo:(SEL)aSelector;
- /* Testing protocol conformance */
- - (BOOL) conformsTo: (Protocol *)aProtocolObject;
- + (BOOL) conformsTo: (Protocol *)aProtocolObject;
- /* Obtaining method descriptors from protocols */
- - (struct objc_method_description *) descriptionForMethod:(SEL)aSel;
- + (struct objc_method_description *) descriptionForInstanceMethod:(SEL)aSel;
- /* Obtaining method handles */
- - (IMP) methodFor:(SEL)aSelector;
- + (IMP) instanceMethodFor:(SEL)aSelector;
- /* Sending messages determined at run time */
- - (id)perform:(SEL)aSelector;
- - (id)perform:(SEL)aSelector with:anObject;
- - (id)perform:(SEL)aSelector with:object1 with:object2;
- /* Posing */
- + (id)poseAs: aClassObject;
- /* Enforcing intentions */
-
- - (id)subclassResponsibility:(SEL)aSelector;
- - (id)notImplemented:(SEL)aSelector;
- /* Error handling */
- - (id)doesNotRecognize:(SEL)aSelector;
- - (id)error:(const char *)aString, ...;
- /* Debugging */
- - (void) printForDebugger:(void *)stream;
- /* Archiving */
- - (id)awake;
- - (id)write:(void *)stream;
- - (id)read:(void *)stream;
- + (int) version;
- + (id)setVersion: (int) aVersion;
- /* Forwarding */
- - (id)forward: (SEL)sel : (marg_list)args;
- - (id)performv: (SEL)sel : (marg_list)args;
- @end
- /* Abstract Protocol for Archiving */
- @interface Object (Archiving)
- - (id)startArchiving: (void *)stream;
- - (id)finishUnarchiving;
- @end
- /* Abstract Protocol for Dynamic Loading */
- @interface Object (DynamicLoading)
- //+ finishLoading:(headerType *)header;
- struct mach_header;
- + (id)finishLoading:(struct mach_header *)header;
- + (id)startUnloading;
- @end
- #endif
- #endif /* _OBJC_OBJECT_H_ */
|