Re: NSTextAlignment Enum?
Re: NSTextAlignment Enum?
- Subject: Re: NSTextAlignment Enum?
- From: Keary Suska <email@hidden>
- Date: Mon, 01 Sep 2014 10:42:07 -0600
On Sep 1, 2014, at 9:28 AM, Keary Suska <email@hidden> wrote:
> On Sep 1, 2014, at 4:51 AM, Dave <email@hidden> wrote:
>
>> I have a method that takes a String and depending on it’s value needs to return an NSTextAlignment type. However, if the string is invalid, then I want to indicate that an error so I pass back -1. This is fine expect I get warnings on this code:
>>
>> if (myTextAllignment != -1)
>> theFieldOutlet.textAlignment = myTextAllignment;
>>
>> Warning:
>>
>> Comparison of constant -1 with expression of type 'NSTextAlignment' (aka 'enum NSTextAlignment') is always true
>>
>> What is the best way to fix this?
>
> NSTextAlignment in declared in NSText.h, as you will see by looking at the constants section of the doc. It is an NSUInteger, so obviously trying to push -1 is an issue. If you don't want to return a proper NSTextAlignment value in some instances, than the property should not be declared as an NSTextAlignment type, because clearly it is not. You can change the type to NSInteger, but that may not be future-proof. The truly best approach, IMHO, is to catch the error at the point it occurs, rather than relying on a fragile, interpreted value. E.g. having a method:
> - (BOOL)parseTextAlignment:(NSTextAlignment *)alignPtr
> is a smarter way to go (IMHO).
One future-proof approach that occurred to me is to declare your own enum:
typedef NS_ENUM(NSInteger, MYTextAlignment) {
MYInvalidTextAlignment = -1,
MYLeftTextAlignment = NSLeftTextAlignment,
MYRightTextAlignment = NSRightTextAlignment,
MYCenterTextAlignment = NSCenterTextAlignment,
MYJustifiedTextAlignment = NSJustifiedTextAlignment,
MYNaturalTextAlignment = NSNaturalTextAlignment
};
Although still think it is better to trap errors early and on-time, whenever possible.
HTH,
Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"
_______________________________________________
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