Re: Learning the Interface Builder
Re: Learning the Interface Builder
- Subject: Re: Learning the Interface Builder
- From: David Duncan <email@hidden>
- Date: Fri, 4 Nov 2011 09:51:56 -0700
On Nov 4, 2011, at 8:14 AM, Matt Neuburg wrote:
> On Thu, 03 Nov 2011 18:46:13 -0700, Conrad Shultz <email@hidden> said:
>> A great many bugs
>> early on will likely owe to sending messages to nil
>
> It occurs to me (moving slowly but surely off-topic here) that the ARC people missed a trick with this one. One of ARC's most wonderful side-benefits is that it guarantees that any object pointer, strong or weak, that is not pointing to an object, is pointing to nil - because ARC puts it there. This suggests that there could have been a compile switch where what ARC puts there is an object that behaves like nil but also logs "You sent a message to nil" to the console. In fact, ARC could also substitute this object when you assign nil to something in your code. (It already does so much messing with your code that this little addition would be easy.) Then we could really track down those accidental send-to-nil moments.
>
> Is that a wild and crazy idea or what?
You can teach the Static Analyzer about some of this by using the __attribute__((nonnull)) attribute. It may be unwieldily to sprinkle these liberally through your code, but if you have places where this is an absolute necessity it may be worth the trouble to find bugs sooner.
I would also point out that the Clang Compiler's User Manual <http://clang.llvm.org/docs/UsersManual.html> and the Static Analyzer's Documentation <http://clang-analyzer.llvm.org/annotations.html> have useful tips for getting more out of the compiler/analyzer.
--
David Duncan
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden