I think you've misunderstood the documentation. -init is the preferred method for creating 10.4+ date formatters.
http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/occ/instm/NSDateFormatter/initWithDateFormat:allowNaturalLanguage: Dave Sent from Jane On Nov 11, 2011, at 5:36 PM, Jerry Krinock <je...@ieee.org> wrote: > > NSDateFormatter documentation indicates that > -initWithDateFormat:allowNaturalLanguageString: is the recommended > initializer for new designs, and furthermore that -init is not "available" > after 10.5. > > However, I find kind of the opposite: > -initWithDateFormat:allowNaturalLanguageString gives unexpected results, but > -init works perfectly. I get the same results, building with either 10.6 or > 10.7 SDK. I'm running in 10.7. > > --- Code -------- > > NSLog(@"behavior = %ld", [NSDateFormatter defaultFormatterBehavior]) ; > > NSString* formatString = @"yyyy.MM.dd 'at' HH:mm:ss.SSS zzz" ; > > NSDateFormatter* oldFormatter ; > oldFormatter = [[NSDateFormatter alloc] init] ; > [oldFormatter setDateFormat:formatString] ; > > NSDateFormatter* newFormatter ; > newFormatter = [[NSDateFormatter alloc] initWithDateFormat:formatString > allowNaturalLanguage:NO] ; > // This makes it worse: > // [newFormatter setFormatterBehavior:NSDateFormatterBehavior10_4] ; > > NSDate* date = [NSDate date] ; > NSString* dateString ; > > dateString = [oldFormatter stringFromDate:date] ; > NSLog(@"old: %@", dateString); > > dateString = [newFormatter stringFromDate:date] ; > NSLog(@"new: %@", dateString); > > [oldFormatter release] ; > [newFormatter release] ; > > ---- Result ---- > > behavior = 1040 > old: 2011.11.11 at 17:20:59.493 PST > new: yyyy.MM.dd 'at' HH:mm:ss.SSS > > ---------------- > > Behavior 1040 is NSDateFormatterBehavior10_4, which is the newest behavior > available. > As you can see, the old method works as expected, but the new method > unexpectedly returns its format string. If I uncomment the line after "This > makes it worse", then instead of the format string I get an empty string. > > What is going on, please? > > Bonus question: How can -init be not "available"? Does this just mean that > it defaults to the super -[NSObject init] ? > > Thanks, > > Jerry Krinock > > _______________________________________________ > > 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/davedelong%40me.com > > This email sent to davedel...@me.com _______________________________________________ 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