CocoaDev

Edit AllPages

This page will attempt to document all the changes (both major and minor) to Cocoa through the various versions of OS X, including:Added classes, methods, and functionsRetired classes, methods, and functionsDocumented (but previously functional) classes, methods, and functionsSyntax changesImplementation bugs and bug fixesNoteworthy compiler changes (that affect Cocoa)When editing this page, please note backwards-compatibility (see examples below). If everyone adds their knowledge to this page, it can become the reference for people who want to know what they can do in their code while still keeping it compatible.Note: This page is only for Cocoa in the public releases of OS X. That means no NeXT, Carbon, or AppleScript (except NSAppleScripts, of course). Wouldn’t that make it CocoaThroughTheAges instead?Here’s an example entry:11.0.3Method added: “quackTimes:(int) withBeak:(BOOL)” [NSDuck]Method documented: “shoot” [NSDuck] {Added: 11.0.2} {Implementation bug: 11.0.5} {Implementation bug fixed: 11.0.6}Class retired: NSSushi [AppKit] {Added: 11.0.0} {Documented: 11.0.1}Function added: “showDuckOnScreen(NSDuck,NSScreen)” [AppKit]Bracketed items describe the affected class or framework. Braced items refer to relevent versions of the OS.—-Mac OS X Public Beta:First public release.ScreenSaver framework appears, API reverse engineered by internet onlookers.—-10.0.0:First public release.ScreenSaver framework API published.10.0.1:Description forthcoming.10.0.2:Description forthcoming.10.0.3:Description forthcoming.10.0.4:Description forthcoming.—-10.1.0:Method Added: [NSDocument - (NSWindow *)windowForSheet]10.1.1:Description forthcoming.10.1.2:Description forthcoming.10.1.3:Description forthcoming.10.1.4:Description forthcoming.10.1.5: Description forthcoming.—-10.2.0:*This list is still a work in progress…Functions AddedBOOL NSApplicationLoad(void);Classes AddedNSAppleScriptNSAppleScript(NSExtensions)NSAppleEventDescriptor Methods Added+ (NSAppleEventDescriptor )descriptorWithDescriptorType:(DescType)descriptorType bytes:(const void *)bytes length:(unsigned int)byteCount;+ (NSAppleEventDescriptor )descriptorWithBoolean:(Boolean)boolean;+ (NSAppleEventDescriptor )descriptorWithEnumCode:(OSType)enumerator;+ (NSAppleEventDescriptor )descriptorWithInt32:(SInt32)signedInt;+ (NSAppleEventDescriptor )descriptorWithTypeCode:(OSType)typeCode;+ (NSAppleEventDescriptor )descriptorWithString:(NSString *)string;- (id)initWithAEDescNoCopy:(const AEDesc )aeDesc;- (const AEDesc )aeDesc;- (Boolean)booleanValue;- (OSType)enumCodeValue;- (SInt32)int32Value;- (OSType)typeCodeValue;- (NSString )stringValue;- (void)removeDescriptorAtIndex:(long int)index;NSAppleEventDescriptor Methods Removed- (void)removeDecriptorAtIndex:(long int)index;NSArray Methods Added- (id)initWithArray:(NSArray )array copyItems:(BOOL)flag;NSAttributedString Constants AddedNSGlyphInfoAttributeNameNSBitmapImageRep Constants AddedNSImageRepLoadStatusNSImageFrameCountNSImageCurrentFrameNSImageCurrentFrameDurationNSBitmapImageRep Methods Added- (id)initForIncrementalLoad;- (int)incrementalLoadFromData:(NSData)data complete:(BOOL)complete;NSBundle Methods Added- (BOOL)isLoaded;- (NSDictionary *)localizedInfoDictionary;- (id)objectForInfoDictionaryKey:(NSString )key;- (NSString )developmentLocalization;+ (NSArray )preferredLocalizationsFromArray:(NSArray *)localizationsArray forPreferences:(NSArray *)preferencesArray;NSCharacterSet Methods Added+ (NSCharacterSet *)capitalizedLetterCharacterSet;- (BOOL)longCharacterIsMember:(UTF32Char)theLongChar;- (BOOL)isSupersetOfSet:(NSCharacterSet *)theOtherSet;- (BOOL)hasMemberInPlane:(uint8_t)thePlane;NSCoder Methods Added- (BOOL)allowsKeyedCoding;- (void)encodeObject:(id)objv forKey:(NSString *)key;- (void)encodeConditionalObject:(id)objv forKey:(NSString )key;- (void)encodeBool:(BOOL)boolv forKey:(NSString )key;- (void)encodeInt:(int)intv forKey:(NSString )key;- (void)encodeInt32:(int32_t)intv forKey:(NSString )key;- (void)encodeInt64:(int64_t)intv forKey:(NSString )key;- (void)encodeFloat:(float)realv forKey:(NSString )key;- (void)encodeDouble:(double)realv forKey:(NSString )key;- (void)encodeBytes:(const uint8_t )bytesp length:(unsigned)lenv forKey:(NSString *)key;- (BOOL)containsValueForKey:(NSString )key;- (id)decodeObjectForKey:(NSString )key;- (BOOL)decodeBoolForKey:(NSString )key;- (int)decodeIntForKey:(NSString )key;- (int32_t)decodeInt32ForKey:(NSString )key;- (int64_t)decodeInt64ForKey:(NSString )key;- (float)decodeFloatForKey:(NSString )key;- (double)decodeDoubleForKey:(NSString )key;- (const uint8_t )decodeBytesForKey:(NSString *)key returnedLength:(unsigned *)lengthp;NSColor Methods Added+ (NSColor *)alternateSelectedControlColor;+ (NSColor )alternateSelectedControlTextColor;NSColorPanel Constants AddedNSCrayonModeColorPanelNSColorPanelCrayonModeMaskNSData Methods Added+ (id)dataWithBytesNoCopy:(void )bytes length:(unsigned)length freeWhenDone:(BOOL)b;- (id)initWithBytesNoCopy:(void )bytes length:(unsigned)length freeWhenDone:(BOOL)b;- (void)replaceBytesInRange:(NSRange)range withBytes:(const void )replacementBytes length:(unsigned)replacementLength;NSDictionary (NSFileAttributes) Methods Addded- (BOOL)fileIsImmutable;- (BOOL)fileIsAppendOnly;- (NSDate *)fileCreationDate;- (NSNumber )fileOwnerAccountID;- (NSNumber )fileGroupOwnerAccountID;NSDirectoryEnumerator Constants AdddedNSFileImmutableNSFileAppendOnlyNSFileCreationDateNSFileOwnerAccountIDNSFileGroupOwnerAccountIDNSFileManager Methods Added- (NSArray *)componentsToDisplayForPath:(NSString *)path;NSObject(NSDraggingSource) Methods Added- (NSArray *)namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination;10.2.1:Description forthcoming.10.2.2:Description forthcoming.10.2.3:Description forthcoming.10.2.4:Description forthcoming.10.2.5:Description forthcoming.10.2.6:Description forthcoming.10.2.7:Description forthcoming.10.2.8:Description forthcoming.—-10.3.0:Class added: NSAlert [AppKit]Class added: NSSpeechRecognizer [AppKit]Class added: NSSpeechSynthesizer [AppKit]Class added: NSShadow [AppKit]Class added: NSNib [AppKit]Class added: NSSegmentedControl/NSSegmentedCell [AppKit]Class added: NSSearchField/NSSearchFieldCell [AppKit]New method: - (void)setSliderType:(NSSliderType)sliderType; [NSSlider]New method: - (NSSliderType)sliderType; [NSSlider]New method: - (void)setMessage:(NSString *)message; [NSOpen/SavePanel]Method removed: -selectText: [NSOpen/SavePanel]Method removed: -scrollViaScroller: [NSBrowser]Method removed: -updateScroller [NSBrowser]Method removed: -displayColumn: [NSBrowser]Method removed: - (void)selectColumn:(int)column byExtendingSelection:(BOOL)extend; [NSTableView]Method removed: - (void)selectRow:(int)row byExtendingSelection:(BOOL)extend; [NSTableView]Method removed: - (NSEnumerator )selectedColumnEnumerator; [NSTableView]Method removed: - (NSEnumerator )selectedRowEnumerator; [NSTableView]Method removed: - (void)setDrawsGrid:(BOOL)drawGrid; [NSTableView]Method removed: - (BOOL)drawsGrid; [NSTableView]—-Comments:Re: *Description forthcoming. So we’re reprinting all the conceptual documentation here? :-)And the release notes…I think the idea is that if all the important changes are here, you could just do a simple Command+F and find all the changes to a specific class. I think it’s a neat idea.”That was, I say, that was a joke, son,” and it was funny ‘cause of all Apple’s conceptual documentation that used to say “Description forthcoming.” I swear, it’s like pearls before swine. :-)I thought it was funny… :-)It’s nice to be appreciated… – DustinVossWe love you, Dustin!**—-Why not just use http://developer.apple.com/documentation/ReleaseNotes/index.html ? – FinlayDobbie—-I agree that this page would be useful (it’s easier to search than release notes), but maybe your format is a bit demanding? No one seems to have added stuff, and it seems a bit daunting to me. I don’t see what’s wrong with ‘Added NSAppleScript’, or whatever else someone feels like writing.—-Updated a few things but someone will need to assist with the task as its rather massive. I think the deprecated items are probably the most important. – MatPeterson—-Uh … Apple does not rev Cocoa API during dot updates. – MikeTrentWell - that’s not necessarily true… 10.2.7 added the big ole smorgasbord of WebKit to the mix.—-We do have nice long lists of bug fixes like 10.2.3…but otherwise you are correct.—-I’m not sure of the reason for this page - we all have release notes on our hard drives at [file:///Developer/Documentation/ReleaseNotes/index.html]. If someone’s going to take the time to copy and reformat all those over here, then fine. If not, it seems a bit risky to rely on the info here in preference to the ‘real’ source.—-This page is interesting to glance over especially as a newbie. Its an easy to understand comparison of versions. It’s my impression that the ‘real source’ has not been too diligent at thorough documentation in the past, therefore why not have a people’s version of the documentation? After all, isn’t this whole site filling in gaps that Apple could have filled itself?