A set of extensions to Foundation
Objective-C C Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
M3Foundation.xcodeproj
M3Foundation
M3FoundationTests
Scripts
.gitignore
LICENCE.txt
README.md

README.md

M3Foundation 1.0.1

M3Foundation is a collection of categories and classes that extend and enhance the Foundation framework. This functionality is taken from various M Cubed applications.

M3Foundation includes the following:

  • Safer access/editing of arrays and dictionaries
  • performBlock:withDelay: methods
  • Replace the implementation of a method on a single object
  • Bulk KVO operations
  • Simplified XML access
  • Conversion of predicates and expressions to and from XML representation
  • Value transformers for file sizes and CSV strings
  • A NSOperation subclass for URL connections

And more

M3Foundation is currently Mac-only. An iOS version is in the works for M3Foundation 1.1.

M3Foundation requires Lion and Xcode 4.4+


Change Log

1.0.1

  • Moved some headers from Protected to Public

1.0

  • Removed M3Accessibility classes
  • Removed the M3DFA class
  • Removed the NSFileManager category
  • Removed the NSMutableSet category
  • No longer supports Garbage Collection, instead uses ARC
  • Improved tests
  • Updated to modern Obj-C syntax
  • Fixed the naming of some methods
  • Modified some methods to make more logical and practical sense
  • Added category for working with NSCountedSet
  • Added NSDictionary category to add equivalent to -[NSArray arrayByAddingObject:]
  • Added subscripting to NSMapTable

API changes

M3AccessibilityController (removed)


M3AccessibleUIElement (removed)


NSArray+M3Extensions

Changed
Old: - (id)m3_objectPassingTest:(BOOL (^)(id))
New: - (id)m3_firstObjectPassingTest:(BOOL (^)(id))


NSCountedSet+M3Extensions (added)

Added
- (NSSet *)m3_objectsWithCount:(NSUInteger) @property (readonly) NSUInteger m3_countedObjectTotal


M3DFA (removed)


NSDictionary+M3Extensions (added)

Added
- (NSDictionary *)m3_dictionaryBySettingObject:(id) forKey:(id <NSCopying>)


NSExpression+M3Extensions

Changed
Old: + (NSExpression *)m3_expressionFromXMLElement:(NSXMLElement *)
New: + (NSExpression *)m3_expressionWithXMLElement:(NSXMLElement *)


NSFileManager+M3Extensions (removed)


NSKeyValueObserving+M3Extensions (added) Added
- (void)m3_addObserver:(NSObject *) forKeyPathsInArray:(NSArray *) options:(NSKeyValueObservingOptions) context:(void *) - (void)m3_removeObserver:(NSObject *) forKeyPathsInArray:(NSArray *) - (void)m3_willChangeValueForKeys:(NSArray *) - (void)m3_didChangeValueForKeys:(NSArray *)


NSMapTable+M3Extensions (added)

Added
- (id)objectForKeyedSubscript:(id) - (void)setObject:(id) forKeyedSubscript:(id)


NSMutableArray+M3Extensions

Changed
Old: - (void)m3_moveObject:(id) toIndex:(NSUInteger)
New: - (void)m3_moveObjectAtIndex:(NSUInteger) toIndex:(NSUInteger)


NSMutableSet+M3Extensions (removed)


NSObject+M3Extensions

Changed
Old: - (id)m3_replaceImplementationOfMethodWithSelector:(SEL) with:(void *)
New: - (id)m3_replaceImplementationOfMethodWithSelector:(SEL) withBlock:(id)

Removed
- (void)m3_addObserver:(NSObject *) forKeyPathsInArray:(NSArray *) options:(NSKeyValueObservingOptions) context:(void *) - (void)m3_removeObserver:(NSObject *) forKeyPathsInArray:(NSArray *) - (void)m3_willChangeValueForKeys:(NSArray *) - (void)m3_didChangeValueForKeys:(NSArray *)


NSPredicate+M3Extensions

Changed
Old: + (NSPredicate *)m3_predicateFromXMLElement:(NSXMLElement *)
New: + (NSPredicate *)m3_predicateWithXMLElement:(NSXMLElement *)


NSXMLNode+M3Extensions

Removed
- (NSXMLNode *)m3_nodeForXPath:(NSString *) error:(NSError **)