Re: STAssertEquals and type-checking
Re: STAssertEquals and type-checking
- Subject: Re: STAssertEquals and type-checking
- From: "Clark S. Cox III" <email@hidden>
- Date: Tue, 16 Aug 2011 22:54:15 -0700
On Aug 16, 2011, at 10:36 AM, Jens Alfke wrote:
> I’ve been using the STxxx test macros lately, as they’re the path of least resistance, but I’m getting pretty frustrated with them. Worst is the way that STAssertEquals is extremely picky about types (the actual and expected parameters have to have exactly the same type), and worse, somehow manages to defer the type checking until runtime, so you only find out when you get an assertion failure.
>
> So I keep making ‘mistakes’ like:
> STAssertEquals(myArray.length, 32, nil);
> which compiles fine, but fails at runtime because -length returns an NSUInteger and 32 is an int. Changing 32 to 32u works on 32-bit but not 64-bit; the only form I’ve found that always works is the awkward
> STAssertEquals(digest.length, (NSUInteger)32, nil);
> Not surprisingly, I still forget to do this pretty often.
You could always define the NS_BUILD_32_LIKE_64 preprocessor macro. If you do that, then 32ul will be correct on all Mac/iOS platforms.
--
Clark S. Cox III
email@hidden
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden