Re: Just starting off in obj C
Re: Just starting off in obj C
- Subject: Re: Just starting off in obj C
- From: Jean-Daniel Dupas <email@hidden>
- Date: Sat, 25 Oct 2008 12:28:28 +0200
Le 25 oct. 08 à 04:43, Bill Bumgarner a écrit :
On Oct 24, 2008, at 7:14 PM, Ian Joyner wrote:
On 25/10/2008, at 9:16 AM, Alexander von Below wrote:
Am 25.10.2008 um 00:10 schrieb Michael:
The correct statement would be:
NSLog(@"This is %@", mytest());
Thanks Alex. That, ashamedly, I should have figured out!!! :-)
Actually, no. Really the compiler should have figured it out,
but ...
Quite right. C compilers are really lazy. It goes back to
developing compilers to work on machines with 8K of RAM (or
something like that!). Just remember that in C, Michael, you are
dealing with a very arcane and archaic language. (Objective-C is
the best flavour of it though, even though it is very
preprocessorish).
They are only as lazy as you allow them to be. In Objective-C,
avoiding the (id) type will generally lead to a relatively type safe
compilation experience.
In this particular situation, the compiler is currently unable to
typecheck the arguments to NSLog(). However, the compiler does a
fine job with fprintf()/sprintf()/printf(), etc...
There is some subtlety to supporting NSLog() validation, which is
why it isn't validated yet.
It is tracked in <rdar://problem/5195437>.
I think clang already does it. If you use the Clang Static Analyzer to
check your sources, it will print warning about CF/Obj-C format strings.
And, when clang is stable enough to replace gcc, you will get it
during compilation.
_______________________________________________
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