diff --git a/.travis.yml b/.travis.yml index 1a0f504..6f525fc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,5 @@ language: objective-c +osx_image: xcode7.2 before_install: - cd Example diff --git a/Classes/NSArray+ObjectiveSugar.h b/Classes/NSArray+ObjectiveSugar.h index 05a13bf..1e2da4c 100644 --- a/Classes/NSArray+ObjectiveSugar.h +++ b/Classes/NSArray+ObjectiveSugar.h @@ -10,31 +10,33 @@ #import -@interface NSArray (ObjectiveSugar) +NS_ASSUME_NONNULL_BEGIN + +@interface NSArray<__covariant ObjectType> (ObjectiveSugar) /** The first item in the array, or nil. @return The first item in the array, or nil. */ -- (id)first DEPRECATED_MSG_ATTRIBUTE("Please use -firstObject instead"); +- (nullable ObjectType)first DEPRECATED_MSG_ATTRIBUTE("Please use -firstObject instead"); /** The last item in the array, or nil. @return The last item in the array, or nil. */ -- (id)last DEPRECATED_MSG_ATTRIBUTE("Please use -lastObject instead"); +- (nullable ObjectType)last DEPRECATED_MSG_ATTRIBUTE("Please use -lastObject instead"); /** A random element in the array, or nil. @return A random element in the array, or nil. */ -- (id)sample; +- (nullable ObjectType)sample; /// Alias for -sample -- (id)anyObject; +- (nullable ObjectType)anyObject; /** @@ -50,7 +52,7 @@ @return An array with elements within the specified range */ -- (id)objectForKeyedSubscript:(id )key; +- (NSArray *)objectForKeyedSubscript:(id )key; /** @@ -58,14 +60,14 @@ @param block A block with the object in its arguments. */ -- (void)each:(void (^)(id object))block; +- (void)each:(void (^)(ObjectType object))block; /** A simpler alias for `enumerateObjectsUsingBlock` which also passes in an index @param block A block with the object in its arguments. */ -- (void)eachWithIndex:(void (^)(id object, NSUInteger index))block; +- (void)eachWithIndex:(void (^)(ObjectType object, NSUInteger index))block; /** A simpler alias for `enumerateObjectsWithOptions:usingBlock:` @@ -74,7 +76,7 @@ @param options Enumerating options. */ -- (void)each:(void (^)(id object))block options:(NSEnumerationOptions)options; +- (void)each:(void (^)(ObjectType object))block options:(NSEnumerationOptions)options; /** A simpler alias for `enumerateObjectsWithOptions:usingBlock:` which also passes in an index @@ -83,7 +85,7 @@ @param options Enumerating options. */ -- (void)eachWithIndex:(void (^)(id object, NSUInteger index))block options:(NSEnumerationOptions)options; +- (void)eachWithIndex:(void (^)(ObjectType object, NSUInteger index))block options:(NSEnumerationOptions)options; /** @@ -91,7 +93,7 @@ @param object An object that the array may or may not contain. */ -- (BOOL)includes:(id)object; +- (BOOL)includes:(ObjectType)object; /** Take the first `numberOfElements` out of the array, or the maximum amount of @@ -100,7 +102,7 @@ @param numberOfElements Number of elements to take from array @return An array of elements */ -- (NSArray *)take:(NSUInteger)numberOfElements; +- (NSArray *)take:(NSUInteger)numberOfElements; /** Passes elements to the `block` until the block returns NO, @@ -109,7 +111,7 @@ @param block A block that returns YES/NO @return An array of elements */ -- (NSArray *)takeWhile:(BOOL (^)(id object))block; +- (NSArray *)takeWhile:(BOOL (^)(ObjectType object))block; /** Iterate through the current array running the block on each object and @@ -118,7 +120,7 @@ @param block A block that passes in each object and returns a modified object @return An array of modified elements */ -- (NSArray *)map:(id (^)(id object))block; +- (NSArray *)map:(id(^)(ObjectType object))block; /** Iterate through current array asking whether to keep each element. @@ -126,7 +128,7 @@ @param block A block that returns YES/NO for whether the object should stay @return An array of elements selected */ -- (NSArray *)select:(BOOL (^)(id object))block; +- (NSArray *)select:(BOOL (^)(ObjectType object))block; /** Iterate through current array returning the first element meeting a criteria. @@ -134,7 +136,7 @@ @param block A block that returns YES/NO @return The first matching element */ -- (id)detect:(BOOL (^)(id object))block; +- (nullable ObjectType)detect:(BOOL (^)(ObjectType object))block; /** @@ -144,7 +146,7 @@ @param block A block that returns YES/NO @return The first matching element */ -- (id)find:(BOOL (^)(id object))block; +- (nullable ObjectType)find:(BOOL (^)(ObjectType object))block; /** Iterate through current array asking whether to remove each element. @@ -152,7 +154,7 @@ @param block A block that returns YES/NO for whether the object should be removed @return An array of elements not rejected */ -- (NSArray *)reject:(BOOL (^)(id object))block; +- (NSArray *)reject:(BOOL (^)(ObjectType object))block; /** Recurse through self checking for NSArrays and extract all elements into one single array @@ -187,21 +189,21 @@ @return A sorted copy of the array */ -- (NSArray *)sort; +- (NSArray *)sort; /** Sorts the array using the the default comparator on the given key @return A sorted copy of the array */ -- (NSArray *)sortBy:(NSString *)key; +- (NSArray *)sortBy:(NSString *)key; /** Alias for reverseObjectEnumerator.allObjects Returns a reversed array */ -- (NSArray *)reverse; +- (NSArray *)reverse; /** Return all the objects that are in both self and `array`. @@ -209,7 +211,7 @@ @return An array of objects common to both arrays */ -- (NSArray *)intersectionWithArray:(NSArray *)array; +- (NSArray *)intersectionWithArray:(NSArray *)array; /** Return all the objects that in both self and `array` combined. @@ -218,7 +220,7 @@ @return An array of the two arrays combined */ -- (NSArray *)unionWithArray:(NSArray *)array; +- (NSArray *)unionWithArray:(NSArray *)array; /** Return all the objects in self that are not in `array`. @@ -227,7 +229,7 @@ @return An array of the self without objects in `array` */ -- (NSArray *)relativeComplement:(NSArray *)array; +- (NSArray *)relativeComplement:(NSArray *)array; /** Return all the objects that are unique to each array individually @@ -235,26 +237,27 @@ @return An array of elements which are in either of the arrays and not in their intersection. */ -- (NSArray *)symmetricDifference:(NSArray *)array; +- (NSArray *)symmetricDifference:(NSArray *)array; /** Return a single value from an array by iterating through the elements and transforming a running total. @return A single value that is the end result of apply the block function to each element successively. **/ -- (id)reduce:(id (^)(id accumulator, id object))block; +- (nullable id)reduce:(id __nullable (^)(id __nullable accumulator, ObjectType object))block; /** Same as -reduce, with initial value provided by yourself **/ -- (id)reduce:(id)initial withBlock:(id (^)(id accumulator, id object))block; +- (nullable id)reduce:(nullable id)initial withBlock:(id __nullable (^)(id __nullable accumulator, ObjectType object))block; /** Produces a duplicate-free version of the array @return a new array with all unique elements **/ -- (NSArray *)unique; +- (NSArray *)unique; @end +NS_ASSUME_NONNULL_END \ No newline at end of file diff --git a/Classes/NSDictionary+ObjectiveSugar.h b/Classes/NSDictionary+ObjectiveSugar.h index 20b0d25..3aac340 100644 --- a/Classes/NSDictionary+ObjectiveSugar.h +++ b/Classes/NSDictionary+ObjectiveSugar.h @@ -8,17 +8,21 @@ #import -@interface NSDictionary (ObjectiveSugar) +NS_ASSUME_NONNULL_BEGIN -- (void)each:(void (^)(id key, id value))block; -- (void)eachKey:(void (^)(id key))block; -- (void)eachValue:(void (^)(id value))block; -- (NSArray *)map:(id (^)(id key, id value))block; -- (BOOL)hasKey:(id)key; -- (NSDictionary *)pick:(NSArray *)keys; -- (NSDictionary *)omit:(NSArray *)keys; -- (NSDictionary *)merge:(NSDictionary *)dictionary; -- (NSDictionary *)merge:(NSDictionary *)dictionary block:(id(^)(id key, id oldVal, id newVal))block; -- (NSDictionary *)invert; +@interface NSDictionary<__covariant KeyType, __covariant ObjectType> (ObjectiveSugar) + +- (void)each:(void (^)(KeyType key, ObjectType value))block; +- (void)eachKey:(void (^)(KeyType key))block; +- (void)eachValue:(void (^)(ObjectType value))block; +- (NSArray *)map:(id __nullable (^)(KeyType key, ObjectType value))block; +- (BOOL)hasKey:(KeyType)key; +- (NSDictionary *)pick:(NSArray *)keys; +- (NSDictionary *)omit:(NSArray *)keys; +- (NSDictionary *)merge:(NSDictionary *)dictionary; +- (NSDictionary *)merge:(NSDictionary *)dictionary block:(id __nullable (^)(id key, ObjectType oldVal, id newVal))block; +- (NSDictionary *)invert; @end + +NS_ASSUME_NONNULL_END diff --git a/Classes/NSMutableArray+ObjectiveSugar.h b/Classes/NSMutableArray+ObjectiveSugar.h index cecd5e8..30dd487 100644 --- a/Classes/NSMutableArray+ObjectiveSugar.h +++ b/Classes/NSMutableArray+ObjectiveSugar.h @@ -8,10 +8,12 @@ #import -@interface NSMutableArray (ObjectiveSugar) +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableArray (ObjectiveSugar) /// Alias for -addObject. Appends the given object at the end -- (void)push:(id)object; +- (void)push:(ObjectType)object; /** Removes the last item of the array, and returns that item @@ -19,7 +21,7 @@ @return First array item or nil. */ -- (id)pop; +- (nullable ObjectType)pop; /** @@ -28,8 +30,8 @@ @return First array item or nil. */ -- (NSArray *)pop:(NSUInteger)numberOfElements; -- (void)concat:(NSArray *)array; +- (NSArray *)pop:(NSUInteger)numberOfElements; +- (void)concat:(NSArray *)array; /** @@ -38,7 +40,7 @@ @return First array item or nil. */ -- (id)shift; +- (nullable ObjectType)shift; /** @@ -47,7 +49,7 @@ @return Array of first N items or empty array. */ -- (NSArray *)shift:(NSUInteger)numberOfElements; +- (NSArray *)shift:(NSUInteger)numberOfElements; /** @@ -56,6 +58,8 @@ @param block block that returns YES/NO @return An array of elements */ -- (NSArray *)keepIf:(BOOL (^)(id object))block; +- (NSArray *)keepIf:(BOOL (^)(ObjectType object))block; @end + +NS_ASSUME_NONNULL_END diff --git a/Classes/NSNumber+ObjectiveSugar.h b/Classes/NSNumber+ObjectiveSugar.h index 65b90dc..6645c6a 100644 --- a/Classes/NSNumber+ObjectiveSugar.h +++ b/Classes/NSNumber+ObjectiveSugar.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + @interface NSNumber (ObjectiveSugar) - (void)times:(void(^)(void))block; @@ -43,3 +45,5 @@ - (NSDate *)fromNow; @end + +NS_ASSUME_NONNULL_END diff --git a/Classes/NSSet+ObjectiveSugar.h b/Classes/NSSet+ObjectiveSugar.h index 53d213f..a2ec1c4 100644 --- a/Classes/NSSet+ObjectiveSugar.h +++ b/Classes/NSSet+ObjectiveSugar.h @@ -8,32 +8,34 @@ #import -@interface NSSet (Accessors) +NS_ASSUME_NONNULL_BEGIN + +@interface NSSet<__covariant ObjectType> (Accessors) /// Returns the first object of a given set. /// Note that sets are unordered, so this method won't always return the same thing -@property(readonly) id firstObject; +@property(readonly, nullable) ObjectType firstObject; /// Returns the last object of a given set. /// Note that sets are unordered, so this method won't always return the same thing -@property(readonly) id lastObject; +@property(readonly, nullable) ObjectType lastObject; /// Alias for -anyObject. Returns a random object from a given set -@property(readonly) id sample; +@property(readonly, nullable) ObjectType sample; /// Alias for -anyObject. Returns a random object from a given set -- (void)each:(void (^)(id object))block; -- (void)eachWithIndex:(void (^)(id object, NSUInteger index))block; +- (void)each:(void (^)(ObjectType object))block; +- (void)eachWithIndex:(void (^)(ObjectType object, NSUInteger index))block; /// Filters the given set using provided block, and returns an array copy -- (NSArray *)select:(BOOL (^)(id object))block; +- (NSArray *)select:(BOOL (^)(ObjectType object))block; /// Keeps the objects passing the given block, and returns an array copy -- (NSArray *)reject:(BOOL (^)(id object))block; +- (NSArray *)reject:(BOOL (^)(ObjectType object))block; /// Returns a sorted array copy of the given set -- (NSArray *)sort; +- (NSArray *)sort; /** * Maps the given NSSet to NSArray. @@ -46,24 +48,26 @@ * * @return An NSArray copy of the transformed set. */ -- (NSArray *)map:(id (^)(id object))block; +- (NSArray *)map:(nullable id (^)(ObjectType object))block; /** Return a single value from an array by iterating through the elements and transforming a running total. @return A single value that is the end result of apply the block function to each element successively. **/ -- (id)reduce:(id (^)(id accumulator, id object))block; +- (nullable id)reduce:(nullable id (^)(id __nullable accumulator, ObjectType object))block; /** Same as -reduce, with initial value provided by yourself **/ -- (id)reduce:(id)initial withBlock:(id (^)(id accumulator, id object))block; +- (nullable id)reduce:(nullable id)initial withBlock:(nullable id (^)(id __nullable accumulator, ObjectType object))block; #pragma mark - Deprecations -@property(readonly) id first DEPRECATED_MSG_ATTRIBUTE("Please use -firstObject"); -@property(readonly) id last DEPRECATED_MSG_ATTRIBUTE("Please use -lastObject"); +@property(readonly, nullable) ObjectType first DEPRECATED_MSG_ATTRIBUTE("Please use -firstObject"); +@property(readonly, nullable) ObjectType last DEPRECATED_MSG_ATTRIBUTE("Please use -lastObject"); @end + +NS_ASSUME_NONNULL_END diff --git a/Classes/NSString+ObjectiveSugar.h b/Classes/NSString+ObjectiveSugar.h index 9560aa6..c52ba3d 100644 --- a/Classes/NSString+ObjectiveSugar.h +++ b/Classes/NSString+ObjectiveSugar.h @@ -8,6 +8,8 @@ #import +NS_ASSUME_NONNULL_BEGIN + NSString *NSStringWithFormat(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); @interface NSString(ObjectiveSugar) @@ -65,7 +67,8 @@ NSString *NSStringWithFormat(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); @return A String matching the regex or nil if no match is found */ -- (NSString *)match:(NSString *)pattern; +- (nullable NSString *)match:(NSString *)pattern; @end +NS_ASSUME_NONNULL_END diff --git a/Example/Makefile b/Example/Makefile index bfc3212..711f028 100644 --- a/Example/Makefile +++ b/Example/Makefile @@ -9,7 +9,7 @@ test: $(xcodebuild) test | tee xcodebuild.log install: - gem install cocoapods --no-ri --no-rdoc + gem install 'activesupport:4.0.2' 'cocoapods:0.39.0' --no-ri --no-rdoc gem install xcpretty --no-ri --no-rdoc pod install diff --git a/Example/ObjectiveSugar.xcodeproj/project.pbxproj b/Example/ObjectiveSugar.xcodeproj/project.pbxproj index 3c473ef..afa3d49 100644 --- a/Example/ObjectiveSugar.xcodeproj/project.pbxproj +++ b/Example/ObjectiveSugar.xcodeproj/project.pbxproj @@ -1,1278 +1,596 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 0D82F54D4F82F5960EA2CBA9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-ObjectiveSugarTests.release.xcconfig - path - Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests.release.xcconfig - sourceTree - <group> - - 11566D315A504F04BFD15074 - - fileRef - 32DEFD3FCB544122AD940C8F - isa - PBXBuildFile - - 13656AD991424BF58F43F5B7 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Copy Pods Resources - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - "${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh" - - - 174A1F9A81B44DC6B8B6DFD9 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Copy Pods Resources - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - "${SRCROOT}/Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests-resources.sh" - - - 32DEFD3FCB544122AD940C8F - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods.a - sourceTree - BUILT_PRODUCTS_DIR - - 468DABF301EC4EC1A00CC4C2 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Check Pods Manifest.lock - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null -if [[ $? != 0 ]] ; then - cat << EOM -error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. -EOM - exit 1 -fi - - - 893C6A18A162B9FB06935ED4 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods-ObjectiveSugarTests.debug.xcconfig - path - Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests.debug.xcconfig - sourceTree - <group> - - 89690120173C0E4B00B403D2 - - children - - 89690132173C0E4C00B403D2 - 89690150173C0E4C00B403D2 - 8969012B173C0E4C00B403D2 - 8969012A173C0E4C00B403D2 - 9ADDC0C494D895C067A28C9A - - isa - PBXGroup - sourceTree - <group> - - 89690121173C0E4B00B403D2 - - attributes - - LastUpgradeCheck - 0460 - ORGANIZATIONNAME - supermar.in - - buildConfigurationList - 89690124173C0E4B00B403D2 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 89690120173C0E4B00B403D2 - productRefGroup - 8969012A173C0E4C00B403D2 - projectDirPath - - projectReferences - - projectRoot - - targets - - 89690128173C0E4C00B403D2 - 89690148173C0E4C00B403D2 - - - 89690124173C0E4B00B403D2 - - buildConfigurations - - 89690159173C0E4C00B403D2 - 8969015A173C0E4C00B403D2 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 89690125173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 89690139173C0E4C00B403D2 - 8969013D173C0E4C00B403D2 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690126173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 8969012D173C0E4C00B403D2 - 8969012F173C0E4C00B403D2 - 89690131173C0E4C00B403D2 - 11566D315A504F04BFD15074 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690127173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 89690137173C0E4C00B403D2 - 8969013F173C0E4C00B403D2 - 89690141173C0E4C00B403D2 - 89690143173C0E4C00B403D2 - - isa - PBXResourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690128173C0E4C00B403D2 - - buildConfigurationList - 8969015B173C0E4C00B403D2 - buildPhases - - 468DABF301EC4EC1A00CC4C2 - 89690125173C0E4C00B403D2 - 89690126173C0E4C00B403D2 - 89690127173C0E4C00B403D2 - 13656AD991424BF58F43F5B7 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - ObjectiveSugar - productName - ObjectiveSugar - productReference - 89690129173C0E4C00B403D2 - productType - com.apple.product-type.application - - 89690129173C0E4C00B403D2 - - explicitFileType - wrapper.application - includeInIndex - 0 - isa - PBXFileReference - path - ObjectiveSugar.app - sourceTree - BUILT_PRODUCTS_DIR - - 8969012A173C0E4C00B403D2 - - children - - 89690129173C0E4C00B403D2 - 89690149173C0E4C00B403D2 - - isa - PBXGroup - name - Products - sourceTree - <group> - - 8969012B173C0E4C00B403D2 - - children - - 8969012C173C0E4C00B403D2 - 8969012E173C0E4C00B403D2 - 89690130173C0E4C00B403D2 - 32DEFD3FCB544122AD940C8F - D3D0B2406C7A45249244F020 - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - 8969012C173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - UIKit.framework - path - System/Library/Frameworks/UIKit.framework - sourceTree - SDKROOT - - 8969012D173C0E4C00B403D2 - - fileRef - 8969012C173C0E4C00B403D2 - isa - PBXBuildFile - - 8969012E173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - System/Library/Frameworks/Foundation.framework - sourceTree - SDKROOT - - 8969012F173C0E4C00B403D2 - - fileRef - 8969012E173C0E4C00B403D2 - isa - PBXBuildFile - - 89690130173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - CoreGraphics.framework - path - System/Library/Frameworks/CoreGraphics.framework - sourceTree - SDKROOT - - 89690131173C0E4C00B403D2 - - fileRef - 89690130173C0E4C00B403D2 - isa - PBXBuildFile - - 89690132173C0E4C00B403D2 - - children - - 8969013B173C0E4C00B403D2 - 8969013C173C0E4C00B403D2 - 89690133173C0E4C00B403D2 - - isa - PBXGroup - path - ObjectiveSugar - sourceTree - <group> - - 89690133173C0E4C00B403D2 - - children - - 89690134173C0E4C00B403D2 - 89690135173C0E4C00B403D2 - 89690138173C0E4C00B403D2 - 8969013A173C0E4C00B403D2 - 8969013E173C0E4C00B403D2 - 89690140173C0E4C00B403D2 - 89690142173C0E4C00B403D2 - - isa - PBXGroup - name - Supporting Files - sourceTree - <group> - - 89690134173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - ObjectiveSugar-Info.plist - sourceTree - <group> - - 89690135173C0E4C00B403D2 - - children - - 89690136173C0E4C00B403D2 - - isa - PBXVariantGroup - name - InfoPlist.strings - sourceTree - <group> - - 89690136173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - text.plist.strings - name - en - path - en.lproj/InfoPlist.strings - sourceTree - <group> - - 89690137173C0E4C00B403D2 - - fileRef - 89690135173C0E4C00B403D2 - isa - PBXBuildFile - - 89690138173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - main.m - sourceTree - <group> - - 89690139173C0E4C00B403D2 - - fileRef - 89690138173C0E4C00B403D2 - isa - PBXBuildFile - - 8969013A173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - ObjectiveSugar-Prefix.pch - sourceTree - <group> - - 8969013B173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - AppDelegate.h - sourceTree - <group> - - 8969013C173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - AppDelegate.m - sourceTree - <group> - - 8969013D173C0E4C00B403D2 - - fileRef - 8969013C173C0E4C00B403D2 - isa - PBXBuildFile - - 8969013E173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - image.png - path - Default.png - sourceTree - <group> - - 8969013F173C0E4C00B403D2 - - fileRef - 8969013E173C0E4C00B403D2 - isa - PBXBuildFile - - 89690140173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - image.png - path - Default@2x.png - sourceTree - <group> - - 89690141173C0E4C00B403D2 - - fileRef - 89690140173C0E4C00B403D2 - isa - PBXBuildFile - - 89690142173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - image.png - path - Default-568h@2x.png - sourceTree - <group> - - 89690143173C0E4C00B403D2 - - fileRef - 89690142173C0E4C00B403D2 - isa - PBXBuildFile - - 89690144173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 89690168173C16A100B403D2 - 89690169173C16A100B403D2 - 8969016A173C16A100B403D2 - 8969016B173C16A100B403D2 - 8969016C173C16A100B403D2 - 8969016D173C16A100B403D2 - 8969016E173C16A100B403D2 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690145173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 8969014C173C0E4C00B403D2 - 8969014D173C0E4C00B403D2 - A06180063BF14EB68414F45F - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690146173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - 89690155173C0E4C00B403D2 - - isa - PBXResourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 89690147173C0E4C00B403D2 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - # Run the unit tests in this test bundle. -"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" - - - 89690148173C0E4C00B403D2 - - buildConfigurationList - 8969015E173C0E4C00B403D2 - buildPhases - - BC624B20376C4C728DE6A392 - 89690144173C0E4C00B403D2 - 89690145173C0E4C00B403D2 - 89690146173C0E4C00B403D2 - 89690147173C0E4C00B403D2 - 174A1F9A81B44DC6B8B6DFD9 - - buildRules - - dependencies - - 8969014F173C0E4C00B403D2 - - isa - PBXNativeTarget - name - ObjectiveSugarTests - productName - ObjectiveSugarTests - productReference - 89690149173C0E4C00B403D2 - productType - com.apple.product-type.bundle.unit-test - - 89690149173C0E4C00B403D2 - - explicitFileType - wrapper.cfbundle - includeInIndex - 0 - isa - PBXFileReference - path - ObjectiveSugarTests.octest - sourceTree - BUILT_PRODUCTS_DIR - - 8969014C173C0E4C00B403D2 - - fileRef - 8969012C173C0E4C00B403D2 - isa - PBXBuildFile - - 8969014D173C0E4C00B403D2 - - fileRef - 8969012E173C0E4C00B403D2 - isa - PBXBuildFile - - 8969014E173C0E4C00B403D2 - - containerPortal - 89690121173C0E4B00B403D2 - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 89690128173C0E4C00B403D2 - remoteInfo - ObjectiveSugar - - 8969014F173C0E4C00B403D2 - - isa - PBXTargetDependency - target - 89690128173C0E4C00B403D2 - targetProxy - 8969014E173C0E4C00B403D2 - - 89690150173C0E4C00B403D2 - - children - - 89690161173C16A100B403D2 - 89690162173C16A100B403D2 - 89690163173C16A100B403D2 - 89690164173C16A100B403D2 - 89690165173C16A100B403D2 - 89690166173C16A100B403D2 - 89690167173C16A100B403D2 - 89690151173C0E4C00B403D2 - - isa - PBXGroup - path - ObjectiveSugarTests - sourceTree - <group> - - 89690151173C0E4C00B403D2 - - children - - 89690152173C0E4C00B403D2 - 89690153173C0E4C00B403D2 - - isa - PBXGroup - name - Supporting Files - sourceTree - <group> - - 89690152173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - ObjectiveSugarTests-Info.plist - sourceTree - <group> - - 89690153173C0E4C00B403D2 - - children - - 89690154173C0E4C00B403D2 - - isa - PBXVariantGroup - name - InfoPlist.strings - sourceTree - <group> - - 89690154173C0E4C00B403D2 - - isa - PBXFileReference - lastKnownFileType - text.plist.strings - name - en - path - en.lproj/InfoPlist.strings - sourceTree - <group> - - 89690155173C0E4C00B403D2 - - fileRef - 89690153173C0E4C00B403D2 - isa - PBXBuildFile - - 89690159173C0E4C00B403D2 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - COPY_PHASE_STRIP - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 6.1 - ONLY_ACTIVE_ARCH - YES - SDKROOT - iphoneos - - isa - XCBuildConfiguration - name - Debug - - 8969015A173C0E4C00B403D2 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - COPY_PHASE_STRIP - YES - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 6.1 - OTHER_CFLAGS - -DNS_BLOCK_ASSERTIONS=1 - SDKROOT - iphoneos - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 8969015B173C0E4C00B403D2 - - buildConfigurations - - 8969015C173C0E4C00B403D2 - 8969015D173C0E4C00B403D2 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 8969015C173C0E4C00B403D2 - - baseConfigurationReference - 94C453035CB8232DD1A5513E - buildSettings - - CODE_SIGN_IDENTITY - iPhone Developer - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - ObjectiveSugar/ObjectiveSugar-Prefix.pch - INFOPLIST_FILE - ObjectiveSugar/ObjectiveSugar-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 4.3 - PRODUCT_NAME - $(TARGET_NAME) - WRAPPER_EXTENSION - app - - isa - XCBuildConfiguration - name - Debug - - 8969015D173C0E4C00B403D2 - - baseConfigurationReference - 9FAA69FB133006101A9A7843 - buildSettings - - CODE_SIGN_IDENTITY - iPhone Developer - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - ObjectiveSugar/ObjectiveSugar-Prefix.pch - INFOPLIST_FILE - ObjectiveSugar/ObjectiveSugar-Info.plist - IPHONEOS_DEPLOYMENT_TARGET - 4.3 - PRODUCT_NAME - $(TARGET_NAME) - WRAPPER_EXTENSION - app - - isa - XCBuildConfiguration - name - Release - - 8969015E173C0E4C00B403D2 - - buildConfigurations - - 8969015F173C0E4C00B403D2 - 89690160173C0E4C00B403D2 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 8969015F173C0E4C00B403D2 - - baseConfigurationReference - 893C6A18A162B9FB06935ED4 - buildSettings - - BUNDLE_LOADER - $(BUILT_PRODUCTS_DIR)/ObjectiveSugar.app/ObjectiveSugar - FRAMEWORK_SEARCH_PATHS - - $(inherited) - "$(SDKROOT)/Developer/Library/Frameworks" - "$(DEVELOPER_LIBRARY_DIR)/Frameworks" - - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - ObjectiveSugar/ObjectiveSugar-Prefix.pch - INFOPLIST_FILE - ObjectiveSugarTests/ObjectiveSugarTests-Info.plist - PRODUCT_NAME - $(TARGET_NAME) - TEST_HOST - $(BUNDLE_LOADER) - - isa - XCBuildConfiguration - name - Debug - - 89690160173C0E4C00B403D2 - - baseConfigurationReference - 0D82F54D4F82F5960EA2CBA9 - buildSettings - - BUNDLE_LOADER - $(BUILT_PRODUCTS_DIR)/ObjectiveSugar.app/ObjectiveSugar - FRAMEWORK_SEARCH_PATHS - - $(inherited) - "$(SDKROOT)/Developer/Library/Frameworks" - "$(DEVELOPER_LIBRARY_DIR)/Frameworks" - - GCC_PRECOMPILE_PREFIX_HEADER - YES - GCC_PREFIX_HEADER - ObjectiveSugar/ObjectiveSugar-Prefix.pch - INFOPLIST_FILE - ObjectiveSugarTests/ObjectiveSugarTests-Info.plist - PRODUCT_NAME - $(TARGET_NAME) - TEST_HOST - $(BUNDLE_LOADER) - - isa - XCBuildConfiguration - name - Release - - 89690161173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - CAdditionsTests.m - sourceTree - <group> - - 89690162173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSArrayTests.m - sourceTree - <group> - - 89690163173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSDictionaryTests.m - sourceTree - <group> - - 89690164173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSMutableArrayTests.m - sourceTree - <group> - - 89690165173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSNumberTests.m - sourceTree - <group> - - 89690166173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSSetTests.m - sourceTree - <group> - - 89690167173C16A100B403D2 - - fileEncoding - 4 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - NSStringTests.m - sourceTree - <group> - - 89690168173C16A100B403D2 - - fileRef - 89690161173C16A100B403D2 - isa - PBXBuildFile - - 89690169173C16A100B403D2 - - fileRef - 89690162173C16A100B403D2 - isa - PBXBuildFile - - 8969016A173C16A100B403D2 - - fileRef - 89690163173C16A100B403D2 - isa - PBXBuildFile - - 8969016B173C16A100B403D2 - - fileRef - 89690164173C16A100B403D2 - isa - PBXBuildFile - - 8969016C173C16A100B403D2 - - fileRef - 89690165173C16A100B403D2 - isa - PBXBuildFile - - 8969016D173C16A100B403D2 - - fileRef - 89690166173C16A100B403D2 - isa - PBXBuildFile - - 8969016E173C16A100B403D2 - - fileRef - 89690167173C16A100B403D2 - isa - PBXBuildFile - - 94C453035CB8232DD1A5513E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods.debug.xcconfig - path - Pods/Target Support Files/Pods/Pods.debug.xcconfig - sourceTree - <group> - - 9ADDC0C494D895C067A28C9A - - children - - 94C453035CB8232DD1A5513E - 9FAA69FB133006101A9A7843 - 893C6A18A162B9FB06935ED4 - 0D82F54D4F82F5960EA2CBA9 - - isa - PBXGroup - name - Pods - sourceTree - <group> - - 9FAA69FB133006101A9A7843 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - name - Pods.release.xcconfig - path - Pods/Target Support Files/Pods/Pods.release.xcconfig - sourceTree - <group> - - A06180063BF14EB68414F45F - - fileRef - D3D0B2406C7A45249244F020 - isa - PBXBuildFile - - BC624B20376C4C728DE6A392 - - buildActionMask - 2147483647 - files - - inputPaths - - isa - PBXShellScriptBuildPhase - name - Check Pods Manifest.lock - outputPaths - - runOnlyForDeploymentPostprocessing - 0 - shellPath - /bin/sh - shellScript - diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null -if [[ $? != 0 ]] ; then - cat << EOM -error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. -EOM - exit 1 -fi - - - D3D0B2406C7A45249244F020 - - explicitFileType - archive.ar - includeInIndex - 0 - isa - PBXFileReference - path - libPods-ObjectiveSugarTests.a - sourceTree - BUILT_PRODUCTS_DIR - - - rootObject - 89690121173C0E4B00B403D2 - - +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 11566D315A504F04BFD15074 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 32DEFD3FCB544122AD940C8F /* libPods.a */; }; + 8969012D173C0E4C00B403D2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8969012C173C0E4C00B403D2 /* UIKit.framework */; }; + 8969012F173C0E4C00B403D2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8969012E173C0E4C00B403D2 /* Foundation.framework */; }; + 89690131173C0E4C00B403D2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89690130173C0E4C00B403D2 /* CoreGraphics.framework */; }; + 89690137173C0E4C00B403D2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 89690135173C0E4C00B403D2 /* InfoPlist.strings */; }; + 89690139173C0E4C00B403D2 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690138173C0E4C00B403D2 /* main.m */; }; + 8969013D173C0E4C00B403D2 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8969013C173C0E4C00B403D2 /* AppDelegate.m */; }; + 8969013F173C0E4C00B403D2 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 8969013E173C0E4C00B403D2 /* Default.png */; }; + 89690141173C0E4C00B403D2 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 89690140173C0E4C00B403D2 /* Default@2x.png */; }; + 89690143173C0E4C00B403D2 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 89690142173C0E4C00B403D2 /* Default-568h@2x.png */; }; + 8969014C173C0E4C00B403D2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8969012C173C0E4C00B403D2 /* UIKit.framework */; }; + 8969014D173C0E4C00B403D2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8969012E173C0E4C00B403D2 /* Foundation.framework */; }; + 89690155173C0E4C00B403D2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 89690153173C0E4C00B403D2 /* InfoPlist.strings */; }; + 89690168173C16A100B403D2 /* CAdditionsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690161173C16A100B403D2 /* CAdditionsTests.m */; }; + 89690169173C16A100B403D2 /* NSArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690162173C16A100B403D2 /* NSArrayTests.m */; }; + 8969016A173C16A100B403D2 /* NSDictionaryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690163173C16A100B403D2 /* NSDictionaryTests.m */; }; + 8969016B173C16A100B403D2 /* NSMutableArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690164173C16A100B403D2 /* NSMutableArrayTests.m */; }; + 8969016C173C16A100B403D2 /* NSNumberTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690165173C16A100B403D2 /* NSNumberTests.m */; }; + 8969016D173C16A100B403D2 /* NSSetTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690166173C16A100B403D2 /* NSSetTests.m */; }; + 8969016E173C16A100B403D2 /* NSStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 89690167173C16A100B403D2 /* NSStringTests.m */; }; + A06180063BF14EB68414F45F /* libPods-ObjectiveSugarTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D3D0B2406C7A45249244F020 /* libPods-ObjectiveSugarTests.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 8969014E173C0E4C00B403D2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 89690121173C0E4B00B403D2 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 89690128173C0E4C00B403D2; + remoteInfo = ObjectiveSugar; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0D82F54D4F82F5960EA2CBA9 /* Pods-ObjectiveSugarTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ObjectiveSugarTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests.release.xcconfig"; sourceTree = ""; }; + 32DEFD3FCB544122AD940C8F /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 893C6A18A162B9FB06935ED4 /* Pods-ObjectiveSugarTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ObjectiveSugarTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests.debug.xcconfig"; sourceTree = ""; }; + 89690129173C0E4C00B403D2 /* ObjectiveSugar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ObjectiveSugar.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 8969012C173C0E4C00B403D2 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 8969012E173C0E4C00B403D2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 89690130173C0E4C00B403D2 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 89690134173C0E4C00B403D2 /* ObjectiveSugar-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ObjectiveSugar-Info.plist"; sourceTree = ""; }; + 89690136173C0E4C00B403D2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 89690138173C0E4C00B403D2 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 8969013A173C0E4C00B403D2 /* ObjectiveSugar-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ObjectiveSugar-Prefix.pch"; sourceTree = ""; }; + 8969013B173C0E4C00B403D2 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 8969013C173C0E4C00B403D2 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 8969013E173C0E4C00B403D2 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; + 89690140173C0E4C00B403D2 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; + 89690142173C0E4C00B403D2 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + 89690149173C0E4C00B403D2 /* ObjectiveSugarTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = ObjectiveSugarTests.octest; path = ObjectiveSugarTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 89690152173C0E4C00B403D2 /* ObjectiveSugarTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ObjectiveSugarTests-Info.plist"; sourceTree = ""; }; + 89690154173C0E4C00B403D2 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 89690161173C16A100B403D2 /* CAdditionsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAdditionsTests.m; sourceTree = ""; }; + 89690162173C16A100B403D2 /* NSArrayTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSArrayTests.m; sourceTree = ""; }; + 89690163173C16A100B403D2 /* NSDictionaryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSDictionaryTests.m; sourceTree = ""; }; + 89690164173C16A100B403D2 /* NSMutableArrayTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSMutableArrayTests.m; sourceTree = ""; }; + 89690165173C16A100B403D2 /* NSNumberTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSNumberTests.m; sourceTree = ""; }; + 89690166173C16A100B403D2 /* NSSetTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSSetTests.m; sourceTree = ""; }; + 89690167173C16A100B403D2 /* NSStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringTests.m; sourceTree = ""; }; + 94C453035CB8232DD1A5513E /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; + 9FAA69FB133006101A9A7843 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; + D3D0B2406C7A45249244F020 /* libPods-ObjectiveSugarTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ObjectiveSugarTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 89690126173C0E4C00B403D2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8969012D173C0E4C00B403D2 /* UIKit.framework in Frameworks */, + 8969012F173C0E4C00B403D2 /* Foundation.framework in Frameworks */, + 89690131173C0E4C00B403D2 /* CoreGraphics.framework in Frameworks */, + 11566D315A504F04BFD15074 /* libPods.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 89690145173C0E4C00B403D2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8969014C173C0E4C00B403D2 /* UIKit.framework in Frameworks */, + 8969014D173C0E4C00B403D2 /* Foundation.framework in Frameworks */, + A06180063BF14EB68414F45F /* libPods-ObjectiveSugarTests.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 89690120173C0E4B00B403D2 = { + isa = PBXGroup; + children = ( + 89690132173C0E4C00B403D2 /* ObjectiveSugar */, + 89690150173C0E4C00B403D2 /* ObjectiveSugarTests */, + 8969012B173C0E4C00B403D2 /* Frameworks */, + 8969012A173C0E4C00B403D2 /* Products */, + 9ADDC0C494D895C067A28C9A /* Pods */, + ); + sourceTree = ""; + }; + 8969012A173C0E4C00B403D2 /* Products */ = { + isa = PBXGroup; + children = ( + 89690129173C0E4C00B403D2 /* ObjectiveSugar.app */, + 89690149173C0E4C00B403D2 /* ObjectiveSugarTests.octest */, + ); + name = Products; + sourceTree = ""; + }; + 8969012B173C0E4C00B403D2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 8969012C173C0E4C00B403D2 /* UIKit.framework */, + 8969012E173C0E4C00B403D2 /* Foundation.framework */, + 89690130173C0E4C00B403D2 /* CoreGraphics.framework */, + 32DEFD3FCB544122AD940C8F /* libPods.a */, + D3D0B2406C7A45249244F020 /* libPods-ObjectiveSugarTests.a */, + ); + name = Frameworks; + sourceTree = ""; + }; + 89690132173C0E4C00B403D2 /* ObjectiveSugar */ = { + isa = PBXGroup; + children = ( + 8969013B173C0E4C00B403D2 /* AppDelegate.h */, + 8969013C173C0E4C00B403D2 /* AppDelegate.m */, + 89690133173C0E4C00B403D2 /* Supporting Files */, + ); + path = ObjectiveSugar; + sourceTree = ""; + }; + 89690133173C0E4C00B403D2 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 89690134173C0E4C00B403D2 /* ObjectiveSugar-Info.plist */, + 89690135173C0E4C00B403D2 /* InfoPlist.strings */, + 89690138173C0E4C00B403D2 /* main.m */, + 8969013A173C0E4C00B403D2 /* ObjectiveSugar-Prefix.pch */, + 8969013E173C0E4C00B403D2 /* Default.png */, + 89690140173C0E4C00B403D2 /* Default@2x.png */, + 89690142173C0E4C00B403D2 /* Default-568h@2x.png */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 89690150173C0E4C00B403D2 /* ObjectiveSugarTests */ = { + isa = PBXGroup; + children = ( + 89690161173C16A100B403D2 /* CAdditionsTests.m */, + 89690162173C16A100B403D2 /* NSArrayTests.m */, + 89690163173C16A100B403D2 /* NSDictionaryTests.m */, + 89690164173C16A100B403D2 /* NSMutableArrayTests.m */, + 89690165173C16A100B403D2 /* NSNumberTests.m */, + 89690166173C16A100B403D2 /* NSSetTests.m */, + 89690167173C16A100B403D2 /* NSStringTests.m */, + 89690151173C0E4C00B403D2 /* Supporting Files */, + ); + path = ObjectiveSugarTests; + sourceTree = ""; + }; + 89690151173C0E4C00B403D2 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 89690152173C0E4C00B403D2 /* ObjectiveSugarTests-Info.plist */, + 89690153173C0E4C00B403D2 /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 9ADDC0C494D895C067A28C9A /* Pods */ = { + isa = PBXGroup; + children = ( + 94C453035CB8232DD1A5513E /* Pods.debug.xcconfig */, + 9FAA69FB133006101A9A7843 /* Pods.release.xcconfig */, + 893C6A18A162B9FB06935ED4 /* Pods-ObjectiveSugarTests.debug.xcconfig */, + 0D82F54D4F82F5960EA2CBA9 /* Pods-ObjectiveSugarTests.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 89690128173C0E4C00B403D2 /* ObjectiveSugar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8969015B173C0E4C00B403D2 /* Build configuration list for PBXNativeTarget "ObjectiveSugar" */; + buildPhases = ( + 468DABF301EC4EC1A00CC4C2 /* Check Pods Manifest.lock */, + 89690125173C0E4C00B403D2 /* Sources */, + 89690126173C0E4C00B403D2 /* Frameworks */, + 89690127173C0E4C00B403D2 /* Resources */, + 13656AD991424BF58F43F5B7 /* Copy Pods Resources */, + 34003E363187F882590698FF /* Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ObjectiveSugar; + productName = ObjectiveSugar; + productReference = 89690129173C0E4C00B403D2 /* ObjectiveSugar.app */; + productType = "com.apple.product-type.application"; + }; + 89690148173C0E4C00B403D2 /* ObjectiveSugarTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8969015E173C0E4C00B403D2 /* Build configuration list for PBXNativeTarget "ObjectiveSugarTests" */; + buildPhases = ( + BC624B20376C4C728DE6A392 /* Check Pods Manifest.lock */, + 89690144173C0E4C00B403D2 /* Sources */, + 89690145173C0E4C00B403D2 /* Frameworks */, + 89690146173C0E4C00B403D2 /* Resources */, + 89690147173C0E4C00B403D2 /* ShellScript */, + 174A1F9A81B44DC6B8B6DFD9 /* Copy Pods Resources */, + 8C8CED5FBE2E1BD86B22BBB8 /* Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 8969014F173C0E4C00B403D2 /* PBXTargetDependency */, + ); + name = ObjectiveSugarTests; + productName = ObjectiveSugarTests; + productReference = 89690149173C0E4C00B403D2 /* ObjectiveSugarTests.octest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 89690121173C0E4B00B403D2 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + ORGANIZATIONNAME = supermar.in; + }; + buildConfigurationList = 89690124173C0E4B00B403D2 /* Build configuration list for PBXProject "ObjectiveSugar" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 89690120173C0E4B00B403D2; + productRefGroup = 8969012A173C0E4C00B403D2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 89690128173C0E4C00B403D2 /* ObjectiveSugar */, + 89690148173C0E4C00B403D2 /* ObjectiveSugarTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 89690127173C0E4C00B403D2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 89690137173C0E4C00B403D2 /* InfoPlist.strings in Resources */, + 8969013F173C0E4C00B403D2 /* Default.png in Resources */, + 89690141173C0E4C00B403D2 /* Default@2x.png in Resources */, + 89690143173C0E4C00B403D2 /* Default-568h@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 89690146173C0E4C00B403D2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 89690155173C0E4C00B403D2 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 13656AD991424BF58F43F5B7 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; + }; + 174A1F9A81B44DC6B8B6DFD9 /* Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests-resources.sh\"\n"; + }; + 34003E363187F882590698FF /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 468DABF301EC4EC1A00CC4C2 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + }; + 89690147173C0E4C00B403D2 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; + }; + 8C8CED5FBE2E1BD86B22BBB8 /* Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ObjectiveSugarTests/Pods-ObjectiveSugarTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + BC624B20376C4C728DE6A392 /* Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Check Pods Manifest.lock"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 89690125173C0E4C00B403D2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 89690139173C0E4C00B403D2 /* main.m in Sources */, + 8969013D173C0E4C00B403D2 /* AppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 89690144173C0E4C00B403D2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 89690168173C16A100B403D2 /* CAdditionsTests.m in Sources */, + 89690169173C16A100B403D2 /* NSArrayTests.m in Sources */, + 8969016A173C16A100B403D2 /* NSDictionaryTests.m in Sources */, + 8969016B173C16A100B403D2 /* NSMutableArrayTests.m in Sources */, + 8969016C173C16A100B403D2 /* NSNumberTests.m in Sources */, + 8969016D173C16A100B403D2 /* NSSetTests.m in Sources */, + 8969016E173C16A100B403D2 /* NSStringTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 8969014F173C0E4C00B403D2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 89690128173C0E4C00B403D2 /* ObjectiveSugar */; + targetProxy = 8969014E173C0E4C00B403D2 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 89690135173C0E4C00B403D2 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 89690136173C0E4C00B403D2 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 89690153173C0E4C00B403D2 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 89690154173C0E4C00B403D2 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 89690159173C0E4C00B403D2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 8969015A173C0E4C00B403D2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NULLABLE_TO_NONNULL_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 8969015C173C0E4C00B403D2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 94C453035CB8232DD1A5513E /* Pods.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ObjectiveSugar/ObjectiveSugar-Prefix.pch"; + INFOPLIST_FILE = "ObjectiveSugar/ObjectiveSugar-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 8969015D173C0E4C00B403D2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9FAA69FB133006101A9A7843 /* Pods.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ObjectiveSugar/ObjectiveSugar-Prefix.pch"; + INFOPLIST_FILE = "ObjectiveSugar/ObjectiveSugar-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 4.3; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 8969015F173C0E4C00B403D2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 893C6A18A162B9FB06935ED4 /* Pods-ObjectiveSugarTests.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ObjectiveSugar.app/ObjectiveSugar"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ObjectiveSugar/ObjectiveSugar-Prefix.pch"; + INFOPLIST_FILE = "ObjectiveSugarTests/ObjectiveSugarTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + }; + name = Debug; + }; + 89690160173C0E4C00B403D2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0D82F54D4F82F5960EA2CBA9 /* Pods-ObjectiveSugarTests.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ObjectiveSugar.app/ObjectiveSugar"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "ObjectiveSugar/ObjectiveSugar-Prefix.pch"; + INFOPLIST_FILE = "ObjectiveSugarTests/ObjectiveSugarTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 89690124173C0E4B00B403D2 /* Build configuration list for PBXProject "ObjectiveSugar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 89690159173C0E4C00B403D2 /* Debug */, + 8969015A173C0E4C00B403D2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8969015B173C0E4C00B403D2 /* Build configuration list for PBXNativeTarget "ObjectiveSugar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8969015C173C0E4C00B403D2 /* Debug */, + 8969015D173C0E4C00B403D2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 8969015E173C0E4C00B403D2 /* Build configuration list for PBXNativeTarget "ObjectiveSugarTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8969015F173C0E4C00B403D2 /* Debug */, + 89690160173C0E4C00B403D2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 89690121173C0E4B00B403D2 /* Project object */; +} diff --git a/Example/ObjectiveSugarTests/NSArrayTests.m b/Example/ObjectiveSugarTests/NSArrayTests.m index 651d474..f8d0ac3 100644 --- a/Example/ObjectiveSugarTests/NSArrayTests.m +++ b/Example/ObjectiveSugarTests/NSArrayTests.m @@ -9,12 +9,14 @@ #import "ObjectiveSugar.h" #import "Kiwi.h" +NS_ASSUME_NONNULL_BEGIN + SPEC_BEGIN(ArrayAdditions) describe(@"NSArray categories", ^{ - NSArray *sampleArray = @[@"first", @"second", @"third"]; - NSArray *oneToTen = @[ @1, @2, @3, @4, @5, @6, @7, @8, @9, @10 ]; + NSArray *sampleArray = @[@"first", @"second", @"third"]; + NSArray *oneToTen = @[ @1, @2, @3, @4, @5, @6, @7, @8, @9, @10 ]; let(duplicate, ^{ return [NSMutableArray new]; }); it(@"aliases -anyObject to -sample", ^{ @@ -34,14 +36,14 @@ context(@"Iterating using block", ^{ it(@"iterates using -each:^", ^{ - [sampleArray each:^(id object) { + [sampleArray each:^(NSString *object) { [duplicate addObject:object]; }]; [[duplicate should] equal:sampleArray]; }); it(@"iterates using -eachWithIndex:^", ^{ - [sampleArray eachWithIndex:^(id object, NSUInteger index) { + [sampleArray eachWithIndex:^(NSString *object, NSUInteger index) { [[object should] equal:[sampleArray objectAtIndex:index]]; [duplicate addObject:object]; }]; @@ -49,7 +51,7 @@ }); it(@"iterates using -each:^withOptions:", ^{ - [sampleArray each:^(id object) { + [sampleArray each:^(NSString *object) { [duplicate addObject:object]; } options:NSEnumerationReverse]; @@ -57,7 +59,7 @@ }); it(@"iterates using -eachWithIndex:^withOptions:", ^{ - [sampleArray eachWithIndex:^(id object, NSUInteger index) { + [sampleArray eachWithIndex:^(NSString *object, NSUInteger index) { [[object should] equal:[sampleArray objectAtIndex:index]]; [duplicate addObject:object]; } options:NSEnumerationReverse]; @@ -72,7 +74,7 @@ }); it(@"-map returns an array of objects returned by the block", ^{ - NSArray *mapped = [sampleArray map:^id(id object) { + NSArray *mapped = [sampleArray map:^NSNumber *(NSString *object) { return [NSNumber numberWithBool:[object isEqualToString:@"second"]]; }]; @@ -80,38 +82,38 @@ }); it(@"-map treats nils the same way as -valueForKeyPath:", ^{ - NSArray *users = @[@{@"name": @"Marin"},@{},@{@"name": @"Neil"}]; - [[[users map:^id(NSDictionary *user) { + NSArray *> *users = @[@{@"name": @"Marin"},@{},@{@"name": @"Neil"}]; + [[[users map:^id(NSDictionary *user) { return user[@"name"]; - }] should] equal:[users valueForKeyPath:@"name"]]; + }] should] equal:[users valueForKey:@"name"]]; }); it(@"-select returns an array containing all the elements of NSArray for which block is not false", ^{ - [[[oneToTen select:^BOOL(id object) { + [[[oneToTen select:^BOOL(NSNumber *object) { return [object integerValue] % 3 == 0; }] should] equal:@[ @3, @6, @9 ]]; }); it(@"-detect returns the first element in NSArray for which block is true", ^{ - [[[oneToTen detect:^BOOL(id object) { + [[[oneToTen detect:^BOOL(NSNumber *object) { return [object intValue] % 3 == 0; }] should] equal:@3]; }); it(@"-detect is safe", ^{ - [[[oneToTen detect:^BOOL(id object) { + [[[oneToTen detect:^BOOL(NSNumber *object) { return [object intValue] == 1232132143; }] should] beNil]; }); it(@"-find aliases detect", ^{ - [[[oneToTen find:^BOOL(id object) { + [[[oneToTen find:^BOOL(NSNumber *object) { return [object intValue] % 3 == 0; }] should] equal:@3]; }); it(@"-reject returns an array containing all the elements of NSArray for which block is false", ^{ - [[[oneToTen reject:^BOOL(id object) { + [[[oneToTen reject:^BOOL(NSNumber *object) { return [object integerValue] % 3 == 0; }] should] equal:@[ @1, @2, @4, @5, @7, @8, @10 ]]; }); @@ -127,21 +129,21 @@ }); it(@"-reduce returns a result of all the elements", ^{ - [[[sampleArray reduce:^id(NSString *accumulator, NSString *word) { + [[[sampleArray reduce:^NSString * _Nullable(NSString *accumulator, NSString *word) { return [accumulator stringByAppendingString:word.uppercaseString]; }] should] equal:@"firstSECONDTHIRD"]; - [[[oneToTen reduce:^id(NSNumber *accumulator, NSNumber *numbah) { + [[[oneToTen reduce:^NSNumber * _Nullable(NSNumber *accumulator, NSNumber *numbah) { return @(accumulator.intValue + numbah.intValue); }] should] equal:@55]; }); it(@"-reduce:withBlock with accumulator behaves like -reduce and starts with user provided element", ^{ - [[[sampleArray reduce:@"" withBlock:^id(NSString *accumulator, NSString *word) { + [[[sampleArray reduce:@"" withBlock:^NSString * _Nullable(NSString * _Nullable accumulator, NSString *word) { return [accumulator stringByAppendingString:word.uppercaseString]; }] should] equal:@"FIRSTSECONDTHIRD"]; - [[[oneToTen reduce:@5 withBlock:^id(NSNumber *accumulator, NSNumber *numbah) { + [[[oneToTen reduce:@5 withBlock:^NSNumber * _Nullable(NSNumber * _Nullable accumulator, NSNumber *numbah) { return @(accumulator.intValue + numbah.intValue); }] should] equal:@60]; }); @@ -163,7 +165,7 @@ }); it(@"creates subset of array using block", ^{ - [[[sampleArray takeWhile:^BOOL(id object) { + [[[sampleArray takeWhile:^BOOL(NSString *object) { return ![object isEqualToString:@"third"]; @@ -239,10 +241,10 @@ }); it(@"-sortsortBy sorts using the default comparator on the given key:", ^{ - NSDictionary *dict_1 = @{@"name": @"1"}; - NSDictionary *dict_2 = @{@"name": @"2"}; - NSDictionary *dict_3 = @{@"name": @"3"}; - NSDictionary *dict_4 = @{@"name": @"3"}; + NSDictionary *dict_1 = @{@"name": @"1"}; + NSDictionary *dict_2 = @{@"name": @"2"}; + NSDictionary *dict_3 = @{@"name": @"3"}; + NSDictionary *dict_4 = @{@"name": @"3"}; [[[@[ dict_4, dict_1, dict_3, dict_2 ] sortBy:@"name"] should] equal:@[ dict_1, dict_2, dict_3, dict_4 ]]; }); @@ -253,8 +255,8 @@ describe(@"Set operations", ^{ - NSArray *a = @[ @1, @2 ]; - NSArray *b = @[ @2, @3 ]; + NSArray *a = @[ @1, @2 ]; + NSArray *b = @[ @2, @3 ]; it(@"return the elements common to both arrays ", ^{ [[[a intersectionWithArray:b] should] equal:@[ @2 ]]; @@ -280,4 +282,6 @@ SPEC_END +NS_ASSUME_NONNULL_END + diff --git a/Example/ObjectiveSugarTests/NSDictionaryTests.m b/Example/ObjectiveSugarTests/NSDictionaryTests.m index 33ea49a..438d88f 100644 --- a/Example/ObjectiveSugarTests/NSDictionaryTests.m +++ b/Example/ObjectiveSugarTests/NSDictionaryTests.m @@ -9,11 +9,12 @@ #import "Kiwi.h" #import "ObjectiveSugar.h" +NS_ASSUME_NONNULL_BEGIN SPEC_BEGIN(DictionaryAdditions) describe(@"Iterators", ^{ - NSDictionary *sampleDict = @{ + NSDictionary *sampleDict = @{ @"one" : @1, @"two" : @2, @"three" : @3 @@ -30,7 +31,7 @@ it(@"iterates each key and value", ^{ - [sampleDict each:^(id key, id value) { + [sampleDict each:^(NSString *key, NSNumber *value) { [[sampleDict.allKeys[counter] should] equal:key]; [[sampleDict.allValues[counter] should] equal:value]; counter ++; @@ -38,21 +39,21 @@ }); it(@"iterates all keys", ^{ - [sampleDict eachKey:^(id key){ + [sampleDict eachKey:^(NSString *key) { [[sampleDict.allKeys[counter] should] equal:key]; counter ++; }]; }); it(@"iterates all values", ^{ - [sampleDict eachValue:^(id value){ + [sampleDict eachValue:^(NSNumber *value) { [[sampleDict.allValues[counter] should] equal:value]; counter ++; }]; }); it(@"iterates all keys when mapping", ^{ - NSArray *mapped = [sampleDict map:^id(id key, id value) { + NSArray *mapped = [sampleDict map:^NSString * _Nullable(NSString *key, NSNumber *value) { counter ++; return key; }]; @@ -61,7 +62,7 @@ }); it(@"iterates all values when mapping", ^{ - NSArray *mapped = [sampleDict map:^id(id key, id value) { + NSArray *mapped = [sampleDict map:^NSNumber * _Nullable(NSString *key, NSNumber *value) { counter ++; return value; }]; @@ -72,7 +73,7 @@ describe(@"Keys", ^{ - NSDictionary *sampleDict = @{ + NSDictionary *sampleDict = @{ @"one": @1, @"two": @2, @"null": [NSNull null] @@ -90,7 +91,7 @@ }); describe(@"Pick", ^{ - NSDictionary *sampleDict = @{ + NSDictionary *sampleDict = @{ @"one": @1, @"two": @2, @"null": [NSNull null] @@ -105,7 +106,7 @@ }); describe(@"Omit", ^{ - NSDictionary *sampleDict = @{ + NSDictionary *sampleDict = @{ @"one": @1, @"two": @2, @"null": [NSNull null] @@ -148,4 +149,4 @@ }); SPEC_END - +NS_ASSUME_NONNULL_END diff --git a/Example/ObjectiveSugarTests/NSMutableArrayTests.m b/Example/ObjectiveSugarTests/NSMutableArrayTests.m index d51cbc4..d66d7b3 100644 --- a/Example/ObjectiveSugarTests/NSMutableArrayTests.m +++ b/Example/ObjectiveSugarTests/NSMutableArrayTests.m @@ -9,6 +9,7 @@ #import "ObjectiveSugar.h" #import "Kiwi.h" +NS_ASSUME_NONNULL_BEGIN SPEC_BEGIN(MutableArrayAdditions) describe(@"NSMutableArray categories", ^{ @@ -51,9 +52,9 @@ }); it(@"-keepIf keeps the objects passing the block", ^{ - NSMutableArray *array = @[@8, @5, @9, @1, @7, @14, @17, @87, @64].mutableCopy; + NSMutableArray *array = @[@8, @5, @9, @1, @7, @14, @17, @87, @64].mutableCopy; - [array keepIf:^BOOL(id object) { + [array keepIf:^BOOL(NSNumber *object) { return [object intValue] % 2 == 0; }]; @@ -63,3 +64,4 @@ }); SPEC_END +NS_ASSUME_NONNULL_END diff --git a/Example/ObjectiveSugarTests/NSSetTests.m b/Example/ObjectiveSugarTests/NSSetTests.m index 43c1428..e355dc7 100644 --- a/Example/ObjectiveSugarTests/NSSetTests.m +++ b/Example/ObjectiveSugarTests/NSSetTests.m @@ -9,19 +9,20 @@ #import "Kiwi.h" #import "ObjectiveSugar.h" +NS_ASSUME_NONNULL_BEGIN SPEC_BEGIN(SetAdditions) describe(@"Iterators", ^{ - NSSet *sampleSet = [NSSet setWithArray:@[@"first", @"second", @"third"]]; + NSSet *sampleSet = [NSSet setWithArray:@[@"first", @"second", @"third"]]; context(@"Iterating using block", ^{ it(@"iterates using -each:^", ^{ - NSMutableArray *duplicate = [sampleSet.allObjects mutableCopy]; + NSMutableArray *duplicate = [sampleSet.allObjects mutableCopy]; - [sampleSet each:^(id object) { + [sampleSet each:^(NSString *object) { [[duplicate should] contain:object]; [duplicate removeObject:object]; }]; @@ -29,9 +30,9 @@ }); it(@"iterates using -eachWithIndex:^", ^{ - NSMutableArray *duplicate = [sampleSet.allObjects mutableCopy]; + NSMutableArray *duplicate = [sampleSet.allObjects mutableCopy]; - [sampleSet eachWithIndex:^(id object, NSUInteger index) { + [sampleSet eachWithIndex:^(NSString *object, NSUInteger index) { [[object should] equal:sampleSet.allObjects[index]]; [duplicate removeObject:object]; }]; @@ -70,21 +71,23 @@ context(@"modifications", ^{ - NSSet *cars = [NSSet setWithArray:@[@"Testarossa", @"F50", @"F458 Italia"]]; + NSSet *cars = [NSSet setWithArray:@[@"Testarossa", @"F50", @"F458 Italia"]]; let(items, ^id{ return @[@{ @"value": @4 }, @{ @"value": @5 }, @{ @"value": @9 }]; }); it(@"-map returns an array of objects returned by the block", ^{ - NSArray *mapped = [sampleSet map:^id(id object) { + NSArray *mapped = [sampleSet map:^NSNumber *(NSString *object) { return @([object isEqualToString:@"third"]); }]; [[mapped should] containObjects:@NO, @YES, @NO, nil]; }); it(@"-map treats nils the same way as -valueForKeyPath:", ^{ - NSSet *users = [NSSet setWithArray:@[@{@"name": @"Marin"}, @{@"fake": @"value"}, @{@"name": @"Neil"}]]; - NSArray *mappedUsers = [users map:^id(NSDictionary *user) { return user[@"name"]; }]; + NSSet *> *users = [NSSet setWithArray:@[@{@"name": @"Marin"}, @{@"fake": @"value"}, @{@"name": @"Neil"}]]; + NSArray *mappedUsers = [users map:^NSString *(NSDictionary *user) { + return user[@"name"]; + }]; [[mappedUsers.sort should] equal:[[users valueForKeyPath:@"name"] allObjects].sort]; [[mappedUsers should] haveCountOf:2]; @@ -98,20 +101,20 @@ }); it(@"-reject returns an array containing all the elements of NSArray for which block is false", ^{ - [[[cars reject:^BOOL(NSString* car) { + [[[cars reject:^BOOL(NSString *car) { return [car isEqualToString:@"F50"]; }] should] equal:@[ @"F458 Italia", @"Testarossa" ]]; }); it(@"-reduce returns a result of all the elements", ^{ - [[[items reduce:^id(NSDictionary *accumulator, NSDictionary *item) { + [[[items reduce:^id _Nullable(id _Nullable accumulator, id item) { return [accumulator[@"value"] intValue] > [item[@"value"] intValue] ? accumulator : item; }] should] equal:@{ @"value": @9 }]; }); it(@"-reduce:withBlock with accumulator behaves like -reduce and starts with user provided element", ^{ - [[[items reduce:@0 withBlock:^id(NSNumber *accumulator, NSDictionary *item) { + [[[items reduce:@0 withBlock:^NSNumber * _Nullable(NSNumber * _Nullable accumulator, id item) { return @(accumulator.intValue + [item[@"value"] intValue]); }] should] equal:@18]; }); @@ -121,7 +124,7 @@ context(@"sorting", ^{ it(@"-sort aliases -sortUsingComparator:", ^{ - NSSet *numbers = [NSSet setWithArray:@[ @4, @1, @3, @2 ]]; + NSSet *numbers = [NSSet setWithArray:@[ @4, @1, @3, @2 ]]; [[[numbers sort] should] equal:@[ @1, @2, @3, @4 ]]; }); @@ -130,4 +133,4 @@ }); SPEC_END - +NS_ASSUME_NONNULL_END diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 241c862..e7c5d18 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -8,10 +8,10 @@ DEPENDENCIES: EXTERNAL SOURCES: ObjectiveSugar: - :path: "../" + :path: ../ SPEC CHECKSUMS: Kiwi: f038a6c61f7a9e4d7766bff5717aa3b3fdb75f55 ObjectiveSugar: 0729eb74a757ea48b109a8902178c9b89aa58a9f -COCOAPODS: 0.36.4 +COCOAPODS: 0.39.0