Accessorizer Changelog

What's new in Accessorizer 3.0.1

Jan 19, 2012
  • New action in Action Menu and Action Panel for intiWith: (declaration) generation.
  • NSLog() can now be generated in accessor overrides from Action Menu and Action Panel
  • Fixed missing pointer when generating initWith: method from the main Accessorizer interface.
  • Generating from the Action Menu or Action Panel didn’t have the issue.
  • Fixed missing quotes on in will/did access/change wrappers in setter override when generating from Action Menu or Action Panel.
  • Moved the -description override to follow -descriptionForKeyPaths: to avoid compiler warning.
  • Removed extra space before semi-colon when generating Protocol Stubs from definitions.
  • Removed extraneous pointer to id when last element in an initWith: signature was of type id.

New in Accessorizer 3.0 (Jan 14, 2012)

  • New Features:
  • ARC (Automatic Reference Counting) with option for zeroing or non-zeroing.
  • Note, you can still generate a -dealloc method.  It will not call super. 
  • It will handle CF pointer types with CFRelease() and will nil your delegates.
  • Multiple ivars or properties declared on a single line - note format:
NSString *name, *title;
CGFloat a, b, c;  
where the pointer is bound to the ivar with no space
Full Screen support for Xcode.  Action Menu has option to open under mouse and as status item.  
Xcode Full Screen mode is now supported in both cases
Core Data Accessors action now available via Action Menu and Action Panel
  • It auto-detects for object vs scalar
Core Data To-Many Relationship action now available via Action Menu and Action Panel
  • Accessor action for will/did/access/change overrides now available via Action Menu and Action Panel
  • Create typedef enum block with optional switch case action, and options for setting values on enums, bitmask etc.
Restore Pasteboard.  There's a new switch and a slider for setting the delay time for restoration after auto inserting results at your editor's insertion point (either Xcode or TextMate).
NSTimer detection, will invalidate in -dealloc under both ARC and NON-ARC
Auto-insert of prefix/suffix for @property statements is now extended to place-holder (temporary) ivar declarations
Key-value separator for the Description for keys action
  • All new help guide
  • Fixes and tweaks:
  • Accessorizer alerts you now for enabling access to assistive devices for Action Menu global hotkey
  • Changed the Non-GCD Singleton code, you still have the GCD option
  • Added ADBannerView to IBOutlet detection
  • Fixed recent bug where a list of ivar declarations ending in a scalar would prevent objects from being generated for -dealloc method
  • Fixed detection of Assign Delegates preference for keyed-archiving generation
  • Fixed condition when Default Properties table was not primed
  • Fixed dealloc of CF pointer types under certain Accessorizer dealloc settings
  • Fixed CF*Ref types for property generation under ARC and NON-ARC
  • Added missing newline when generating properties from the custom table
  • Added a switch to toggle appending method sig when generating method stubs in Coding Styles -> Formatting panel -> Methods
  • Added #warning to unsupported types for keyed-archiving
  • Fixed bug when ivar declaration list ends with scalar and the dealloc action is called
  • Toggling key paths generation from main interface no long accidentally activates Xcode
  • Removed unnecessary comma when omitting atomicity specifier in property declaration under a particular setting combination
  • Fixed parser when sucking in commented-out property declarations
  • Fixed minor bug in keyed-archiving under certain settings
  • Fixed Constants for Properties when classname is absent
  • Inserted newline in front of pragma marks
  • Removed undesirable newline at end of properties generation
  • Fixed @synthesize when dealing with array pointers such as  double **array_C;
  • Fixed a bug when invoking a service on typedef enum { ... }
  • Added #warning compiler directive for unsupported types in keyed-archiving
  • Core Foundation objects no longer present warning in keyed-archiving
  • Fixed bug where an @property statement following a commented line would not get parsed
  • Fixed sorting on properties by name - results were not being put on pasteboard, they are now
  • Fixed sorting on properties by type, then name - results were null
  • NSLog() action no longer inserts results twice
  • Fixed action menu statusItem issue when applying settings from configuration sets
  • Fixed state of Detect NSCopying Switch in Configuration Sets
  • KeyValidation code generation now uses place-holder tokens for receiver.

New in Accessorizer 2.9.9.1 (Jun 20, 2011)

  • Improved Xcode activation on fast Macs where activation was sometimes unreliable.
  • Started minor support for block variables (this will be fleshed out in V3.0) for now, you can at least generate @synthesize and -dealloc from @properties which are block variables

New in Accessorizer 2.9.9 (Jun 8, 2011)

  • Fixed issue where Accessorizer could become unresponsive if certain garbage, malformed text was passed in.

New in Accessorizer 2.9.8 (Jun 6, 2011)

  • Added missing underscore separator for custom key prefix when generating keyed-archiving
  • If generating code via single-point-of entry Accessorizer Action Panel Service, Case for Enums behaves like dedicated enum services
  • Stripped out newline at the end of property statements generation results
  • Fixed placeholder for class name when generating Constants for Properties from within Accessorizer's interface.
  • Prepended newline for pragma marks. Good for when @synthesize statements are on single line.
  • Fixed bug with IBOutlets and -initWith (and other methods) when code selection contained only IBOutlets and Detect IBOutlets was turned ON
  • Generaing keys from @properties now behaves like generating keys from ivar declarations

New in Accessorizer 2.9.7 (May 7, 2011)

  • Added option to choose dot or bracket syntax for -viewDidUnload
  • Fixed Constants for Properties radio matrix that could get into wrong state under certain situations
  • Fixed parser when generating code off @property statements that may include // comments

New in Accessorizer 2.9.6 (Apr 18, 2011)

  • Added new Action to convert strings to constants based on keyed-archiving preferences
  • Fixed Constants for Properties: classname is now captured if you include @interface MyClass: ... {...} in your code selection
  • Fixed Action Panel hides on editor deactivate which broke when adding support for TextMate
  • Fixed parsing when protocol > butts up against ivar name
  • Updated Accessorizer's Distributed Objects client demo

New in Accessorizer 2.9.5 (Apr 8, 2011)

  • Fixed bug in ivar prefix for single character ivar
  • Added new methods for Accessorizer’s Distributed Objects Server

New in Accessorizer 2.9.4 (Apr 7, 2011)

  • Prototype stubs generation can now go in either direction:
  • Create definitions from declarations
  • Create declarations from definitions
  • Support for Textmate activation and auto-paste at insertion point
  • Select your editor in the General Tab pane
  • Fixed issue where a second Action Menu could get installed based on Configuration Sets
  • Fixed issue where certain custom prefix combinations could cause a null value

New in Accessorizer 2.9.3 (Mar 30, 2011)

  • Introduces three new features along with a few fixes and improvements.

New in Accessorizer 2.9.2 (Mar 14, 2011)

  • Introduces two powerful interfaces that seamlessly integrate with Xcode.

New in Accessorizer 2.9.1 (Mar 11, 2011)

  • Compatible with Xcode 4, Xcode 3, Mac OS X 10.6+ (tested on Lion/X4.1 preview)
  • New HIDE switch toggles hiding Action Panel on Xcode deactivation
  • Can have both Xcode 3 and Xcode 4 running at the same time, Action Panel
  • Will activate and auto-paste at the active Xcode's insertion point
  • Fixed hiding of Action Panel on some systems where notifications didn't trigger desired results

New in Accessorizer 2.9 (Mar 8, 2011)

  • New Action Panel with 27+ code generation features
  • With Xcode Activation turned ON, Services and Action Panel actions activate Xcode upon completion
  • Action panel supports automatic paste of results at Xcode insertion point, no need to cmdTAB to Xcode and cmdv to paste
  • You never have to leave Xcode when generating code via Accessorizer if you are running on Mac OS X 10.6+
  • New and updated services and actions include:
  • Delegate stubs
  • Prototype stubs
  • Description for keys
  • Keys
  • Setter override
  • Getter override
  • Accessors override
  • Selector
  • Selector and wrap
  • NSlog()
  • Delegate stubs and Prototype stubs append commentedout selector
  • Preference to tell Accessorizer's main window to miniaturize to the Dock at launch
  • Added long slashes to header options
  • Changes toolbar icons for Dealloc and viewDidUnload actions
  • Removed support for Java

New in Accessorizer 2.8 (Feb 7, 2011)

  • Added support for block variables
  • Added new Service: Create Delegate Stubs
  • Added new Service: Bitmask for Enums on 0
  • Added new Service: Bitmask for Enums on 1
  • Modified existing Service: Prototype stubs
  • You can now gen code from @property when pasted into ivar pane
  • Convert method to selector (and wrap) services now pushed to output pane

New in Accessorizer 2.7 (Jan 26, 2011)

  • Added new Service: Case for Enums
  • Added new Service: Constants for Properties
  • Added support for GCD (Grand Central Dispatch) style Singleton generation
  • Fixed return + typo in one of the unordered collection accessor methods for NSSet

New in Accessorizer 2.6 (Jan 15, 2011)

  • Added support for GCD (Grand Central Dispatch) style Singleton generation

New in Accessorizer 2.5 (Dec 8, 2010)

  • Setting your custom class as an IBOutlet in the Defaults Table is now picked up by -viewDidUnload {}
  • Fixed will/did access/change methods and bindings
  • Sorting now covers more edge cases
  • Fixed edge cases when generating code based on @property statements via Services
  • Added support for more types in keyed archiving
  • Lots of UI layout tweaks
  • Pragma Mark generator now honors Tight/Spaced coding-style settings

New in Accessorizer 2.3.2 (Oct 31, 2010)

  • Fixed code gen based on @property statements when no specifiers are present

New in Accessorizer 2.3 (Oct 2, 2010)

  • Accessorizer is faster than ever - and now supports the modern runtime where you no longer need to declare ivars. Accessorizer 2.3 generates code via property statements OR ivar declarations. All Services and code generation keyboard shortcuts remain the same.
  • New option for synthesize on one line, can exclude compiler directive and insert spaces for custom formatting. Extremely fast and efficient insert of code into existing file.
  • Added support for MCRelease() macro in dealloc
  • Fixed missing bracket in Keyed-Archiving when using dot notation for accessors
  • New videos showing V2.3 features and how to maximize efficiency when working in Xcode

New in Accessorizer 2.2.1 (Aug 11, 2010)

  • Configuration sets now correctly remember state of Detect NSCopying switch
  • -viewDidUnload method sig now honors coding style for methods

New in Accessorizer 2.2 (Jul 31, 2010)

  • New switch to toggle detection of NSCopying protocol
  • Sparkle support
  • New "inherit" option in Defaults Table that inherits the attribute from the general preferences (for properties only) - Nice suggestion Paul Goracke!
  • Keyed Archiving and other methods where appropriate now use dot notation if in Objective-C 2.0 mode
  • Added minimal support for CF types and ObjC 2.0 properties (work in progress)
  • Fixed missing bracket in init and initWith if using 1.0 style accessors instead of setting directly if your ivar is a scalar
  • Modified  Keyed Archiving code when using direct access to variables 
  • Fixed issue when setting customKeyPrefix would set the value on customIvarPrefix

New in Accessorizer 2.1.1 (Jul 11, 2010)

  • Fixed capitalization bug I introduced in 2.1 for prefix
  • Argument prefix now honors ivar prefix settings

New in Accessorizer 2.1.0 (Jul 10, 2010)

  • Defaults Table values are are now stored with a configuration
  • Keyboard shortcut CMD[ to show Accessor Style Tab
  • Keyboard shortcut CMD] to show Defaults Table Tab
  • Keyboard shortcut CMD\ to show Custom Table Tab
  • Keyboard shortcut CMD= to open Configuration Sets window
  • Keyboard shortcut CMD- to show CodingStyle Tab
  • Much better NSCopying and NSCopying protocol detection for Cocoa and Custom classes
  • Fixed pointer issue when type was id with protocol
  • Fixed special case with ivar prefix and suffix when they use the same character string
  • Fixed init, initWith:, objectWith:, methodName:, nilValueForKey:, will/didChangeValueForKey: methods and added more smarts
  • they honor the defaults table's values
  • they ignore IBOutlets when appropriate
  • if readonly is in the general prefs, and if "use setters" is ON, the ivar is explicitly assigned and a setter is overruled
  • ivar's class is checked for conformance with NSCopying and NSMutableCopying protocols
  • Fixed key name in nilValueForKey: when using ivar prefix or suffix
  • Fixed duplicate code gen under certain configurations of special code such as nilValueForKey, objectWith ... etc

New in Accessorizer 2.0 (May 30, 2010)

  • Added @property statement formatting panel for finer control over output string.
  • Added a new Configuration Sets panel allowing you to save, load, export/import the group of over 150 settings with the click of a button.
  • This allows you to use consistent settings depending on a project, and can help provide consistent coding standards across a team.
  • The interface allows you to launch with a designated default configuration and other options.
  • Filename extension for configuration files is: .azcf (for "Accessorizer configuration file").
  • If you import a configuration that has the same name as an existing configuration,
Accessorizer will append ** NEW ** to the imported config's name.
  • Added a new Custom Pragma Marks panel.
  • When using @dynamic and overriding accessors, Accessorizer is smart about classes conforming to NSCopying and NSMutableCopying and will select explicit accessors appropriately.
  • Added a NONE option for Argument Prefix. Mind you, if you choose this option, you'll need to either prefix or postfix your ivars, otherwise, you will get compile errors.
  • Added switch to toggle omitting assign for scalars.
  • Changed init method generation to reflect Apple's new recommendation
  • Added new header style (+----------+---------+)
  • Added switch to turn off rich text in ivars pane.
  • Added more detectable UIViews for IBOutlet detection.
  • Changed init methods and keyed archiving to reflect Apple’s new changes in coding standards.
  • Fixed IBOutlet detection for NSView and its subclasses.
  • Removed the "atomic" keyword option from the atomicity matrix, default and custom tables.
  • New option to nil ivar out in dealloc on newline instead of on same line as [ivar release];
  • Registering for NSUndoManager now overrides @synthesize for properties and generates a setter with undo manager support.
  • Indexed accessor method declarations are now in same order as their implementation methods.
  • More tooltips for more controls.

New in Accessorizer 1.7 (Mar 22, 2010)

  • Added new Service for generating protocol stubs from protocol declarations.
  • Added switch for "Assign delegates" where Accessorizer will automatically select the assign property attribute and if overriding via @dynamic (and creating your own getter/setter), Accessorizer will choose the simple return delegate in the getter and assign delegate in the setter.
  • Changed algorithm for detecting IBOutlets for NSView classes.
  • Added keyed archiving support for the following types:
  • CGPoint
  • CGSize
  • CGRect
  • CGFloat
  • CGAffineTransform
  • UIEdgeInsets
  • Fixed issue when Detect IBOutlet is ON and certain TYPES are passed in such as NSURLConnection.

New in Accessorizer 1.6.1 (Nov 30, 2009)

  • Fixed sorting of @property block where under certain rare instances, there might be a duplication.
  • Removed extra newlines after @synthesize block.
  • Modified NSLog output for explicit accessors: now uses __FUNCTION__.
  • UIPickerView is now properly detected as an IBOutlet.
  • Improved formatting output of string in - (NSString *) descriptionForKeyPaths.
  • Added pragma marks for keyPaths and init methods.

New in Accessorizer 1.6 (Nov 16, 2009)

  • Modified the Detect IBOutlets so that the switch honors the Defaults Table settings and can be overridden by the Custom Table
  • Added an new toolbar item to set IBOutlets to nil
  • Added switch to append self.view=nil; to implementation output
  • Added switch to surround self.view=nil; block with -viewDidUnload method sig (Service is cmd-9)
  • Added a persistent caching mechanism for custom table use (see tech note & video link below)
  • Added switch to handle BOOL as special case for inserting getter=isValue in @property statement
  • Added the ability to define a custom argument NAME in collection accessors (can already set custom return and argument TYPES)
  • Added new SORT tab for sorting ivar declaration block, @properties block, @synthesize block. dealloc block, -viewDidUnload method on NAME or on TYPE then NAME where appropriate
  • Added new Service for sorting using cmd-shift-9 shortcut *** NOTE: you must enable Service under Snow Leopard in System Preferences - Keyboard - Keyboard Shortcuts - Services - Text
  • Added a - (id) getforKey: for NSMutableDictionary add/remove methods
  • Fixed missing space after IBOutlet keyword insert if coding style is set to TIGHT formatting
  • Fixed crash if Detect IBOutlets is turned on and type is an NSURLConnection
  • Fixed singleton code in + (id) allocWithZone: (NSZone *)zone
  • Fixed bracing in a few methods when using Robust Indexed Accessors
  • Fixed arg type for get:range
  • Fixed extra space after @synthesize when using Custom Table
  • Fixed indentation in key validation code output
  • Objects which are assigned no longer have a release message generated in dealloc
  • In indexed accessors, changed "index" argument to "idx"

New in Accessorizer 1.5 (Oct 17, 2009)

  • Added a Detect IBOutlet switch - Accessorizer now inserts IBOutlet for NSView (and subclasses) and UIKit classes which are commonly IBOutlets.
  • Fixed postFix (suffix) if the suffix occurs elsewhere in the ivar nameettings found in the lower half of the main view.

New in Accessorizer 1.4 (Oct 2, 2009)

  • Added Add/Remove methods for mutable collections.
  • Added an option to set the type in collections (NSMutableDictionary) to NSString
  • Added support for capitalized ivar (already have support for acronyms).
  • Added Service for unordered collections.
  • Changed Singleton code generation.
  • Singleton code based off Peter Hosey's http://boredzo.org/blog/archives/2009-06-17/doing-it-wrong.
  • Fixed cmd key shortcuts for Toolbar code generation.
  • Fixed missing space after IBOutlet when coding style is set to "tight".
  • Fixed validation code.
  • Fixed @synthesize assignment when only some of the ivars in a block of ivars may be using a prefix or postfix.
  • Removed disabled Preferences menu item as the preferences are really just settings found in the lower half of the main view.
  • Changed the TAB order: swapped Defaults table and Custom table positions.

New in Accessorizer 1.3 (Sep 4, 2009)

  • Fixed Check for Updates code to handle more complex network scenarios across different machine types.
  • Custom changes are now cached keeping Services from blowing away settings.
  • Setting a property to assign if it's a pointer no longer generates a release in dealloc.
  • Swapped menu shortcuts for Indexed Accessors and Unordered Collection Accessors.

New in Accessorizer 1.2.4 (Jul 22, 2009)

  • Unordered collection -(void)intersect... was missing return

New in Accessorizer 1.2.3 (Jun 6, 2009)

  • Put dealloc's ivar = nil; on same same line as release.
  • Fixed code for update check when internet connection is not available.
  • Added option for postfixing key constants with "_KEY" for keyed archiving.
  • Fixed issue with decimals in ivar name when creating constants with for keyed archiving.
  • Improved -copyWithZone:(NSZone *)zone in keyed archiving.

New in Accessorizer 1.2.2 (Mar 23, 2009)

  • Fixed a bug introduced in 1.2.1 when adding POSTFIX support that prevented single-character variable names.

New in Accessorizer 1.2.1 (Feb 11, 2009)

  • Added support for POSTFIX and fixed PREFIX when using 2.0 properties
  • Built for both Leopard and Tiger
  • Fixed bug in registration panel: now shows REGISTERED after clicking REGISTER button
  • Fixed TRIAL period for those who tried 1.1 versions but would like to try 1.2.x
  • Removed unnecessary newlines with HEADER was set to NO HEADER
  • Fixed duplicated dealloc message when customizing output from CUSTOM TABLE
  • Fixed output of CMD-3 when using CUSTOM TABLE and dynamic accessors are generated

New in Accessorizer 1.2 (Feb 6, 2009)

  • Added support for KVC accessors for unordered collections
  • Added support for @property and @synthesize
  • Added support for generating CONSTANTS for keys in KeyedArchiving
  • init methods can toggle using setter or direct assignment
  • Update Core Data code for persisting Non-Standard Attributes
  • Fixed wilChangeValueForKey: ... to willChangeValueForKey:
  • Can now choose to generate the dealloc block or just the release code for the specific ivars
  • fixed bug in Core Data generation when type is id
  • Changing values in either the defaults table or the custom table auto-generates new code
  • Some button style changes
  • Removed the Options Drawer