Class: OSX::ObjcID
- Inherits:
-
Object
- Object
- OSX::ObjcID
- Defined in:
- src/objc/cls_objcid.m,
src/objc/cls_objcid.m
Overview
Root class of Objective-C classes in Ruby world.
Class Method Summary (collapse)
- + (Object) new_with_ocid private
Instance Method Summary (collapse)
-
- (String) __inspect__
Object#inspect.
-
- (Number) __ocid__
Objective-C id value as Number.
-
- (Boolean) eql?
(also: #==)
Returns
true
whenother
contains same Objective-C “id”. -
- (FIXNUM) hash
Returns an hash value form internal Objective-C “id”.
-
- (Object) initialize_copy
private
Returns shallow copied object by Object#dup.
-
- (String) inspect
Object#inspect.
-
- (Object) release
Sends Objective-C “release” message to reciever.
Class Method Details
+ (Object) new_with_ocid
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
85 86 87 88 89 |
# File 'src/objc/cls_objcid.m', line 85
static VALUE
wrapper_objcid_s_new_with_ocid(VALUE klass, VALUE rbocid)
{
return objcid_new_with_ocid(klass, NUM2OCID(rbocid));
}
|
Instance Method Details
- (String) __inspect__
overrides Object#inspect.
Object#inspect.
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'src/objc/cls_objcid.m', line 136
static VALUE
objcid_inspect(VALUE rcv)
{
char s[512];
id ocid;
struct bsConst * bs_const;
const char * class_desc;
id pool;
ocid = OBJCID_ID(rcv);
bs_const = find_magic_cookie_const_by_value(ocid);
if (bs_const != NULL) {
pool = nil;
class_desc = bs_const->class_name;
}
else {
pool = [[NSAutoreleasePool alloc] init];
class_desc = [[[ocid class] description] UTF8String];
}
snprintf(s, sizeof(s), "#<%s:0x%lx class='%s' id=%p>",
rb_class2name(CLASS_OF(rcv)),
NUM2ULONG(rb_obj_id(rcv)),
class_desc, ocid);
if (pool != nil)
[pool release];
return rb_str_new2(s);
}
|
- (Number) __ocid__
Objective-C id value as Number.
125 126 127 128 129 |
# File 'src/objc/cls_objcid.m', line 125
static VALUE
objcid_ocid(VALUE rcv)
{
return OCID2NUM(OBJCID_ID(rcv));
}
|
- (Boolean) eql? Also known as: ==
overrides Object#eql? and Object#==.
Returns true
when other
contains same Objective-C
“id”.
203 204 205 206 207 208 209 210 |
# File 'src/objc/cls_objcid.m', line 203
static VALUE
objcid_eql(VALUE rcv, VALUE other)
{
if (rb_obj_is_kind_of(other, _kObjcID) && OBJCID_ID(rcv) == OBJCID_ID(other)) {
return Qtrue;
}
return Qfalse;
}
|
- (FIXNUM) hash
overrides Object#hash.
Returns an hash value form internal Objective-C “id”.
179 180 181 182 183 184 185 186 |
# File 'src/objc/cls_objcid.m', line 179
static VALUE
objcid_hash(VALUE rcv)
{
id ocid;
ocid = OBJCID_ID(rcv);
return LONG2FIX(ocid);
}
|
- (Object) initialize_copy
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns shallow copied object by Object#dup.
108 109 110 111 112 113 |
# File 'src/objc/cls_objcid.m', line 108
static VALUE
objcid_init_copy(VALUE self, VALUE orig)
{
OBJCID_DATA_PTR(self)->ocid = OBJCID_DATA_PTR(orig)->ocid;
return self;
}
|
- (String) inspect
overrides Object#inspect.
Object#inspect.
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'src/objc/cls_objcid.m', line 136
static VALUE
objcid_inspect(VALUE rcv)
{
char s[512];
id ocid;
struct bsConst * bs_const;
const char * class_desc;
id pool;
ocid = OBJCID_ID(rcv);
bs_const = find_magic_cookie_const_by_value(ocid);
if (bs_const != NULL) {
pool = nil;
class_desc = bs_const->class_name;
}
else {
pool = [[NSAutoreleasePool alloc] init];
class_desc = [[[ocid class] description] UTF8String];
}
snprintf(s, sizeof(s), "#<%s:0x%lx class='%s' id=%p>",
rb_class2name(CLASS_OF(rcv)),
NUM2ULONG(rb_obj_id(rcv)),
class_desc, ocid);
if (pool != nil)
[pool release];
return rb_str_new2(s);
}
|
- (Object) release
Sends Objective-C “release” message to reciever.
94 95 96 97 98 99 100 101 102 |
# File 'src/objc/cls_objcid.m', line 94
static VALUE
objcid_release(VALUE rcv)
{
if (OBJCID_DATA_PTR(rcv)->can_be_released) {
[OBJCID_ID(rcv) release];
OBJCID_DATA_PTR(rcv)->can_be_released = NO;
}
return rcv;
}
|