FROM : Bill Bumgarner
DATE : Tue Jul 11 19:59:57 2006
On Jul 11, 2006, at 10:41 AM, Uli Kusterer wrote:
> Am 11.07.2006 um 19:06 schrieb Bill Bumgarner:
>> NSArray *arrayIAmGoingToGetFromSomewhereMaybe = (id) 0x1;
>
> Whoa! I think I'm going to request that that be made an official
> constant:
>
> #define INVALID ((id) 0x01)
>
> that guarantees an access exception. For platforms that have no
> address that's guaranteed to be invalid, they could always create a
> singleton that just dies on receiving any message.
You could likely also go for ((id) -1)-- whatever the magic cast
would be-- as that should produce an address that cannot possibly be
a pointer to anything as it is the very last byte of address space
(no room for the other 3 bytes of the address).
For my purposes, 0x01 has always worked quite well. I have often
used it in my designated initializers to ensure that I'm not making
unfortunate assumptions about the internal state of my object. This
also makes transitioning from single use objects to reuse-through-
reset much easier as you know that nothing depends on iVars being set
to 0 upon instantiation.
b.bum
DATE : Tue Jul 11 19:59:57 2006
On Jul 11, 2006, at 10:41 AM, Uli Kusterer wrote:
> Am 11.07.2006 um 19:06 schrieb Bill Bumgarner:
>> NSArray *arrayIAmGoingToGetFromSomewhereMaybe = (id) 0x1;
>
> Whoa! I think I'm going to request that that be made an official
> constant:
>
> #define INVALID ((id) 0x01)
>
> that guarantees an access exception. For platforms that have no
> address that's guaranteed to be invalid, they could always create a
> singleton that just dies on receiving any message.
You could likely also go for ((id) -1)-- whatever the magic cast
would be-- as that should produce an address that cannot possibly be
a pointer to anything as it is the very last byte of address space
(no room for the other 3 bytes of the address).
For my purposes, 0x01 has always worked quite well. I have often
used it in my designated initializers to ensure that I'm not making
unfortunate assumptions about the internal state of my object. This
also makes transitioning from single use objects to reuse-through-
reset much easier as you know that nothing depends on iVars being set
to 0 upon instantiation.
b.bum
| Related mails | Author | Date |
|---|---|---|
| Adam Johnson | Jul 11, 04:59 | |
| John C. Randolph | Jul 11, 05:11 | |
| Agent M | Jul 11, 05:26 | |
| j o a r | Jul 11, 09:19 | |
| Uli Kusterer | Jul 11, 18:20 | |
| Rob Ross | Jul 11, 18:40 | |
| Todd Ransom | Jul 11, 18:52 | |
| Shawn Erickson | Jul 11, 18:57 | |
| Andreas Mayer | Jul 11, 19:00 | |
| Bill Bumgarner | Jul 11, 19:06 | |
| Uli Kusterer | Jul 11, 19:41 | |
| Bill Bumgarner | Jul 11, 19:59 | |
| Nat! | Jul 11, 20:06 | |
| glenn andreas | Jul 11, 20:07 | |
| Uli Kusterer | Jul 12, 00:42 | |
| Bill Bumgarner | Jul 12, 00:52 |






Cocoa mail archive

