The disadvantage is if you need to use string constants across binaries (such 
as constants used by plugins). If you strip symbols, you can't use them at all 
(whereas you can use #defines from an imported header file). If you don't strip 
symbols, you still need to declare them as follows:

extern NSString *const __attribute__ ((visibility ("default"))) kStringName; so 
the linker won't mark the symbol hidden. (This is for GCC; I don't know the 
equivalent for Clang/LLVM)

-Dan

On Aug 9, 2011, at 10:10 AM, Gregory Weston wrote:

> Devraj Mukherjee wrote:
> 
>> I am writing an API client for a REST service, parts of the REST API
>> returns fixed String values. E.g. status of an order.
>> 
>> I want to represents these fixed responses as constants. I have
>> represented fixed numeric values using enums and used a typedef to
>> represent the data type.
>> 
>> Are Strings defined using #define good enough as String constants?
>> 
>> Or Should I be doing this another way?
>> 
>> Thanks for your time.
> 
> I'm still generally in favor of named constants over pre-processor 
> substitution. Gives you types and no worry about parentheses.

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to