diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2747e5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +#OS noise +profile +[Tt]humbs.db +*.DS_Store +*~ +*.swp +*.out +*.bak* +*.lock + +#Other CSM +.hg +.svn +CVS + +#Xcode noise +*.log +*~.nib +*.moved-aside +**/*.xcodeproj/* +**/!*.xcodeproj/project.pbxproj +**/*.xcworkspace/* +**/!*.xcworkspace/contents.xcworkspacedata +!xcshareddata +xcuserdata +VKSdkWorkspace.xcworkspace/xcshareddata/ + +#Project files +[Bb]uild/ +DerivedData/ + +#CocoaPods +Pods + +#AppCode +*/.idea/* +.idea/* diff --git a/Animated-Gif-iOS.podspec b/Animated-Gif-iOS.podspec new file mode 100755 index 0000000..a793d0e --- /dev/null +++ b/Animated-Gif-iOS.podspec @@ -0,0 +1,13 @@ +Pod::Spec.new do |s| + s.name = "Animated-Gif-iOS" + s.version = "1.1.0" + s.summary = "A special supporting class for playing GIF animations inline without creating all frames at once. Decodes animation frames on the fly" + s.homepage = "https://github.com/Dreddik/Animated-GIF-iPhone.git" + s.license = 'MIT' + s.author = { "Roman Truba" => "dreddkr@gmail.com", "Stijn Spijker" => "(http://www.stijnspijker.nl/", } + s.source = { :git => "https://github.com/Dreddik/Animated-GIF-iPhone.git", :tag => s.version.to_s } + s.platform = :ios, '5.0' + s.source_files = 'AnimatedGif/*.{h,m}' + s.frameworks = 'Foundation','UIKit' + s.requires_arc = true +end \ No newline at end of file diff --git a/AnimatedGif/AnimatedGif.h b/AnimatedGif/AnimatedGif.h new file mode 100644 index 0000000..b71f1b2 --- /dev/null +++ b/AnimatedGif/AnimatedGif.h @@ -0,0 +1,87 @@ +// +// AnimatedGif2.h +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import +static NSString * const AnimatedGifLoadingProgressEvent = @"AnimatedGifLoadingProgressEvent"; +static NSString * const AnimatedGifDidStartLoadingingEvent = @"AnimatedGifDidStartLoadingingEvent"; +static NSString * const AnimatedGifDidFinishLoadingingEvent = @"AnimatedGifDidFinishLoadingingEvent"; +static NSString * const AnimatedGifRemovedFromSuperview = @"AnimatedGifRemovedFromSuperview"; + +@class AnimatedGif; + +@protocol AnimatedGifDelegate + +- (void)animationWillRepeat:(AnimatedGif *)animatedGif; + +@end + +/** + * Class for enqueing gif loading requests. Also, it keeps gif data info + */ +@interface AnimatedGifQueueObject : NSObject +{ + long long expectedGifSize; +} +/// URL of gif been loaded +@property (nonatomic, strong) NSURL *url; +/// Data of gif +@property (nonatomic, strong) NSData *data; +/// Current network gif download progress +@property (nonatomic, assign) CGFloat loadingProgress; + +@end + +/** + * Class for creating animated gif playback. + */ +@interface AnimatedGif : NSObject + +@property (nonatomic, assign) id delegate; + +/// Progress block will be called when GIF is loading from network. +@property (nonatomic, copy) void(^loadingProgressBlock)(AnimatedGif *object, CGFloat progressLevel); +/** + * This block will be called when we are ready to show first frame of animation. + * You can use it to correctly size your parent UIImageView. + * First frame of animation will be passed in frame. + * Also, animationSize property will be set before this block invokation. +*/ +@property (nonatomic, copy) void(^willShowFrameBlock)(AnimatedGif *object, UIImage * frame); +/// URL of current animation gif if it was passed +@property (nonatomic, readonly) NSURL *url; +/// Size of current animation GIF. Will be set only after loading and first frame processed +@property (nonatomic, assign) CGSize animationSize; +/// Image view where animation will be shown +@property (nonatomic, weak) UIImageView * parentView; + +/// Creates new animation from URL. It may be local file URL, or web URL ++ (AnimatedGif*) getAnimationForGifAtUrl: (NSURL *) animationUrl; +/// Creates new animation with GIF data ++ (AnimatedGif*) getAnimationForGifWithData:(NSData*) data; +/// Starts animation process (loading -> preparing -> display) +- (void) start; +/// Stops current animation +- (void) stop; + +@end diff --git a/AnimatedGif/AnimatedGif.m b/AnimatedGif/AnimatedGif.m new file mode 100644 index 0000000..9ac87c9 --- /dev/null +++ b/AnimatedGif/AnimatedGif.m @@ -0,0 +1,723 @@ +// +// AnimatedGif2.m +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import "AnimatedGif.h" + +/** + * Creates new context for frames drawing. + */ +static CGContextRef CreateARGBBitmapContext(CGSize size) +{ + CGContextRef context = NULL; + CGColorSpaceRef colorSpace; + int bitmapByteCount; + int bitmapBytesPerRow; + + // Get image width, height. We'll use the entire image. + size_t pixelsWide = size.width; + size_t pixelsHigh = size.height; + + // Declare the number of bytes per row. Each pixel in the bitmap in this + // example is represented by 4 bytes; 8 bits each of red, green, blue, and + // alpha. + bitmapBytesPerRow = (int)(pixelsWide * 4); + bitmapByteCount = (int)(bitmapBytesPerRow * pixelsHigh); + + // Use the generic RGB color space. + colorSpace = CGColorSpaceCreateDeviceRGB(); + + if (colorSpace == NULL) + { + fprintf(stderr, "Error allocating color space\n"); + return NULL; + } + + // Create the bitmap context. We want pre-multiplied ARGB, 8-bits + // per component. Regardless of what the source image format is + // (CMYK, Grayscale, and so on) it will be converted over to the format + // specified here by CGBitmapContextCreate. + context = CGBitmapContextCreate (NULL, + pixelsWide, + pixelsHigh, + 8, // bits per component + bitmapBytesPerRow, + colorSpace, + (CGBitmapInfo) kCGImageAlphaPremultipliedFirst); + if (context == NULL) + { + fprintf (stderr, "Context not created!"); + } + + // Make sure and release colorspace before returning + CGColorSpaceRelease( colorSpace ); + + return context; + +} + +/** + * Describes GIF animation frame + */ +@interface AnimatedGifFrame : NSObject + +@property (nonatomic, copy) NSData *header; +@property (nonatomic, copy) NSData *data; +@property (nonatomic, assign) double delay; +@property (nonatomic, assign) int disposalMethod; +@property (nonatomic, assign) CGRect area; +@end + +@implementation AnimatedGifFrame + +- (void) dealloc +{ + _data = nil; + _header = nil; +} +@end + +@interface AnimatedGifQueueObject () +{ + NSURLResponse * _urlResponse; +} +@property (nonatomic, copy) void(^loadingProgressChangedBlock)(AnimatedGifQueueObject *object); +@property (nonatomic, copy) void(^didLoadBlock)(AnimatedGifQueueObject *object); +@end + +@implementation AnimatedGifQueueObject +- (id)init { + self = [super init]; + return self; +} +/** + * Downloads GIF from network, and caches it, if possible. NSURLCache may be removed + */ +- (void) downloadGif { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:5 * 1024 * 1024 + diskCapacity:50 * 1024 * 1024 + diskPath:nil]; + [NSURLCache setSharedURLCache:URLCache]; + }); + + NSMutableURLRequest * request = [[NSMutableURLRequest alloc] initWithURL:self.url]; + NSCachedURLResponse * response = [[NSURLCache sharedURLCache] cachedResponseForRequest:request]; + if (!response) { + NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO]; + [connection scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; + [connection start]; + return; + } + self.data = response.data; + dispatch_async(dispatch_get_main_queue(), ^{ + if (_didLoadBlock) { + _didLoadBlock(self); + } + }); +} +#pragma mark - NSURLConnectionDataDelegate methods +- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { + if (!_data) { + expectedGifSize = response.expectedContentLength; + if (expectedGifSize > 0) { + _data = [NSMutableData dataWithCapacity:((NSUInteger)expectedGifSize)]; + } else { + _data = [NSMutableData new]; + } + } + _urlResponse = response; +} +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { + if (!_data) + _data = [NSMutableData data]; + [(NSMutableData*)_data appendData:data]; + + self.loadingProgress = _data.length * 1.0f / expectedGifSize; + if (expectedGifSize < 0) { + self.loadingProgress = 0; + } + if (_loadingProgressChangedBlock) { + _loadingProgressChangedBlock(self); + } + [[NSNotificationCenter defaultCenter] postNotificationName:AnimatedGifLoadingProgressEvent object:self]; +} +-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { + [self downloadGif]; +} + +-(void)connectionDidFinishLoading:(NSURLConnection *)connection { + if (expectedGifSize > 0 && _data.length != expectedGifSize) { + [self downloadGif]; + return; + } + NSCachedURLResponse * response = [[NSCachedURLResponse alloc] initWithResponse:_urlResponse data:_data userInfo:nil storagePolicy:NSURLCacheStorageAllowed]; + [[NSURLCache sharedURLCache] storeCachedResponse:response forRequest:connection.originalRequest]; + if (_didLoadBlock) { + _didLoadBlock(self); + } + +} + +-(void)dealloc { + _didLoadBlock = nil; + _loadingProgressChangedBlock = nil; +} +@end + + +@interface AnimatedGif () +{ + NSData *GIF_pointer; + NSMutableData *GIF_buffer; + NSMutableData *GIF_screen; + NSMutableData *GIF_global; + NSDate * frameTime; + CGContextRef imageContext; + + int GIF_sorted; + int GIF_colorS; + int GIF_colorC; + int GIF_colorF; + int dataPointer; + int totalFrames; + + BOOL didShowFrame, didCountAllFrames; + + AnimatedGifFrame *thisFrame, *lastFrame; + UIImage * overlayImage; + NSOperationQueue *opQueue; + +} +@property (nonatomic, strong) AnimatedGifQueueObject * queueObject; +@end + +@implementation AnimatedGif ++(AnimatedGif *)getAnimationForGifAtUrl:(NSURL *)animationUrl { + AnimatedGifQueueObject * object = [AnimatedGifQueueObject new]; + object.url = animationUrl; + + AnimatedGif * animation = [AnimatedGif new]; + animation.queueObject = object; + return animation; +} + ++(AnimatedGif *)getAnimationForGifWithData:(NSData *)data { + AnimatedGifQueueObject * object = [AnimatedGifQueueObject new]; + object.data = data; + + AnimatedGif * animation = [AnimatedGif new]; + animation.queueObject = object; + return animation; +} + +-(void)dealloc { + [opQueue waitUntilAllOperationsAreFinished]; + opQueue = nil; + if (imageContext) + CGContextRelease(imageContext); + overlayImage = nil; +} + +-(NSURL *)url { + return self.queueObject.url; +} + +- (void) stop { + [opQueue cancelAllOperations]; + [opQueue setSuspended:YES]; + + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void) start { + didShowFrame = NO; + [[NSNotificationCenter defaultCenter] postNotificationName:AnimatedGifDidStartLoadingingEvent object:self userInfo:nil]; + if (self.queueObject.data) { + [self startThreadWithData:self.queueObject.data]; + } else if ([self.queueObject.url isFileURL]) { + [self startThreadWithData:[NSData dataWithContentsOfURL:self.queueObject.url]]; + } else if (self.queueObject.url) { + __weak AnimatedGif * wself = self; + [self.queueObject setLoadingProgressChangedBlock:^(AnimatedGifQueueObject *obj) { + if (wself.loadingProgressBlock) { + wself.loadingProgressBlock(wself, obj.loadingProgress); + } + }]; + [self.queueObject setDidLoadBlock:^(AnimatedGifQueueObject *obj) { + [wself startThreadWithData:obj.data]; + }]; + [self.queueObject downloadGif]; + } +} + +- (void) startThreadWithData:(NSData*) gifData { + [[NSNotificationCenter defaultCenter] postNotificationName:AnimatedGifDidFinishLoadingingEvent object:self userInfo:nil]; + if (!opQueue) { + opQueue = [[NSOperationQueue alloc] init]; + opQueue.maxConcurrentOperationCount = 1; + } + [opQueue addOperation:[[NSInvocationOperation alloc] initWithTarget:self selector:@selector(decodeGIF:) object:gifData]]; + +} + +/** + * Main GIF loop. Decodes gif data and draws it on parent view. + */ +- (void)decodeGIF:(NSData *)GIFData +{ + opQueue.name = @"Gif queue"; + + while (!opQueue.isSuspended) { + @autoreleasepool { + GIF_pointer = GIFData; + GIF_buffer = nil; + GIF_global = nil; + GIF_screen = nil; + + GIF_buffer = [[NSMutableData alloc] init]; + GIF_global = [[NSMutableData alloc] init]; + GIF_screen = [[NSMutableData alloc] init]; + + thisFrame = lastFrame = nil; + + // Reset file counters to 0 + dataPointer = 0; + + [self GIFSkipBytes: 6]; // GIF89a, throw away + [self GIFGetBytes: 7]; // Logical Screen Descriptor + + // Deep copy + [GIF_screen setData: GIF_buffer]; + + // Copy the read bytes into a local buffer on the stack + // For easy byte access in the following lines. + NSInteger length = [GIF_buffer length]; + unsigned char aBuffer[length]; + [GIF_buffer getBytes:aBuffer length:length]; + + if (aBuffer[4] & 0x80) GIF_colorF = 1; else GIF_colorF = 0; + if (aBuffer[4] & 0x08) GIF_sorted = 1; else GIF_sorted = 0; + GIF_colorC = (aBuffer[4] & 0x07); + GIF_colorS = 2 << GIF_colorC; + + if (GIF_colorF == 1) + { + [self GIFGetBytes: (3 * GIF_colorS)]; + + // Deep copy + [GIF_global setData:GIF_buffer]; + } + + unsigned char bBuffer[1]; + + + while ([self GIFGetBytes:1] && !opQueue.isSuspended) + { + @autoreleasepool { + [GIF_buffer getBytes:bBuffer length:1]; + + if (bBuffer[0] == 0x3B) + { // This is the end + break; + } + + switch (bBuffer[0]) + { + case 0x21: + // Graphic Control Extension (#n of n) + [self GIFReadExtensions]; + break; + case 0x2C: + frameTime = [NSDate new]; + // Image Descriptor (#n of n) + [self GIFReadDescriptor]; + break; + } + } + + if ([self endOfGifReached:1]) { + if ([self.delegate respondsToSelector:@selector(animationWillRepeat:)]) { + [self.delegate performSelector:@selector(animationWillRepeat:) withObject:self]; + } + } + + } + + didCountAllFrames = YES; + // clean up stuff + GIF_buffer = nil; + GIF_screen = nil; + GIF_global = nil; + } + } + +} + +/** + * This method draws next GIF frame on the canvas of imageContext, according disposal method. + * After frame image is ready, it passes it to main thread and sets to parent image view. + */ +- (void) drawNextFrame:(AnimatedGifFrame*) frame +{ + @autoreleasepool { + UIImage * image = [UIImage imageWithData:frame.data]; + + if (!image) return; + + CGSize size = image.size; + CGRect rect = CGRectZero; + rect.size = size; + self.animationSize = size; + + // Create new bitmap context if need + if (!imageContext) { + imageContext = CreateARGBBitmapContext(size); + } + + // Initialize Flag + UIImage *previousCanvas = nil; + + // Save Context + CGContextSaveGState(imageContext); + CGContextScaleCTM(imageContext, 1.0, -1.0); + CGContextTranslateCTM(imageContext, 0.0, -size.height); + + // Check if lastFrame exists + CGRect clipRect; + + // Disposal Method (Operations before draw frame) + switch (frame.disposalMethod) + { + case 1: // Do not dispose (draw over context) + // Create Rect (y inverted) to clipping + clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); + // Clip Context + CGContextClipToRect(imageContext, clipRect); + break; + case 2: // Restore to background the rect when the actual frame will go to be drawed + // Create Rect (y inverted) to clipping + clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); + // Clip Context + CGContextClipToRect(imageContext, clipRect); + break; + case 3: // Restore to Previous + // Get Canvas + @autoreleasepool { + CGImageRef img = CGBitmapContextCreateImage(imageContext); + previousCanvas = [UIImage imageWithCGImage:img]; + CGImageRelease(img); + } + + // Create Rect (y inverted) to clipping + clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); + // Clip Context + CGContextClipToRect(imageContext, clipRect); + break; + } + // Draw Actual Frame + CGContextDrawImage(imageContext, rect, image.CGImage); + // Restore State + CGContextRestoreGState(imageContext); + // Add Image created. + @autoreleasepool { + CGImageRef img = CGBitmapContextCreateImage(imageContext); + overlayImage = [UIImage imageWithCGImage:img scale:1.0f orientation:UIImageOrientationDownMirrored]; + CGImageRelease(img); + if (opQueue.isSuspended) { + return; + } + } + + + + if (!didCountAllFrames) { + totalFrames++; + } + + static CGFloat defaultFrameRate = 10; + if (frame.delay <= 1) { + frame.delay = defaultFrameRate; + } + + + // Set Last Frame + lastFrame = frame; + + // Disposal Method (Operations afte draw frame) + switch (frame.disposalMethod) + { + case 2: // Restore to background color the zone of the actual frame + // Save Context + CGContextSaveGState(imageContext); + CGContextScaleCTM(imageContext, 1.0, -1.0); + CGContextTranslateCTM(imageContext, 0.0, -size.height); + // Clear Context + CGContextClearRect(imageContext, clipRect); + // Restore Context + CGContextRestoreGState(imageContext); + break; + case 3: // Restore to Previous Canvas + // Save Context + CGContextSaveGState(imageContext); + // Clear Context + CGContextClearRect(imageContext, lastFrame.area); + // Draw previous frame + CGContextDrawImage(imageContext, rect, previousCanvas.CGImage); + // Restore State + CGContextRestoreGState(imageContext); + break; + } + previousCanvas = nil; + NSDate * now = [NSDate new]; + CGFloat frameDelay = frame.delay / 100, processTime = [now timeIntervalSinceDate:frameTime]; + CGFloat threadDelay = frameDelay - processTime; + frameTime = now; + if (threadDelay < 0) threadDelay = 0; + + if (!opQueue.isSuspended) { + dispatch_sync(dispatch_get_main_queue(), ^{ + if (!didShowFrame && _willShowFrameBlock) { + _willShowFrameBlock(self, overlayImage); + //Useless now + _willShowFrameBlock = nil; + didShowFrame = YES; + } + self.parentView.image = overlayImage; + }); + } + + [NSThread sleepForTimeInterval:threadDelay]; + } + +} + + +- (void)GIFReadExtensions +{ + // 21! But we still could have an Application Extension, + // so we want to check for the full signature. + unsigned char cur[1], prev[1]; + [self GIFGetBytes:1]; + [GIF_buffer getBytes:cur length:1]; + + while (cur[0] != 0x00) + { + + // TODO: Known bug, the sequence F9 04 could occur in the Application Extension, we + // should check whether this combo follows directly after the 21. + if (cur[0] == 0x04 && prev[0] == 0xF9) + { + [self GIFGetBytes:5]; + + AnimatedGifFrame *frame = [[AnimatedGifFrame alloc] init]; + + unsigned char buffer[5]; + [GIF_buffer getBytes:buffer length:5]; + frame.disposalMethod = (buffer[0] & 0x1c) >> 2; + // We save the delays for easy access. + frame.delay = (buffer[1] | buffer[2] << 8); + + unsigned char board[8]; + board[0] = 0x21; + board[1] = 0xF9; + board[2] = 0x04; + + for(int i = 3, a = 0; a < 5; i++, a++) + { + board[i] = buffer[a]; + } + + frame.header = [NSData dataWithBytes:board length:8]; + + thisFrame = frame; + break; + } + + prev[0] = cur[0]; + [self GIFGetBytes:1]; + [GIF_buffer getBytes:cur length:1]; + } +} + +- (void) GIFReadDescriptor +{ + [self GIFGetBytes:9]; + + // Deep copy + NSMutableData *GIF_screenTmp = [NSMutableData dataWithData:GIF_buffer]; + + unsigned char aBuffer[9]; + [GIF_buffer getBytes:aBuffer length:9]; + + CGRect rect; + rect.origin.x = ((int)aBuffer[1] << 8) | aBuffer[0]; + rect.origin.y = ((int)aBuffer[3] << 8) | aBuffer[2]; + rect.size.width = ((int)aBuffer[5] << 8) | aBuffer[4]; + rect.size.height = ((int)aBuffer[7] << 8) | aBuffer[6]; + + AnimatedGifFrame *frame = thisFrame; + frame.area = rect; + + if (aBuffer[8] & 0x80) GIF_colorF = 1; else GIF_colorF = 0; + + unsigned char GIF_code = GIF_colorC, GIF_sort = GIF_sorted; + + if (GIF_colorF == 1) + { + GIF_code = (aBuffer[8] & 0x07); + + if (aBuffer[8] & 0x20) + { + GIF_sort = 1; + } + else + { + GIF_sort = 0; + } + } + + int GIF_size = (2 << GIF_code); + + size_t blength = [GIF_screen length]; + unsigned char bBuffer[blength]; + [GIF_screen getBytes:bBuffer length:blength]; + + bBuffer[4] = (bBuffer[4] & 0x70); + bBuffer[4] = (bBuffer[4] | 0x80); + bBuffer[4] = (bBuffer[4] | GIF_code); + + if (GIF_sort) + { + bBuffer[4] |= 0x08; + } + + NSMutableData *GIF_string = [NSMutableData dataWithData:[@"GIF89a" dataUsingEncoding: NSUTF8StringEncoding]]; + [GIF_screen setData:[NSData dataWithBytes:bBuffer length:blength]]; + [GIF_string appendData: GIF_screen]; + + if (GIF_colorF == 1) + { + [self GIFGetBytes:(3 * GIF_size)]; + [GIF_string appendData:GIF_buffer]; + } + else + { + [GIF_string appendData:GIF_global]; + } + + // Add Graphic Control Extension Frame (for transparancy) + [GIF_string appendData:frame.header]; + + char endC = 0x2c; + [GIF_string appendBytes:&endC length:sizeof(endC)]; + + size_t clength = [GIF_screenTmp length]; + unsigned char cBuffer[clength]; + [GIF_screenTmp getBytes:cBuffer length:clength]; + + cBuffer[8] &= 0x40; + + [GIF_screenTmp setData:[NSData dataWithBytes:cBuffer length:clength]]; + + [GIF_string appendData: GIF_screenTmp]; + [self GIFGetBytes:1]; + [GIF_string appendData: GIF_buffer]; + + while (true && !opQueue.isSuspended) + { + [self GIFGetBytes:1]; + [GIF_string appendData: GIF_buffer]; + + unsigned char dBuffer[1]; + [GIF_buffer getBytes:dBuffer length:1]; + + long u = (long) dBuffer[0]; + + if (u != 0x00) + { + [self GIFGetBytes:u]; + [GIF_string appendData: GIF_buffer]; + } + else + { + break; + } + + } + + endC = 0x3b; + [GIF_string appendBytes:&endC length:sizeof(endC)]; + + // save the frame into the array of frames + frame.data = GIF_string; + [self drawNextFrame:frame]; +} + +/* Puts (int) length into the GIF_buffer from file, returns whether read was succesfull */ +- (bool) GIFGetBytes: (NSInteger) length +{ + if (GIF_buffer != nil) + { + GIF_buffer = nil; + } + + if ([GIF_pointer length] >= dataPointer + length) // Don't read across the edge of the file.. + { + GIF_buffer = [[GIF_pointer subdataWithRange:NSMakeRange(dataPointer, length)] mutableCopy]; + dataPointer += length; + return YES; + } + else + { + return NO; + } +} + +- (BOOL) endOfGifReached:(NSInteger) length +{ + if ([GIF_pointer length] > dataPointer + length) // Don't read across the edge of the file.. + { + return NO; + } + + return YES; +} + +/* Skips (int) length bytes in the GIF, faster than reading them and throwing them away.. */ +- (bool) GIFSkipBytes: (NSInteger) length +{ + if ([GIF_pointer length] >= dataPointer + length) + { + dataPointer += length; + return YES; + } + else + { + return NO; + } + +} + + +@end diff --git a/AnimatedGif/UIImageView+AnimatedGif.h b/AnimatedGif/UIImageView+AnimatedGif.h new file mode 100644 index 0000000..39082a1 --- /dev/null +++ b/AnimatedGif/UIImageView+AnimatedGif.h @@ -0,0 +1,33 @@ +// +// UIImageView+AnimatedGif.h +// +// Created by Roman Truba on 07.04.14. +// Copyright (c) 2014 VK.com +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import "AnimatedGif.h" +@interface UIImageView (AnimatedGif) +@property (nonatomic, strong) AnimatedGif *animatedGif; +-(void) setAnimatedGif:(AnimatedGif *)animatedGif startImmediately:(BOOL)start; +-(instancetype) initWithAnimationAtURL:(NSURL*) animationUrl startImmediately:(BOOL)start; +-(instancetype) initWithAnimationData:(NSData*) animationData startImmediately:(BOOL)start; +-(void) startGifAnimation; +-(void) stopGifAnimation; +@end diff --git a/AnimatedGif/UIImageView+AnimatedGif.m b/AnimatedGif/UIImageView+AnimatedGif.m new file mode 100644 index 0000000..782ef72 --- /dev/null +++ b/AnimatedGif/UIImageView+AnimatedGif.m @@ -0,0 +1,102 @@ +// +// UIImageView+AnimatedGif.m +// AnimatedGifExample +// +// Created by Roman Truba on 07.04.14. +// Copyright (c) 2014 VK.com +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import +#import "UIImageView+AnimatedGif.h" +void Swizzle(Class c, SEL orig, SEL new) +{ + Method originalMethod = class_getInstanceMethod(c, orig); + Method overrideMethod = class_getInstanceMethod(c, new); + if (class_addMethod(c, orig, method_getImplementation(overrideMethod), method_getTypeEncoding(overrideMethod))) { + class_replaceMethod(c, new, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); + } else { + method_exchangeImplementations(originalMethod, overrideMethod); + } +} +static NSMutableDictionary * swizzledClasses; +static void *UIViewAnimationKey; +@implementation UIImageView (AnimatedGif) +-(instancetype) initWithAnimationAtURL:(NSURL*) animationUrl startImmediately:(BOOL)start { + self = [self init]; + self.animatedGif = [AnimatedGif getAnimationForGifAtUrl:animationUrl]; + if (start) { + [self startAnimating]; + } + return self; +} +-(instancetype) initWithAnimationData:(NSData*) animationData startImmediately:(BOOL)start { + self = [self init]; + self.animatedGif = [AnimatedGif getAnimationForGifWithData:animationData]; + if (start) { + [self startAnimating]; + } + return self; +} +-(void)setAnimatedGif:(AnimatedGif *)animatedGif { + //This is workaround for subclasses of UIImageView + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + swizzledClasses = [NSMutableDictionary new]; + }); + if (!swizzledClasses[NSStringFromClass(self.class)]) { + Swizzle([self class], @selector(willMoveToSuperview:), @selector(willMoveToSuperviewGif:)); + swizzledClasses[NSStringFromClass(self.class)] = @YES; + } + + if (self.animatedGif != animatedGif) { + [self.animatedGif stop]; + } + objc_setAssociatedObject(self, &UIViewAnimationKey, animatedGif, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + animatedGif.parentView = self; +} +-(void)setAnimatedGif:(AnimatedGif *)animatedGif startImmediately:(BOOL)start { + self.animatedGif = animatedGif; + if (start) { + [self startGifAnimation]; + } +} +-(AnimatedGif *)animatedGif { + return objc_getAssociatedObject(self, &UIViewAnimationKey); +} +-(void) startGifAnimation { + [self.animatedGif start]; +} +-(void)stopGifAnimation { + [self.animatedGif stop]; + +} +-(void)willMoveToSuperviewGif:(UIView *)newSuperview { + if ([self respondsToSelector:@selector(willMoveToSuperviewGif:)]) { + [self willMoveToSuperviewGif:newSuperview]; + } + if (newSuperview == nil) { + [self stopGifAnimation]; + self.animatedGif = nil; + } +} +-(void)dealloc { + self.animatedGif = nil; +} +@end diff --git a/AnimatedGifExample.xcodeproj/project.pbxproj b/AnimatedGifExample.xcodeproj/project.pbxproj deleted file mode 100755 index fdf7dd9..0000000 --- a/AnimatedGifExample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,273 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 1D3623260D0F684500981E51 /* AnimatedGifExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AnimatedGifExampleAppDelegate.m */; }; - 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; - 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; - 2899E5220DE3E06400AC0155 /* AnimatedGifExampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* AnimatedGifExampleViewController.xib */; }; - 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; - 28D7ACF80DDB3853001CB0EB /* AnimatedGifExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* AnimatedGifExampleViewController.m */; }; - BCFF93E11000E1E800162DEF /* AnimatedGif.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; }; - BCFF93E91000E28900162DEF /* apple_logo_animated.gif in Resources */ = {isa = PBXBuildFile; fileRef = BCFF93E81000E28900162DEF /* apple_logo_animated.gif */; }; - BCFF94911000EC2800162DEF /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = BCFF94901000EC2800162DEF /* background.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D3623240D0F684500981E51 /* AnimatedGifExampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatedGifExampleAppDelegate.h; sourceTree = ""; }; - 1D3623250D0F684500981E51 /* AnimatedGifExampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimatedGifExampleAppDelegate.m; sourceTree = ""; }; - 1D6058910D05DD3D006BFB54 /* AnimatedGifExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AnimatedGifExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 2899E5210DE3E06400AC0155 /* AnimatedGifExampleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AnimatedGifExampleViewController.xib; sourceTree = ""; }; - 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; - 28D7ACF60DDB3853001CB0EB /* AnimatedGifExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatedGifExampleViewController.h; sourceTree = ""; }; - 28D7ACF70DDB3853001CB0EB /* AnimatedGifExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimatedGifExampleViewController.m; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 32CA4F630368D1EE00C91783 /* AnimatedGifExample_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatedGifExample_Prefix.pch; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* AnimatedGifExample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "AnimatedGifExample-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; - BCFF93DF1000E1E800162DEF /* AnimatedGif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AnimatedGif.h; sourceTree = ""; }; - BCFF93E01000E1E800162DEF /* AnimatedGif.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AnimatedGif.m; sourceTree = ""; }; - BCFF93E81000E28900162DEF /* apple_logo_animated.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = apple_logo_animated.gif; sourceTree = ""; }; - BCFF94901000EC2800162DEF /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, - 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, - 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - BCFF93DF1000E1E800162DEF /* AnimatedGif.h */, - BCFF93E01000E1E800162DEF /* AnimatedGif.m */, - 1D3623240D0F684500981E51 /* AnimatedGifExampleAppDelegate.h */, - 1D3623250D0F684500981E51 /* AnimatedGifExampleAppDelegate.m */, - 28D7ACF60DDB3853001CB0EB /* AnimatedGifExampleViewController.h */, - 28D7ACF70DDB3853001CB0EB /* AnimatedGifExampleViewController.m */, - ); - path = Classes; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 1D6058910D05DD3D006BFB54 /* AnimatedGifExample.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = CustomTemplate; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 32CA4F630368D1EE00C91783 /* AnimatedGifExample_Prefix.pch */, - 29B97316FDCFA39411CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - BCFF94901000EC2800162DEF /* background.png */, - BCFF93E81000E28900162DEF /* apple_logo_animated.gif */, - 2899E5210DE3E06400AC0155 /* AnimatedGifExampleViewController.xib */, - 28AD733E0D9D9553002E5188 /* MainWindow.xib */, - 8D1107310486CEB800E47090 /* AnimatedGifExample-Info.plist */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, - 1D30AB110D05D00D00671497 /* Foundation.framework */, - 288765A40DF7441C002DB57D /* CoreGraphics.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AnimatedGifExample" */; - buildPhases = ( - 1D60588D0D05DD3D006BFB54 /* Resources */, - 1D60588E0D05DD3D006BFB54 /* Sources */, - 1D60588F0D05DD3D006BFB54 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = AnimatedGifExample; - productName = AnimatedGifExample; - productReference = 1D6058910D05DD3D006BFB54 /* AnimatedGifExample.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AnimatedGifExample" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 1D60588D0D05DD3D006BFB54 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, - 2899E5220DE3E06400AC0155 /* AnimatedGifExampleViewController.xib in Resources */, - BCFF93E91000E28900162DEF /* apple_logo_animated.gif in Resources */, - BCFF94911000EC2800162DEF /* background.png in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 1D60588E0D05DD3D006BFB54 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1D60589B0D05DD56006BFB54 /* main.m in Sources */, - 1D3623260D0F684500981E51 /* AnimatedGifExampleAppDelegate.m in Sources */, - 28D7ACF80DDB3853001CB0EB /* AnimatedGifExampleViewController.m in Sources */, - BCFF93E11000E1E800162DEF /* AnimatedGif.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 1D6058940D05DD3E006BFB54 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = AnimatedGifExample_Prefix.pch; - INFOPLIST_FILE = "AnimatedGifExample-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - PRODUCT_NAME = AnimatedGifExample; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 1D6058950D05DD3E006BFB54 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = AnimatedGifExample_Prefix.pch; - INFOPLIST_FILE = "AnimatedGifExample-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - PRODUCT_NAME = AnimatedGifExample; - SDKROOT = iphoneos; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - PREBINDING = NO; - SDKROOT = iphoneos; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - PREBINDING = NO; - SDKROOT = iphoneos; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "AnimatedGifExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1D6058940D05DD3E006BFB54 /* Debug */, - 1D6058950D05DD3E006BFB54 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "AnimatedGifExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/AnimatedGifExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AnimatedGifExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e13f211..0000000 --- a/AnimatedGifExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/AnimatedGifExample.xcodeproj/project.xcworkspace/xcuserdata/agutierrez.xcuserdatad/UserInterfaceState.xcuserstate b/AnimatedGifExample.xcodeproj/project.xcworkspace/xcuserdata/agutierrez.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index 6c6eef7..0000000 --- a/AnimatedGifExample.xcodeproj/project.xcworkspace/xcuserdata/agutierrez.xcuserdatad/UserInterfaceState.xcuserstate +++ /dev/null @@ -1,15545 +0,0 @@ - - - - - $archiver - NSKeyedArchiver - $objects - - $null - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 2 - - - CF$UID - 3 - - - CF$UID - 4 - - - NS.objects - - - CF$UID - 5 - - - CF$UID - 436 - - - CF$UID - 1124 - - - - 83451B48-D75F-4F4E-8D16-1214C27EF4EB - IDEWorkspaceDocument - D1418AC3-69E1-466D-AED3-85EB88963D32 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 6 - - - CF$UID - 7 - - - CF$UID - 8 - - - CF$UID - 9 - - - CF$UID - 10 - - - CF$UID - 11 - - - NS.objects - - - CF$UID - 2 - - - CF$UID - 12 - - - CF$UID - 14 - - - CF$UID - 15 - - - CF$UID - 16 - - - CF$UID - 10 - - - - IDEWorkspaceWindowControllerUniqueIdentifier - IDEOrderedWorkspaceTabControllers - IDEWindowToolbarIsVisible - IDEWindowFrame - IDEWorkspaceTabController_278F4E36-A840-41D5-9C6B-45C8E080DB0D - IDEActiveWorkspaceTabController - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 10 - - - - - $classes - - NSArray - NSObject - - $classname - NSArray - - - {{0, 81}, {1920, 977}} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 17 - - - CF$UID - 18 - - - CF$UID - 19 - - - CF$UID - 20 - - - CF$UID - 21 - - - CF$UID - 22 - - - CF$UID - 23 - - - CF$UID - 24 - - - NS.objects - - - CF$UID - 25 - - - CF$UID - 14 - - - CF$UID - 26 - - - CF$UID - 27 - - - CF$UID - 40 - - - CF$UID - 91 - - - CF$UID - 14 - - - CF$UID - 100 - - - - AssistantEditorsLayout - IDEShowNavigator - IDETabLabel - IDEWorkspaceTabControllerUtilityAreaSplitView - IDENavigatorArea - IDEWorkspaceTabControllerDesignAreaSplitView - IDEShowUtilities - IDEEditorArea - 0 - AnimatedGifExample.xcodeproj - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 29 - - - - DVTSplitViewItems - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 30 - - - CF$UID - 36 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 34 - - - - DVTIdentifier - DVTViewMagnitude - - 488 - - $classes - - NSDictionary - NSObject - - $classname - NSDictionary - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 37 - - - - 413 - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - - $classes - - NSMutableDictionary - NSDictionary - NSObject - - $classname - NSMutableDictionary - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 41 - - - CF$UID - 42 - - - CF$UID - 43 - - - CF$UID - 44 - - - NS.objects - - - CF$UID - 45 - - - CF$UID - 68 - - - CF$UID - 41 - - - CF$UID - 73 - - - - Xcode.IDEKit.Navigator.Structure - Xcode.DebuggerKit.ThreadsStacksNavigator - SelectedNavigator - Xcode.IDEKit.Navigator.Issues - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 46 - - - CF$UID - 47 - - - CF$UID - 48 - - - CF$UID - 49 - - - CF$UID - 50 - - - CF$UID - 51 - - - CF$UID - 52 - - - NS.objects - - - CF$UID - 53 - - - CF$UID - 54 - - - CF$UID - 55 - - - CF$UID - 54 - - - CF$UID - 54 - - - CF$UID - 57 - - - CF$UID - 60 - - - - IDEVisibleRect - IDEUnsavedDocumentFilteringEnabled - IDENavigatorExpandedItemsBeforeFilteringSet - IDERecentDocumentFilteringEnabled - IDESCMStatusFilteringEnabled - IDESelectedObjects - IDEExpandedItemsSet - {{0, 0}, {259, 857}} - - - $class - - CF$UID - 56 - - NS.objects - - - - $classes - - NSSet - NSObject - - $classname - NSSet - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 58 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 59 - - - - AnimatedGifExample - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 61 - - - CF$UID - 62 - - - CF$UID - 64 - - - CF$UID - 66 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 59 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 59 - - - CF$UID - 63 - - - - Classes - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 59 - - - CF$UID - 65 - - - - Resources - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 59 - - - CF$UID - 67 - - - - Other Sources - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 69 - - - CF$UID - 70 - - - CF$UID - 71 - - - NS.objects - - - CF$UID - 72 - - - CF$UID - 25 - - - CF$UID - 54 - - - - IDEStackCompressionValue - IDEThreadsOrQueuesMode - IDEHideAncestorForNonInterestingFrames - 2 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 74 - - - CF$UID - 75 - - - CF$UID - 76 - - - CF$UID - 77 - - - CF$UID - 78 - - - CF$UID - 79 - - - CF$UID - 80 - - - CF$UID - 81 - - - CF$UID - 82 - - - CF$UID - 83 - - - NS.objects - - - CF$UID - 54 - - - CF$UID - 84 - - - CF$UID - 85 - - - CF$UID - 87 - - - CF$UID - 88 - - - CF$UID - 54 - - - CF$UID - 54 - - - CF$UID - 89 - - - CF$UID - 54 - - - CF$UID - 90 - - - - IDEErrorFilteringEnabled - IDEVisibleRect - IDECollapsedFiles - IDEExpandedIssues - IDESelectedNavigables - IDEShowsByType - IDESchemeFilteringEnabled - IDECollapsedTypes - IDERecentFilteringEnabled - IDECollapsedGroups - {{0, 0}, {259, 835}} - - $class - - CF$UID - 86 - - NS.objects - - - - $classes - - NSMutableSet - NSSet - NSObject - - $classname - NSMutableSet - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 38 - - NS.objects - - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 92 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 93 - - - CF$UID - 95 - - - CF$UID - 97 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 21 - - - CF$UID - 94 - - - - 260 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 24 - - - CF$UID - 96 - - - - 1400 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 98 - - - CF$UID - 99 - - - - IDEUtilitiesArea - 260 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 101 - - - CF$UID - 102 - - - CF$UID - 103 - - - CF$UID - 104 - - - CF$UID - 105 - - - CF$UID - 106 - - - CF$UID - 107 - - - CF$UID - 108 - - - NS.objects - - - CF$UID - 14 - - - CF$UID - 109 - - - CF$UID - 391 - - - CF$UID - 14 - - - CF$UID - 25 - - - CF$UID - 416 - - - CF$UID - 424 - - - CF$UID - 425 - - - - ShowDebuggerArea - IDEEditorMode_Standard - IDEEDitorArea_DebugArea - IDEShowEditor - EditorMode - DebuggerSplitView - DefaultPersistentRepresentations - layoutTree - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 110 - - - NS.objects - - - CF$UID - 111 - - - - EditorLayout_PersistentRepresentation - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 112 - - - NS.objects - - - CF$UID - 113 - - - - Main - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 114 - - - CF$UID - 115 - - - CF$UID - 116 - - - NS.objects - - - CF$UID - 117 - - - CF$UID - 25 - - - CF$UID - 389 - - - - EditorLayout_StateSavingStateDictionaries - EditorLayout_Selected - EditorLayout_Geometry - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 118 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 119 - - - CF$UID - 120 - - - CF$UID - 121 - - - CF$UID - 122 - - - CF$UID - 123 - - - CF$UID - 124 - - - CF$UID - 125 - - - NS.objects - - - CF$UID - 126 - - - CF$UID - 127 - - - CF$UID - 139 - - - CF$UID - 384 - - - CF$UID - 384 - - - CF$UID - 385 - - - CF$UID - 386 - - - - FileDataType - ArchivableRepresentation - EditorState - NavigableItemName - DocumentNavigableItemName - DocumentExtensionIdentifier - DocumentURL - com.apple.xcode.project - - $class - - CF$UID - 138 - - DocumentLocation - - CF$UID - 134 - - DomainIdentifier - - CF$UID - 128 - - IdentifierPath - - CF$UID - 129 - - IndexOfDocumentIdentifier - - CF$UID - 133 - - - Xcode.IDENavigableItemDomain.WorkspaceStructure - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 130 - - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 131 - - - AnimatedGifExample - - $classes - - IDEArchivableStringIndexPair - NSObject - - $classname - IDEArchivableStringIndexPair - - 9223372036854775807 - - $class - - CF$UID - 137 - - documentURL - - CF$UID - 135 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone_Bueno/AnimatedGifExample.xcodeproj/ - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $classes - - DVTDocumentLocation - NSObject - - $classname - DVTDocumentLocation - - - $classes - - IDENavigableItemArchivableRepresentation - NSObject - - $classname - IDENavigableItemArchivableRepresentation - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 140 - - - CF$UID - 141 - - - CF$UID - 142 - - - CF$UID - 143 - - - CF$UID - 144 - - - NS.objects - - - CF$UID - 145 - - - CF$UID - 146 - - - CF$UID - 152 - - - CF$UID - 153 - - - CF$UID - 383 - - - - Xcode3ProjectEditorPreviousProjectEditorClass - Xcode3ProjectEditor.sourceList.splitview - Xcode3ProjectEditorPreviousTargetEditorClass - Xcode3ProjectEditorSelectedDocumentLocations - Xcode3ProjectEditor_Xcode3BuildSettingsEditor - Xcode3BuildSettingsEditor - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 147 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 148 - - - CF$UID - 150 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 149 - - - - 170 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 151 - - - - 1230 - Xcode3BuildSettingsEditor - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 154 - - - - - $class - - CF$UID - 382 - - documentURL - - CF$UID - 155 - - selection - - CF$UID - 157 - - timestamp - - CF$UID - 156 - - - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone_Bueno/AnimatedGifExample.xcodeproj/ - 324371511.89925402 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 158 - - - CF$UID - 159 - - - CF$UID - 160 - - - NS.objects - - - CF$UID - 161 - - - CF$UID - 162 - - - CF$UID - 163 - - - - Project - Editor - Xcode3BuildSettingsEditorLocations - AnimatedGifExample - Xcode3BuildSettingsEditor - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 164 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 165 - - - CF$UID - 166 - - - CF$UID - 167 - - - CF$UID - 168 - - - CF$UID - 169 - - - CF$UID - 170 - - - NS.objects - - - CF$UID - 171 - - - CF$UID - 379 - - - CF$UID - 25 - - - CF$UID - 25 - - - CF$UID - 25 - - - CF$UID - 381 - - - - Collapsed Build Property Categories - Selected Build Properties - Xcode3BuildSettingsEditorDisplayMode - Xcode3BuildPropertyValueDisplayMode - Xcode3BuildSettingsEditorMode - Xcode3BuildPropertyNameDisplayMode - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 172 - - - CF$UID - 173 - - - CF$UID - 174 - - - CF$UID - 175 - - - CF$UID - 176 - - - CF$UID - 177 - - - CF$UID - 178 - - - CF$UID - 179 - - - CF$UID - 180 - - - CF$UID - 181 - - - CF$UID - 182 - - - CF$UID - 183 - - - CF$UID - 184 - - - CF$UID - 185 - - - CF$UID - 186 - - - CF$UID - 187 - - - CF$UID - 188 - - - CF$UID - 189 - - - CF$UID - 190 - - - CF$UID - 191 - - - CF$UID - 192 - - - CF$UID - 193 - - - CF$UID - 194 - - - CF$UID - 195 - - - CF$UID - 196 - - - CF$UID - 197 - - - CF$UID - 198 - - - CF$UID - 199 - - - CF$UID - 200 - - - CF$UID - 201 - - - CF$UID - 202 - - - CF$UID - 203 - - - CF$UID - 204 - - - CF$UID - 205 - - - CF$UID - 206 - - - CF$UID - 207 - - - CF$UID - 208 - - - CF$UID - 209 - - - CF$UID - 210 - - - CF$UID - 211 - - - CF$UID - 212 - - - CF$UID - 213 - - - CF$UID - 214 - - - CF$UID - 215 - - - CF$UID - 216 - - - CF$UID - 217 - - - CF$UID - 218 - - - CF$UID - 219 - - - CF$UID - 220 - - - CF$UID - 221 - - - CF$UID - 222 - - - CF$UID - 223 - - - CF$UID - 224 - - - CF$UID - 225 - - - CF$UID - 226 - - - CF$UID - 227 - - - CF$UID - 228 - - - CF$UID - 229 - - - CF$UID - 230 - - - CF$UID - 231 - - - CF$UID - 232 - - - CF$UID - 233 - - - CF$UID - 234 - - - CF$UID - 235 - - - CF$UID - 236 - - - CF$UID - 237 - - - CF$UID - 238 - - - CF$UID - 239 - - - CF$UID - 240 - - - CF$UID - 241 - - - CF$UID - 242 - - - CF$UID - 243 - - - CF$UID - 244 - - - CF$UID - 245 - - - CF$UID - 246 - - - CF$UID - 247 - - - CF$UID - 248 - - - CF$UID - 249 - - - CF$UID - 250 - - - CF$UID - 251 - - - CF$UID - 252 - - - CF$UID - 253 - - - CF$UID - 254 - - - CF$UID - 255 - - - CF$UID - 256 - - - CF$UID - 257 - - - CF$UID - 258 - - - CF$UID - 259 - - - CF$UID - 260 - - - CF$UID - 261 - - - CF$UID - 262 - - - CF$UID - 263 - - - CF$UID - 264 - - - CF$UID - 265 - - - CF$UID - 266 - - - CF$UID - 267 - - - CF$UID - 268 - - - CF$UID - 269 - - - CF$UID - 270 - - - CF$UID - 271 - - - CF$UID - 272 - - - CF$UID - 273 - - - CF$UID - 274 - - - CF$UID - 275 - - - CF$UID - 276 - - - CF$UID - 277 - - - CF$UID - 278 - - - CF$UID - 279 - - - CF$UID - 280 - - - CF$UID - 281 - - - CF$UID - 282 - - - CF$UID - 283 - - - CF$UID - 284 - - - CF$UID - 285 - - - CF$UID - 286 - - - CF$UID - 287 - - - CF$UID - 288 - - - CF$UID - 289 - - - CF$UID - 290 - - - CF$UID - 291 - - - CF$UID - 292 - - - CF$UID - 293 - - - CF$UID - 294 - - - CF$UID - 295 - - - CF$UID - 296 - - - CF$UID - 297 - - - CF$UID - 298 - - - CF$UID - 299 - - - CF$UID - 300 - - - CF$UID - 301 - - - CF$UID - 302 - - - CF$UID - 303 - - - CF$UID - 304 - - - CF$UID - 305 - - - CF$UID - 306 - - - CF$UID - 307 - - - CF$UID - 308 - - - CF$UID - 309 - - - CF$UID - 310 - - - CF$UID - 311 - - - CF$UID - 312 - - - CF$UID - 313 - - - CF$UID - 314 - - - CF$UID - 315 - - - CF$UID - 316 - - - CF$UID - 317 - - - CF$UID - 318 - - - CF$UID - 319 - - - CF$UID - 320 - - - CF$UID - 321 - - - CF$UID - 322 - - - CF$UID - 323 - - - CF$UID - 324 - - - CF$UID - 325 - - - CF$UID - 326 - - - CF$UID - 327 - - - CF$UID - 328 - - - CF$UID - 329 - - - CF$UID - 330 - - - CF$UID - 331 - - - CF$UID - 332 - - - CF$UID - 333 - - - CF$UID - 334 - - - CF$UID - 335 - - - CF$UID - 336 - - - CF$UID - 337 - - - CF$UID - 338 - - - CF$UID - 339 - - - CF$UID - 340 - - - CF$UID - 341 - - - CF$UID - 342 - - - CF$UID - 343 - - - CF$UID - 344 - - - CF$UID - 345 - - - CF$UID - 346 - - - CF$UID - 347 - - - CF$UID - 348 - - - CF$UID - 349 - - - CF$UID - 350 - - - CF$UID - 351 - - - CF$UID - 352 - - - CF$UID - 353 - - - CF$UID - 354 - - - CF$UID - 355 - - - CF$UID - 356 - - - CF$UID - 357 - - - CF$UID - 358 - - - CF$UID - 359 - - - CF$UID - 360 - - - CF$UID - 361 - - - CF$UID - 362 - - - CF$UID - 363 - - - CF$UID - 364 - - - CF$UID - 365 - - - CF$UID - 366 - - - CF$UID - 367 - - - CF$UID - 368 - - - CF$UID - 369 - - - CF$UID - 370 - - - CF$UID - 371 - - - CF$UID - 372 - - - CF$UID - 373 - - - CF$UID - 374 - - - CF$UID - 375 - - - CF$UID - 376 - - - CF$UID - 377 - - - CF$UID - 378 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||ADDITIONAL_SDKS - - - $class - - CF$UID - 136 - - NS.string - Architectures||ARCHS - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - - $class - - CF$UID - 136 - - NS.string - Architectures||ONLY_ACTIVE_ARCH - - - $class - - CF$UID - 136 - - NS.string - Architectures||SUPPORTED_PLATFORMS - - - $class - - CF$UID - 136 - - NS.string - Architectures||VALID_ARCHS - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SYMROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||OBJROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SHARED_PRECOMPS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||BUILD_VARIANTS - - - $class - - CF$UID - 136 - - NS.string - Build Options||DEBUG_INFORMATION_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Build Options||ENABLE_OPENMP_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - Build Options||GENERATE_PROFILING_CODE - - - $class - - CF$UID - 136 - - NS.string - Build Options||PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||RUN_CLANG_STATIC_ANALYZER - - - $class - - CF$UID - 136 - - NS.string - Build Options||SCAN_ALL_SOURCE_FILES_FOR_INCLUDES - - - $class - - CF$UID - 136 - - NS.string - Build Options||VALIDATE_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_ENTITLEMENTS - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_RESOURCE_RULES_PATH - - - $class - - CF$UID - 136 - - NS.string - Code Signing||OTHER_CODE_SIGN_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Compiler Version||GCC_VERSION - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIPFLAGS - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_MODE - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_PERMISSIONS_FILES - - - $class - - CF$UID - 136 - - NS.string - Deployment||COMBINE_HIDPI_IMAGES - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_LOCATION - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_POSTPROCESSING - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_MODE_FLAG - - - $class - - CF$UID - 136 - - NS.string - Deployment||DSTROOT - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_PATH - - - $class - - CF$UID - 136 - - NS.string - Deployment||MACOSX_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Deployment||SKIP_INSTALL - - - $class - - CF$UID - 136 - - NS.string - Deployment||COPY_PHASE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_INSTALLED_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_STYLE - - - $class - - CF$UID - 136 - - NS.string - Deployment||TARGETED_DEVICE_FAMILY - - - $class - - CF$UID - 136 - - NS.string - Deployment||SEPARATE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||IPHONEOS_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_NAME - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_START - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_STOP - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||BUNDLE_LOADER - - - $class - - CF$UID - 136 - - NS.string - Linking||STANDARD_C_PLUS_PLUS_LIBRARY_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_COMPATIBILITY_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_CURRENT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DEAD_CODE_STRIPPING - - - $class - - CF$UID - 136 - - NS.string - Linking||LINKER_DISPLAYS_MANGLED_NAMES - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_NO_PIE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRESERVE_DEAD_CODE_INITS_AND_TERMS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_DYLIB_INSTALL_NAME - - - $class - - CF$UID - 136 - - NS.string - Linking||EXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||INIT_ROUTINE - - - $class - - CF$UID - 136 - - NS.string - Linking||LINK_WITH_STANDARD_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - Linking||MACH_O_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_OPENMP_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||ORDER_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||OTHER_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||GENERATE_MASTER_OBJECT_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_LIBS - - - $class - - CF$UID - 136 - - NS.string - Linking||KEEP_PRIVATE_EXTERNS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_RUNPATH_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Linking||SEPARATE_SYMBOL_EDIT - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||SECTORDER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||UNEXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||WARNING_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_GENERATE_MAP_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||COMPRESS_PNG_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||APPLY_RULES_IN_COPY_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_EXPAND_BUILD_SETTINGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||GENERATE_PKGINFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||FRAMEWORK_VERSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OTHER_PREPROCESSOR_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESS - - - $class - - CF$UID - 136 - - NS.string - Packaging||COPYING_PRESERVES_HFS_DATA - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRIVATE_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRODUCT_NAME - - - $class - - CF$UID - 136 - - NS.string - Packaging||PLIST_FILE_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||PUBLIC_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||STRINGS_FILE_OUTPUT_ENCODING - - - $class - - CF$UID - 136 - - NS.string - Packaging||WRAPPER_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Search Paths||ALWAYS_SEARCH_USER_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||FRAMEWORK_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||LIBRARY_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||REZ_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||USER_HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||OTHER_TEST_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_AFTER_BUILD - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_HOST - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_RIG - - - $class - - CF$UID - 136 - - NS.string - Versioning||CURRENT_PROJECT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_EXPORT_DECL - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_SUFFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSIONING_SYSTEM - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_BUILDER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_OBJC_DISPATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OBJC_CALL_CXX_CDTORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THUMB_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE3_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE41_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE42_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_STRICT_ALIASING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FEEDBACK_DIRECTED_OPTIMIZATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DYNAMIC_NO_PIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_TEST_COVERAGE_FILES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INLINES_ARE_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INSTRUMENT_PROGRAM_FLOW_ARCS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_KERNEL_DEVELOPMENT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_REUSE_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_NO_COMMON_BLOCKS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_OBJC_GC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OPTIMIZATION_LEVEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_MATH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SYMBOL_SEPARATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THREADSAFE_STATICS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_SYMBOLS_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_UNROLL_LOOPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHAR_IS_UNSIGNED_CHAR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_ASM_KEYWORD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_C_LANGUAGE_STANDARD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CW_ASM_SYNTAX - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INPUT_FILETYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_RTTI - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_LINK_WITH_DYNAMIC_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_OBJC_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_TRIGRAPHS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_INDIRECT_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_REGISTER_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INCREASE_PRECOMPILED_HEADER_SHARING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CPLUSPLUSFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PRECOMPILE_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_BUILTIN_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_PASCAL_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_FORCE_CPU_SUBTYPE_ALL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_SHORT_ENUMS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_STANDARD_INCLUDE_SEARCHING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_CHECK_SWITCH_STATEMENTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_FOUR_CHARACTER_CONSTANTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SHADOW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_64_TO_32_BIT_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INHIBIT_ALL_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_RETURN_TYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MISSING_PARENTHESES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_PROTOTYPES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_NEWLINE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_NON_VIRTUAL_DESTRUCTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||WARNING_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PEDANTIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_POINTER_SIGNEDNESS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PROTOTYPE_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SIGN_COMPARE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_STRICT_SELECTOR_MATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_WARNINGS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_TYPECHECK_CALLS_TO_PRINTF - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNDECLARED_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNINITIALIZED_AUTOS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNKNOWN_PRAGMAS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_FUNCTION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_LABEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_PARAMETER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VALUE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VARIABLE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_FLATTEN_NIBS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OTHER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OVERRIDING_PLUGINS_AND_FRAMEWORKS_DIR - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGIN_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGINS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_ERRORS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_NOTICES - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - User-Defined||PREBINDING - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 380 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - 1 - - $classes - - Xcode3ProjectDocumentLocation - DVTDocumentLocation - NSObject - - $classname - Xcode3ProjectDocumentLocation - - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - AnimatedGifExample - Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 387 - - - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone_Bueno/AnimatedGifExample.xcodeproj/ - - $classes - - NSURL - NSObject - - $classname - NSURL - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 390 - - - - {{0, 0}, {1400, 763}} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 392 - - - CF$UID - 393 - - - CF$UID - 394 - - - CF$UID - 395 - - - CF$UID - 396 - - - CF$UID - 397 - - - NS.objects - - - CF$UID - 381 - - - CF$UID - 398 - - - CF$UID - 400 - - - CF$UID - 381 - - - CF$UID - 408 - - - CF$UID - 414 - - - - LayoutFocusMode - console - IDEDebugArea_SplitView - LayoutMode - IDEDebuggerAreaSplitView - variables - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 399 - - - NS.objects - - - CF$UID - 25 - - - - ConsoleFilterMode - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 401 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 402 - - - CF$UID - 405 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 403 - - - CF$UID - 404 - - - - VariablesView - 298 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 406 - - - CF$UID - 407 - - - - ConsoleArea - 1101 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 409 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 410 - - - CF$UID - 412 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 403 - - - CF$UID - 411 - - - - 298 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 406 - - - CF$UID - 413 - - - - 1101 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 415 - - - NS.objects - - - CF$UID - 72 - - - - DBGVariablesViewFilterMode - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 417 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 418 - - - CF$UID - 421 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 419 - - - CF$UID - 420 - - - - IDEEditor - 785 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 422 - - - CF$UID - 423 - - - - IDEDebuggerArea - 116 - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 435 - - geniusEditorContextNode - - CF$UID - 0 - - primaryEditorContextNode - - CF$UID - 426 - - rootLayoutTreeNode - - CF$UID - 432 - - - - $class - - CF$UID - 434 - - children - - CF$UID - 0 - - contentType - 1 - documentArchivableRepresentation - - CF$UID - 427 - - orientation - 0 - parent - - CF$UID - 432 - - - - $class - - CF$UID - 138 - - DocumentLocation - - CF$UID - 134 - - DomainIdentifier - - CF$UID - 128 - - IdentifierPath - - CF$UID - 428 - - IndexOfDocumentIdentifier - - CF$UID - 431 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 429 - - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 430 - - - AnimatedGifExample - 9223372036854775807 - - $class - - CF$UID - 434 - - children - - CF$UID - 433 - - contentType - 0 - documentArchivableRepresentation - - CF$UID - 0 - - orientation - 0 - parent - - CF$UID - 0 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 426 - - - - - $classes - - IDEWorkspaceTabControllerLayoutTreeNode - NSObject - - $classname - IDEWorkspaceTabControllerLayoutTreeNode - - - $classes - - IDEWorkspaceTabControllerLayoutTree - NSObject - - $classname - IDEWorkspaceTabControllerLayoutTree - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 437 - - - CF$UID - 438 - - - CF$UID - 439 - - - CF$UID - 440 - - - CF$UID - 441 - - - CF$UID - 442 - - - CF$UID - 443 - - - CF$UID - 444 - - - CF$UID - 445 - - - CF$UID - 446 - - - CF$UID - 447 - - - NS.objects - - - CF$UID - 14 - - - CF$UID - 448 - - - CF$UID - 25 - - - CF$UID - 1074 - - - CF$UID - 1079 - - - CF$UID - 1082 - - - CF$UID - 1113 - - - CF$UID - 1114 - - - CF$UID - 1122 - - - CF$UID - 54 - - - CF$UID - 54 - - - - BreakpointsActivated - DefaultEditorStatesForURLs - DebuggingWindowBehavior - ActiveRunDestination - ActiveScheme - LastCompletedPersistentSchemeBasedActivityReport - DocumentWindows - DefaultEditorFrameSizeForURLs - RecentEditorDocumentURLs - AppFocusInMiniDebugging - MiniDebuggingConsole - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 449 - - - CF$UID - 450 - - - CF$UID - 451 - - - CF$UID - 452 - - - NS.objects - - - CF$UID - 453 - - - CF$UID - 961 - - - CF$UID - 1035 - - - CF$UID - 1045 - - - - Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project - Xcode.IDEKit.EditorDocument.SourceCode - IDEQuickLookEditor.Editor - Xcode.IDEKit.CocoaTouchIntegration.EditorDocument.CocoaTouch - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 454 - - - CF$UID - 456 - - - CF$UID - 458 - - - CF$UID - 460 - - - NS.objects - - - CF$UID - 461 - - - CF$UID - 486 - - - CF$UID - 498 - - - CF$UID - 732 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 455 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/AnimatedGifExample.xcodeproj - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 457 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Desktop/AnimatedGifExample/AnimatedGifExample.xcodeproj - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 459 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone/AnimatedGifExample.xcodeproj - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 135 - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 462 - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 465 - - - NS.objects - - - CF$UID - 466 - - - CF$UID - 467 - - - CF$UID - 477 - - - CF$UID - 478 - - - - Xcode3ProjectEditorPreviousProjectEditorClass - Xcode3ProjectEditor.sourceList.splitview - Xcode3ProjectEditorPreviousTargetEditorClass - Xcode3ProjectEditorSelectedDocumentLocations - Xcode3ProjectInfoEditor - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 469 - - - - DVTSplitViewItems - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 470 - - - CF$UID - 475 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 474 - - - - DVTIdentifier - DVTViewMagnitude - - 170 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 476 - - - - 1230 - Xcode3TargetEditor - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 479 - - - - - $class - - CF$UID - 382 - - documentURL - - CF$UID - 480 - - selection - - CF$UID - 482 - - timestamp - - CF$UID - 481 - - - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/AnimatedGifExample.xcodeproj/ - 324310471.81135499 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 483 - - - CF$UID - 484 - - - NS.objects - - - CF$UID - 485 - - - CF$UID - 466 - - - - Project - Editor - AnimatedGifExample - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 462 - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 465 - - - NS.objects - - - CF$UID - 466 - - - CF$UID - 487 - - - CF$UID - 477 - - - CF$UID - 493 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 488 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 489 - - - CF$UID - 491 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 490 - - - - 170 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 492 - - - - 1230 - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 494 - - - - - $class - - CF$UID - 382 - - documentURL - - CF$UID - 495 - - selection - - CF$UID - 497 - - timestamp - - CF$UID - 496 - - - file://localhost/Users/agutierrez/Desktop/AnimatedGifExample/AnimatedGifExample.xcodeproj/ - 324311109.35726398 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 483 - - - CF$UID - 484 - - - NS.objects - - - CF$UID - 485 - - - CF$UID - 466 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 462 - - - CF$UID - 463 - - - CF$UID - 464 - - - CF$UID - 465 - - - CF$UID - 499 - - - NS.objects - - - CF$UID - 500 - - - CF$UID - 501 - - - CF$UID - 500 - - - CF$UID - 507 - - - CF$UID - 731 - - - - Xcode3ProjectEditor_Xcode3BuildSettingsEditor - Xcode3BuildSettingsEditor - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 502 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 503 - - - CF$UID - 505 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 504 - - - - 162 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 506 - - - - 1238 - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 508 - - - - - $class - - CF$UID - 382 - - documentURL - - CF$UID - 509 - - selection - - CF$UID - 511 - - timestamp - - CF$UID - 510 - - - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone/AnimatedGifExample.xcodeproj/ - 324311921.565633 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 483 - - - CF$UID - 484 - - - CF$UID - 512 - - - NS.objects - - - CF$UID - 485 - - - CF$UID - 500 - - - CF$UID - 513 - - - - Xcode3BuildSettingsEditorLocations - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 514 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 515 - - - CF$UID - 516 - - - CF$UID - 517 - - - CF$UID - 518 - - - CF$UID - 519 - - - CF$UID - 520 - - - NS.objects - - - CF$UID - 381 - - - CF$UID - 521 - - - CF$UID - 25 - - - CF$UID - 25 - - - CF$UID - 523 - - - CF$UID - 25 - - - - Xcode3BuildPropertyNameDisplayMode - Selected Build Properties - Xcode3BuildSettingsEditorDisplayMode - Xcode3BuildPropertyValueDisplayMode - Collapsed Build Property Categories - Xcode3BuildSettingsEditorMode - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 522 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 524 - - - CF$UID - 525 - - - CF$UID - 526 - - - CF$UID - 527 - - - CF$UID - 528 - - - CF$UID - 529 - - - CF$UID - 530 - - - CF$UID - 531 - - - CF$UID - 532 - - - CF$UID - 533 - - - CF$UID - 534 - - - CF$UID - 535 - - - CF$UID - 536 - - - CF$UID - 537 - - - CF$UID - 538 - - - CF$UID - 539 - - - CF$UID - 540 - - - CF$UID - 541 - - - CF$UID - 542 - - - CF$UID - 543 - - - CF$UID - 544 - - - CF$UID - 545 - - - CF$UID - 546 - - - CF$UID - 547 - - - CF$UID - 548 - - - CF$UID - 549 - - - CF$UID - 550 - - - CF$UID - 551 - - - CF$UID - 552 - - - CF$UID - 553 - - - CF$UID - 554 - - - CF$UID - 555 - - - CF$UID - 556 - - - CF$UID - 557 - - - CF$UID - 558 - - - CF$UID - 559 - - - CF$UID - 560 - - - CF$UID - 561 - - - CF$UID - 562 - - - CF$UID - 563 - - - CF$UID - 564 - - - CF$UID - 565 - - - CF$UID - 566 - - - CF$UID - 567 - - - CF$UID - 568 - - - CF$UID - 569 - - - CF$UID - 570 - - - CF$UID - 571 - - - CF$UID - 572 - - - CF$UID - 573 - - - CF$UID - 574 - - - CF$UID - 575 - - - CF$UID - 576 - - - CF$UID - 577 - - - CF$UID - 578 - - - CF$UID - 579 - - - CF$UID - 580 - - - CF$UID - 581 - - - CF$UID - 582 - - - CF$UID - 583 - - - CF$UID - 584 - - - CF$UID - 585 - - - CF$UID - 586 - - - CF$UID - 587 - - - CF$UID - 588 - - - CF$UID - 589 - - - CF$UID - 590 - - - CF$UID - 591 - - - CF$UID - 592 - - - CF$UID - 593 - - - CF$UID - 594 - - - CF$UID - 595 - - - CF$UID - 596 - - - CF$UID - 597 - - - CF$UID - 598 - - - CF$UID - 599 - - - CF$UID - 600 - - - CF$UID - 601 - - - CF$UID - 602 - - - CF$UID - 603 - - - CF$UID - 604 - - - CF$UID - 605 - - - CF$UID - 606 - - - CF$UID - 607 - - - CF$UID - 608 - - - CF$UID - 609 - - - CF$UID - 610 - - - CF$UID - 611 - - - CF$UID - 612 - - - CF$UID - 613 - - - CF$UID - 614 - - - CF$UID - 615 - - - CF$UID - 616 - - - CF$UID - 617 - - - CF$UID - 618 - - - CF$UID - 619 - - - CF$UID - 620 - - - CF$UID - 621 - - - CF$UID - 622 - - - CF$UID - 623 - - - CF$UID - 624 - - - CF$UID - 625 - - - CF$UID - 626 - - - CF$UID - 627 - - - CF$UID - 628 - - - CF$UID - 629 - - - CF$UID - 630 - - - CF$UID - 631 - - - CF$UID - 632 - - - CF$UID - 633 - - - CF$UID - 634 - - - CF$UID - 635 - - - CF$UID - 636 - - - CF$UID - 637 - - - CF$UID - 638 - - - CF$UID - 639 - - - CF$UID - 640 - - - CF$UID - 641 - - - CF$UID - 642 - - - CF$UID - 643 - - - CF$UID - 644 - - - CF$UID - 645 - - - CF$UID - 646 - - - CF$UID - 647 - - - CF$UID - 648 - - - CF$UID - 649 - - - CF$UID - 650 - - - CF$UID - 651 - - - CF$UID - 652 - - - CF$UID - 653 - - - CF$UID - 654 - - - CF$UID - 655 - - - CF$UID - 656 - - - CF$UID - 657 - - - CF$UID - 658 - - - CF$UID - 659 - - - CF$UID - 660 - - - CF$UID - 661 - - - CF$UID - 662 - - - CF$UID - 663 - - - CF$UID - 664 - - - CF$UID - 665 - - - CF$UID - 666 - - - CF$UID - 667 - - - CF$UID - 668 - - - CF$UID - 669 - - - CF$UID - 670 - - - CF$UID - 671 - - - CF$UID - 672 - - - CF$UID - 673 - - - CF$UID - 674 - - - CF$UID - 675 - - - CF$UID - 676 - - - CF$UID - 677 - - - CF$UID - 678 - - - CF$UID - 679 - - - CF$UID - 680 - - - CF$UID - 681 - - - CF$UID - 682 - - - CF$UID - 683 - - - CF$UID - 684 - - - CF$UID - 685 - - - CF$UID - 686 - - - CF$UID - 687 - - - CF$UID - 688 - - - CF$UID - 689 - - - CF$UID - 690 - - - CF$UID - 691 - - - CF$UID - 692 - - - CF$UID - 693 - - - CF$UID - 694 - - - CF$UID - 695 - - - CF$UID - 696 - - - CF$UID - 697 - - - CF$UID - 698 - - - CF$UID - 699 - - - CF$UID - 700 - - - CF$UID - 701 - - - CF$UID - 702 - - - CF$UID - 703 - - - CF$UID - 704 - - - CF$UID - 705 - - - CF$UID - 706 - - - CF$UID - 707 - - - CF$UID - 708 - - - CF$UID - 709 - - - CF$UID - 710 - - - CF$UID - 711 - - - CF$UID - 712 - - - CF$UID - 713 - - - CF$UID - 714 - - - CF$UID - 715 - - - CF$UID - 716 - - - CF$UID - 717 - - - CF$UID - 718 - - - CF$UID - 719 - - - CF$UID - 720 - - - CF$UID - 721 - - - CF$UID - 722 - - - CF$UID - 723 - - - CF$UID - 724 - - - CF$UID - 725 - - - CF$UID - 726 - - - CF$UID - 727 - - - CF$UID - 728 - - - CF$UID - 729 - - - CF$UID - 730 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||ADDITIONAL_SDKS - - - $class - - CF$UID - 136 - - NS.string - Architectures||ARCHS - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - - $class - - CF$UID - 136 - - NS.string - Architectures||ONLY_ACTIVE_ARCH - - - $class - - CF$UID - 136 - - NS.string - Architectures||SUPPORTED_PLATFORMS - - - $class - - CF$UID - 136 - - NS.string - Architectures||VALID_ARCHS - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SYMROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||OBJROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SHARED_PRECOMPS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||BUILD_VARIANTS - - - $class - - CF$UID - 136 - - NS.string - Build Options||DEBUG_INFORMATION_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Build Options||ENABLE_OPENMP_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - Build Options||GENERATE_PROFILING_CODE - - - $class - - CF$UID - 136 - - NS.string - Build Options||PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||RUN_CLANG_STATIC_ANALYZER - - - $class - - CF$UID - 136 - - NS.string - Build Options||SCAN_ALL_SOURCE_FILES_FOR_INCLUDES - - - $class - - CF$UID - 136 - - NS.string - Build Options||VALIDATE_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_ENTITLEMENTS - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_RESOURCE_RULES_PATH - - - $class - - CF$UID - 136 - - NS.string - Code Signing||OTHER_CODE_SIGN_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Compiler Version||GCC_VERSION - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIPFLAGS - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_MODE - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_PERMISSIONS_FILES - - - $class - - CF$UID - 136 - - NS.string - Deployment||COMBINE_HIDPI_IMAGES - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_LOCATION - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_POSTPROCESSING - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_MODE_FLAG - - - $class - - CF$UID - 136 - - NS.string - Deployment||DSTROOT - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_PATH - - - $class - - CF$UID - 136 - - NS.string - Deployment||MACOSX_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Deployment||SKIP_INSTALL - - - $class - - CF$UID - 136 - - NS.string - Deployment||COPY_PHASE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_INSTALLED_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_STYLE - - - $class - - CF$UID - 136 - - NS.string - Deployment||TARGETED_DEVICE_FAMILY - - - $class - - CF$UID - 136 - - NS.string - Deployment||SEPARATE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||IPHONEOS_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_NAME - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_START - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_STOP - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||BUNDLE_LOADER - - - $class - - CF$UID - 136 - - NS.string - Linking||STANDARD_C_PLUS_PLUS_LIBRARY_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_COMPATIBILITY_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_CURRENT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DEAD_CODE_STRIPPING - - - $class - - CF$UID - 136 - - NS.string - Linking||LINKER_DISPLAYS_MANGLED_NAMES - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_NO_PIE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRESERVE_DEAD_CODE_INITS_AND_TERMS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_DYLIB_INSTALL_NAME - - - $class - - CF$UID - 136 - - NS.string - Linking||EXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||INIT_ROUTINE - - - $class - - CF$UID - 136 - - NS.string - Linking||LINK_WITH_STANDARD_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - Linking||MACH_O_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_OPENMP_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||ORDER_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||OTHER_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||GENERATE_MASTER_OBJECT_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_LIBS - - - $class - - CF$UID - 136 - - NS.string - Linking||KEEP_PRIVATE_EXTERNS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_RUNPATH_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Linking||SEPARATE_SYMBOL_EDIT - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||SECTORDER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||UNEXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||WARNING_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_GENERATE_MAP_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||COMPRESS_PNG_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||APPLY_RULES_IN_COPY_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_EXPAND_BUILD_SETTINGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||GENERATE_PKGINFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||FRAMEWORK_VERSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OTHER_PREPROCESSOR_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESS - - - $class - - CF$UID - 136 - - NS.string - Packaging||COPYING_PRESERVES_HFS_DATA - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRIVATE_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRODUCT_NAME - - - $class - - CF$UID - 136 - - NS.string - Packaging||PLIST_FILE_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||PUBLIC_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||STRINGS_FILE_OUTPUT_ENCODING - - - $class - - CF$UID - 136 - - NS.string - Packaging||WRAPPER_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Search Paths||ALWAYS_SEARCH_USER_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||FRAMEWORK_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||LIBRARY_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||REZ_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||USER_HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||OTHER_TEST_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_AFTER_BUILD - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_HOST - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_RIG - - - $class - - CF$UID - 136 - - NS.string - Versioning||CURRENT_PROJECT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_EXPORT_DECL - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_SUFFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSIONING_SYSTEM - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_BUILDER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_OBJC_DISPATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OBJC_CALL_CXX_CDTORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THUMB_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE3_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE41_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE42_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_STRICT_ALIASING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FEEDBACK_DIRECTED_OPTIMIZATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DYNAMIC_NO_PIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_TEST_COVERAGE_FILES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INLINES_ARE_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INSTRUMENT_PROGRAM_FLOW_ARCS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_KERNEL_DEVELOPMENT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_REUSE_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_NO_COMMON_BLOCKS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_OBJC_GC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OPTIMIZATION_LEVEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_MATH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SYMBOL_SEPARATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THREADSAFE_STATICS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_SYMBOLS_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_UNROLL_LOOPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHAR_IS_UNSIGNED_CHAR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_ASM_KEYWORD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_C_LANGUAGE_STANDARD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CW_ASM_SYNTAX - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INPUT_FILETYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_RTTI - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_LINK_WITH_DYNAMIC_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_OBJC_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_TRIGRAPHS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_INDIRECT_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_REGISTER_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INCREASE_PRECOMPILED_HEADER_SHARING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CPLUSPLUSFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PRECOMPILE_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_BUILTIN_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_PASCAL_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_FORCE_CPU_SUBTYPE_ALL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_SHORT_ENUMS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_STANDARD_INCLUDE_SEARCHING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_CHECK_SWITCH_STATEMENTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_FOUR_CHARACTER_CONSTANTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SHADOW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_64_TO_32_BIT_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INHIBIT_ALL_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_RETURN_TYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MISSING_PARENTHESES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_PROTOTYPES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_NEWLINE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_NON_VIRTUAL_DESTRUCTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||WARNING_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PEDANTIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_POINTER_SIGNEDNESS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PROTOTYPE_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SIGN_COMPARE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_STRICT_SELECTOR_MATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_WARNINGS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_TYPECHECK_CALLS_TO_PRINTF - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNDECLARED_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNINITIALIZED_AUTOS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNKNOWN_PRAGMAS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_FUNCTION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_LABEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_PARAMETER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VALUE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VARIABLE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_FLATTEN_NIBS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OTHER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OVERRIDING_PLUGINS_AND_FRAMEWORKS_DIR - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGIN_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGINS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_ERRORS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_NOTICES - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - User-Defined||PREBINDING - - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 140 - - - CF$UID - 141 - - - CF$UID - 142 - - - CF$UID - 143 - - - CF$UID - 144 - - - NS.objects - - - CF$UID - 733 - - - CF$UID - 734 - - - CF$UID - 740 - - - CF$UID - 741 - - - CF$UID - 960 - - - - Xcode3BuildSettingsEditor - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 28 - - - NS.objects - - - CF$UID - 735 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 736 - - - CF$UID - 738 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 737 - - - - 170 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 31 - - - CF$UID - 32 - - - NS.objects - - - CF$UID - 33 - - - CF$UID - 739 - - - - 1230 - Xcode3BuildSettingsEditor - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 742 - - - - - $class - - CF$UID - 382 - - documentURL - - CF$UID - 155 - - selection - - CF$UID - 744 - - timestamp - - CF$UID - 743 - - - 324371511.89601099 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 158 - - - CF$UID - 159 - - - CF$UID - 745 - - - NS.objects - - - CF$UID - 746 - - - CF$UID - 747 - - - CF$UID - 748 - - - - Xcode3BuildSettingsEditorLocations - AnimatedGifExample - Xcode3BuildSettingsEditor - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 749 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 165 - - - CF$UID - 166 - - - CF$UID - 167 - - - CF$UID - 168 - - - CF$UID - 169 - - - CF$UID - 170 - - - NS.objects - - - CF$UID - 750 - - - CF$UID - 958 - - - CF$UID - 25 - - - CF$UID - 25 - - - CF$UID - 25 - - - CF$UID - 381 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 751 - - - CF$UID - 752 - - - CF$UID - 753 - - - CF$UID - 754 - - - CF$UID - 755 - - - CF$UID - 756 - - - CF$UID - 757 - - - CF$UID - 758 - - - CF$UID - 759 - - - CF$UID - 760 - - - CF$UID - 761 - - - CF$UID - 762 - - - CF$UID - 763 - - - CF$UID - 764 - - - CF$UID - 765 - - - CF$UID - 766 - - - CF$UID - 767 - - - CF$UID - 768 - - - CF$UID - 769 - - - CF$UID - 770 - - - CF$UID - 771 - - - CF$UID - 772 - - - CF$UID - 773 - - - CF$UID - 774 - - - CF$UID - 775 - - - CF$UID - 776 - - - CF$UID - 777 - - - CF$UID - 778 - - - CF$UID - 779 - - - CF$UID - 780 - - - CF$UID - 781 - - - CF$UID - 782 - - - CF$UID - 783 - - - CF$UID - 784 - - - CF$UID - 785 - - - CF$UID - 786 - - - CF$UID - 787 - - - CF$UID - 788 - - - CF$UID - 789 - - - CF$UID - 790 - - - CF$UID - 791 - - - CF$UID - 792 - - - CF$UID - 793 - - - CF$UID - 794 - - - CF$UID - 795 - - - CF$UID - 796 - - - CF$UID - 797 - - - CF$UID - 798 - - - CF$UID - 799 - - - CF$UID - 800 - - - CF$UID - 801 - - - CF$UID - 802 - - - CF$UID - 803 - - - CF$UID - 804 - - - CF$UID - 805 - - - CF$UID - 806 - - - CF$UID - 807 - - - CF$UID - 808 - - - CF$UID - 809 - - - CF$UID - 810 - - - CF$UID - 811 - - - CF$UID - 812 - - - CF$UID - 813 - - - CF$UID - 814 - - - CF$UID - 815 - - - CF$UID - 816 - - - CF$UID - 817 - - - CF$UID - 818 - - - CF$UID - 819 - - - CF$UID - 820 - - - CF$UID - 821 - - - CF$UID - 822 - - - CF$UID - 823 - - - CF$UID - 824 - - - CF$UID - 825 - - - CF$UID - 826 - - - CF$UID - 827 - - - CF$UID - 828 - - - CF$UID - 829 - - - CF$UID - 830 - - - CF$UID - 831 - - - CF$UID - 832 - - - CF$UID - 833 - - - CF$UID - 834 - - - CF$UID - 835 - - - CF$UID - 836 - - - CF$UID - 837 - - - CF$UID - 838 - - - CF$UID - 839 - - - CF$UID - 840 - - - CF$UID - 841 - - - CF$UID - 842 - - - CF$UID - 843 - - - CF$UID - 844 - - - CF$UID - 845 - - - CF$UID - 846 - - - CF$UID - 847 - - - CF$UID - 848 - - - CF$UID - 849 - - - CF$UID - 850 - - - CF$UID - 851 - - - CF$UID - 852 - - - CF$UID - 853 - - - CF$UID - 854 - - - CF$UID - 855 - - - CF$UID - 856 - - - CF$UID - 857 - - - CF$UID - 858 - - - CF$UID - 859 - - - CF$UID - 860 - - - CF$UID - 861 - - - CF$UID - 862 - - - CF$UID - 863 - - - CF$UID - 864 - - - CF$UID - 865 - - - CF$UID - 866 - - - CF$UID - 867 - - - CF$UID - 868 - - - CF$UID - 869 - - - CF$UID - 870 - - - CF$UID - 871 - - - CF$UID - 872 - - - CF$UID - 873 - - - CF$UID - 874 - - - CF$UID - 875 - - - CF$UID - 876 - - - CF$UID - 877 - - - CF$UID - 878 - - - CF$UID - 879 - - - CF$UID - 880 - - - CF$UID - 881 - - - CF$UID - 882 - - - CF$UID - 883 - - - CF$UID - 884 - - - CF$UID - 885 - - - CF$UID - 886 - - - CF$UID - 887 - - - CF$UID - 888 - - - CF$UID - 889 - - - CF$UID - 890 - - - CF$UID - 891 - - - CF$UID - 892 - - - CF$UID - 893 - - - CF$UID - 894 - - - CF$UID - 895 - - - CF$UID - 896 - - - CF$UID - 897 - - - CF$UID - 898 - - - CF$UID - 899 - - - CF$UID - 900 - - - CF$UID - 901 - - - CF$UID - 902 - - - CF$UID - 903 - - - CF$UID - 904 - - - CF$UID - 905 - - - CF$UID - 906 - - - CF$UID - 907 - - - CF$UID - 908 - - - CF$UID - 909 - - - CF$UID - 910 - - - CF$UID - 911 - - - CF$UID - 912 - - - CF$UID - 913 - - - CF$UID - 914 - - - CF$UID - 915 - - - CF$UID - 916 - - - CF$UID - 917 - - - CF$UID - 918 - - - CF$UID - 919 - - - CF$UID - 920 - - - CF$UID - 921 - - - CF$UID - 922 - - - CF$UID - 923 - - - CF$UID - 924 - - - CF$UID - 925 - - - CF$UID - 926 - - - CF$UID - 927 - - - CF$UID - 928 - - - CF$UID - 929 - - - CF$UID - 930 - - - CF$UID - 931 - - - CF$UID - 932 - - - CF$UID - 933 - - - CF$UID - 934 - - - CF$UID - 935 - - - CF$UID - 936 - - - CF$UID - 937 - - - CF$UID - 938 - - - CF$UID - 939 - - - CF$UID - 940 - - - CF$UID - 941 - - - CF$UID - 942 - - - CF$UID - 943 - - - CF$UID - 944 - - - CF$UID - 945 - - - CF$UID - 946 - - - CF$UID - 947 - - - CF$UID - 948 - - - CF$UID - 949 - - - CF$UID - 950 - - - CF$UID - 951 - - - CF$UID - 952 - - - CF$UID - 953 - - - CF$UID - 954 - - - CF$UID - 955 - - - CF$UID - 956 - - - CF$UID - 957 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||ADDITIONAL_SDKS - - - $class - - CF$UID - 136 - - NS.string - Architectures||ARCHS - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - - $class - - CF$UID - 136 - - NS.string - Architectures||ONLY_ACTIVE_ARCH - - - $class - - CF$UID - 136 - - NS.string - Architectures||SUPPORTED_PLATFORMS - - - $class - - CF$UID - 136 - - NS.string - Architectures||VALID_ARCHS - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SYMROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||OBJROOT - - - $class - - CF$UID - 136 - - NS.string - Build Locations||SHARED_PRECOMPS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||BUILD_VARIANTS - - - $class - - CF$UID - 136 - - NS.string - Build Options||DEBUG_INFORMATION_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Build Options||ENABLE_OPENMP_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - Build Options||GENERATE_PROFILING_CODE - - - $class - - CF$UID - 136 - - NS.string - Build Options||PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR - - - $class - - CF$UID - 136 - - NS.string - Build Options||RUN_CLANG_STATIC_ANALYZER - - - $class - - CF$UID - 136 - - NS.string - Build Options||SCAN_ALL_SOURCE_FILES_FOR_INCLUDES - - - $class - - CF$UID - 136 - - NS.string - Build Options||VALIDATE_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_ENTITLEMENTS - - - $class - - CF$UID - 136 - - NS.string - Code Signing||CODE_SIGN_RESOURCE_RULES_PATH - - - $class - - CF$UID - 136 - - NS.string - Code Signing||OTHER_CODE_SIGN_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Compiler Version||GCC_VERSION - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIPFLAGS - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_MODE - - - $class - - CF$UID - 136 - - NS.string - Deployment||ALTERNATE_PERMISSIONS_FILES - - - $class - - CF$UID - 136 - - NS.string - Deployment||COMBINE_HIDPI_IMAGES - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_LOCATION - - - $class - - CF$UID - 136 - - NS.string - Deployment||DEPLOYMENT_POSTPROCESSING - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_GROUP - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_OWNER - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_MODE_FLAG - - - $class - - CF$UID - 136 - - NS.string - Deployment||DSTROOT - - - $class - - CF$UID - 136 - - NS.string - Deployment||INSTALL_PATH - - - $class - - CF$UID - 136 - - NS.string - Deployment||MACOSX_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Deployment||SKIP_INSTALL - - - $class - - CF$UID - 136 - - NS.string - Deployment||COPY_PHASE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_INSTALLED_PRODUCT - - - $class - - CF$UID - 136 - - NS.string - Deployment||STRIP_STYLE - - - $class - - CF$UID - 136 - - NS.string - Deployment||TARGETED_DEVICE_FAMILY - - - $class - - CF$UID - 136 - - NS.string - Deployment||SEPARATE_STRIP - - - $class - - CF$UID - 136 - - NS.string - Deployment||IPHONEOS_DEPLOYMENT_TARGET - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_NAME - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_START - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_STOP - - - $class - - CF$UID - 136 - - NS.string - Kernel Module||MODULE_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||BUNDLE_LOADER - - - $class - - CF$UID - 136 - - NS.string - Linking||STANDARD_C_PLUS_PLUS_LIBRARY_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_COMPATIBILITY_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DYLIB_CURRENT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Linking||DEAD_CODE_STRIPPING - - - $class - - CF$UID - 136 - - NS.string - Linking||LINKER_DISPLAYS_MANGLED_NAMES - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_NO_PIE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRESERVE_DEAD_CODE_INITS_AND_TERMS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_DYLIB_INSTALL_NAME - - - $class - - CF$UID - 136 - - NS.string - Linking||EXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||INIT_ROUTINE - - - $class - - CF$UID - 136 - - NS.string - Linking||LINK_WITH_STANDARD_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - Linking||MACH_O_TYPE - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_OPENMP_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||ORDER_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||OTHER_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||GENERATE_MASTER_OBJECT_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_LIBS - - - $class - - CF$UID - 136 - - NS.string - Linking||KEEP_PRIVATE_EXTERNS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_RUNPATH_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Linking||SEPARATE_SYMBOL_EDIT - - - $class - - CF$UID - 136 - - NS.string - Linking||PRELINK_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||SECTORDER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||UNEXPORTED_SYMBOLS_FILE - - - $class - - CF$UID - 136 - - NS.string - Linking||WARNING_LDFLAGS - - - $class - - CF$UID - 136 - - NS.string - Linking||LD_GENERATE_MAP_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||COMPRESS_PNG_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||APPLY_RULES_IN_COPY_FILES - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||EXECUTABLE_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_EXPAND_BUILD_SETTINGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||GENERATE_PKGINFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||FRAMEWORK_VERSION - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_FILE - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OTHER_PREPROCESSOR_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - Packaging||INFOPLIST_PREPROCESS - - - $class - - CF$UID - 136 - - NS.string - Packaging||COPYING_PRESERVES_HFS_DATA - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRIVATE_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||PRODUCT_NAME - - - $class - - CF$UID - 136 - - NS.string - Packaging||PLIST_FILE_OUTPUT_FORMAT - - - $class - - CF$UID - 136 - - NS.string - Packaging||PUBLIC_HEADERS_FOLDER_PATH - - - $class - - CF$UID - 136 - - NS.string - Packaging||STRINGS_FILE_OUTPUT_ENCODING - - - $class - - CF$UID - 136 - - NS.string - Packaging||WRAPPER_EXTENSION - - - $class - - CF$UID - 136 - - NS.string - Search Paths||ALWAYS_SEARCH_USER_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||FRAMEWORK_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||LIBRARY_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||REZ_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Search Paths||EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||INCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES - - - $class - - CF$UID - 136 - - NS.string - Search Paths||USER_HEADER_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||OTHER_TEST_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_AFTER_BUILD - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_HOST - - - $class - - CF$UID - 136 - - NS.string - Unit Testing||TEST_RIG - - - $class - - CF$UID - 136 - - NS.string - Versioning||CURRENT_PROJECT_VERSION - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_FILE - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_EXPORT_DECL - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_PREFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_SUFFIX - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSIONING_SYSTEM - - - $class - - CF$UID - 136 - - NS.string - Versioning||VERSION_INFO_BUILDER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_OBJC_DISPATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OBJC_CALL_CXX_CDTORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THUMB_SUPPORT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE3_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE41_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SSE42_EXTENSIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_STRICT_ALIASING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FEEDBACK_DIRECTED_OPTIMIZATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DYNAMIC_NO_PIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_GENERATE_TEST_COVERAGE_FILES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INLINES_ARE_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_INSTRUMENT_PROGRAM_FLOW_ARCS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_KERNEL_DEVELOPMENT - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_DEBUGGING_SYMBOLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_REUSE_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_NO_COMMON_BLOCKS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_OBJC_GC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_OPTIMIZATION_LEVEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_FAST_MATH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_ENABLE_SYMBOL_SEPARATION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_THREADSAFE_STATICS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_SYMBOLS_PRIVATE_EXTERN - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Code Generation||GCC_UNROLL_LOOPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHAR_IS_UNSIGNED_CHAR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_ASM_KEYWORD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_C_LANGUAGE_STANDARD - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CHECK_RETURN_VALUE_OF_OPERATOR_NEW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_CW_ASM_SYNTAX - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INPUT_FILETYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_CPP_RTTI - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_LINK_WITH_DYNAMIC_LIBRARIES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_OBJC_EXCEPTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_TRIGRAPHS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_FLOATING_POINT_LIBRARY_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_INDIRECT_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_REGISTER_FUNCTION_CALLS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_INCREASE_PRECOMPILED_HEADER_SHARING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||OTHER_CPLUSPLUSFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PRECOMPILE_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_PREFIX_HEADER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_BUILTIN_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_ENABLE_PASCAL_STRINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_FORCE_CPU_SUBTYPE_ALL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_SHORT_ENUMS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Language||GCC_USE_STANDARD_INCLUDE_SEARCHING - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Preprocessing||GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_CHECK_SWITCH_STATEMENTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_FOUR_CHARACTER_CONSTANTS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SHADOW - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_64_TO_32_BIT_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INHIBIT_ALL_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_RETURN_TYPE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MISSING_PARENTHESES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_PROTOTYPES - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_MISSING_NEWLINE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_NON_VIRTUAL_DESTRUCTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||WARNING_CFLAGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PEDANTIC - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_POINTER_SIGNEDNESS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_PROTOTYPE_CONVERSION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_SIGN_COMPARE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_STRICT_SELECTOR_MATCH - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_TREAT_WARNINGS_AS_ERRORS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_TYPECHECK_CALLS_TO_PRINTF - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNDECLARED_SELECTOR - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNINITIALIZED_AUTOS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNKNOWN_PRAGMAS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_FUNCTION - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_LABEL - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_PARAMETER - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VALUE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_UNUSED_VARIABLE - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS - - - $class - - CF$UID - 136 - - NS.string - GCC 4.2 - Warnings||GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_FLATTEN_NIBS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OTHER_FLAGS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_OVERRIDING_PLUGINS_AND_FRAMEWORKS_DIR - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGIN_SEARCH_PATHS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_PLUGINS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_ERRORS - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_NOTICES - - - $class - - CF$UID - 136 - - NS.string - Interface Builder XIB Compiler - Options||IBC_WARNINGS - - - $class - - CF$UID - 136 - - NS.string - User-Defined||PREBINDING - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 959 - - - - - $class - - CF$UID - 136 - - NS.string - Architectures||SDKROOT - - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 962 - - - CF$UID - 964 - - - CF$UID - 966 - - - CF$UID - 968 - - - CF$UID - 970 - - - CF$UID - 972 - - - CF$UID - 974 - - - CF$UID - 976 - - - CF$UID - 978 - - - CF$UID - 980 - - - CF$UID - 982 - - - CF$UID - 984 - - - NS.objects - - - CF$UID - 986 - - - CF$UID - 994 - - - CF$UID - 998 - - - CF$UID - 1002 - - - CF$UID - 1006 - - - CF$UID - 1010 - - - CF$UID - 1014 - - - CF$UID - 1018 - - - CF$UID - 1022 - - - CF$UID - 1026 - - - CF$UID - 1029 - - - CF$UID - 1031 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 963 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/var/folders/oE/oE33fv0XFuyf-8RuPsGebk+++TY/-Tmp-/__dyld__ZL18gdb_image_notifier15dyld_image_modejPK15dyld_image_info_disassembly_0x8fe0b830.nasm - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 965 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Desktop/AnimatedGifExample/Classes/AnimatedGif.m - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 967 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGifExampleViewController.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 969 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 971 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGifExampleAppDelegate.m - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 973 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIGraphics.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 975 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIImage.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 977 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGif.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 979 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGifExampleViewController.m - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 981 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGifExampleAppDelegate.h - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 983 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Desktop/Animated-GIF-iPhone/Classes/AnimatedGif.m - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 985 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGif.m - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 991 - - - CF$UID - 992 - - - CF$UID - 54 - - - CF$UID - 993 - - - - PrimaryDocumentTimestamp - PrimaryDocumentVisibleCharacterRange - HideAllIssues - PrimaryDocumentSelectedCharacterRange - 324310457.74839902 - {0, 128} - {128, 0} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 995 - - - CF$UID - 996 - - - CF$UID - 54 - - - CF$UID - 997 - - - - 324311245.73474401 - {0, 1862} - {262, 111} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 999 - - - CF$UID - 1000 - - - CF$UID - 54 - - - CF$UID - 1001 - - - - 324307966.53826702 - {0, 365} - {352, 0} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1003 - - - CF$UID - 1004 - - - CF$UID - 54 - - - CF$UID - 1005 - - - - 324302018.674833 - {17513, 2503} - {19081, 64} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1007 - - - CF$UID - 1008 - - - CF$UID - 54 - - - CF$UID - 1009 - - - - 324305392.48543501 - {0, 675} - {0, 0} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1011 - - - CF$UID - 1012 - - - CF$UID - 54 - - - CF$UID - 1013 - - - - 324296963.97129297 - {0, 2221} - {699, 64} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1015 - - - CF$UID - 1016 - - - CF$UID - 54 - - - CF$UID - 1017 - - - - 324297482.58024198 - {0, 2416} - {1854, 100} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1019 - - - CF$UID - 1020 - - - CF$UID - 54 - - - CF$UID - 1021 - - - - 324297604.56431401 - {1519, 1267} - {2056, 29} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1023 - - - CF$UID - 1024 - - - CF$UID - 54 - - - CF$UID - 1025 - - - - 324308778.17771697 - {0, 1974} - {584, 0} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1027 - - - CF$UID - 1028 - - - CF$UID - 54 - - - CF$UID - 1009 - - - - 324303244.09006298 - {0, 547} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1030 - - - CF$UID - 996 - - - CF$UID - 54 - - - CF$UID - 997 - - - - 324311890.78732699 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1032 - - - CF$UID - 1033 - - - CF$UID - 54 - - - CF$UID - 1034 - - - - 324310432.34875798 - {1582, 1412} - {3866, 0} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1036 - - - NS.objects - - - CF$UID - 1038 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1037 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/apple_logo_animated.gif - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1039 - - - NS.objects - - - CF$UID - 1040 - - - - SelectedDocumentLocations - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1041 - - - - - $class - - CF$UID - 1044 - - IDEQuickLookPageNumber - - CF$UID - 25 - - documentURL - - CF$UID - 1042 - - timestamp - - CF$UID - 1043 - - - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/apple_logo_animated.gif - 324304784.55444998 - - $classes - - IDEQuickLookDocumentLocation - DVTDocumentLocation - NSObject - - $classname - IDEQuickLookDocumentLocation - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1046 - - - CF$UID - 1048 - - - NS.objects - - - CF$UID - 1050 - - - CF$UID - 1066 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1047 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/AnimatedGifExampleViewController.xib - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1049 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/MainWindow.xib - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1051 - - - CF$UID - 1052 - - - CF$UID - 1053 - - - CF$UID - 1054 - - - NS.objects - - - CF$UID - 1055 - - - CF$UID - 1058 - - - CF$UID - 1054 - - - CF$UID - 1060 - - - - IBDockViewController - SelectedObjectIDs - SelectionProvider - IBCanvasViewController - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1056 - - - NS.objects - - - CF$UID - 1057 - - - - LastKnownOutlineViewWidth - 270 - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1059 - - - - 28 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1061 - - - CF$UID - 1062 - - - NS.objects - - - CF$UID - 1063 - - - CF$UID - 1064 - - - - ObjectIDToLastKnownCanvasPositionMap - EditedTopLevelObjectIDs - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1065 - - - - 6 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1051 - - - CF$UID - 1052 - - - CF$UID - 1053 - - - CF$UID - 1054 - - - NS.objects - - - CF$UID - 1067 - - - CF$UID - 1069 - - - CF$UID - 1054 - - - CF$UID - 1071 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1056 - - - NS.objects - - - CF$UID - 1068 - - - - 270 - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1070 - - - - 10 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1061 - - - CF$UID - 1062 - - - NS.objects - - - CF$UID - 1072 - - - CF$UID - 1073 - - - - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1070 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1075 - - - CF$UID - 1076 - - - NS.objects - - - CF$UID - 1077 - - - CF$UID - 1078 - - - - IDEDeviceLocation - IDEDeviceArchitecture - dvtdevice-iphonesimulator:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk-iPhone - i386 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1080 - - - NS.objects - - - CF$UID - 1081 - - - - IDENameString - AnimatedGifExample - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1083 - - - CF$UID - 1084 - - - CF$UID - 1085 - - - NS.objects - - - CF$UID - 1086 - - - CF$UID - 1112 - - - CF$UID - 1093 - - - - IDEActivityReportCompletionSummaryStringSegments - IDEActivityReportOptions - IDEActivityReportTitle - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1087 - - - CF$UID - 1094 - - - CF$UID - 1098 - - - CF$UID - 1103 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1088 - - - CF$UID - 1089 - - - CF$UID - 1090 - - - NS.objects - - - CF$UID - 1091 - - - CF$UID - 1092 - - - CF$UID - 1093 - - - - IDEActivityReportStringSegmentPriority - IDEActivityReportStringSegmentBackSeparator - IDEActivityReportStringSegmentStringValue - 2 - - Build - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1088 - - - CF$UID - 1089 - - - CF$UID - 1090 - - - NS.objects - - - CF$UID - 1095 - - - CF$UID - 1096 - - - CF$UID - 1097 - - - - 4 - : - AnimatedGifExample - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1088 - - - CF$UID - 1089 - - - CF$UID - 1090 - - - NS.objects - - - CF$UID - 1099 - - - CF$UID - 1100 - - - CF$UID - 1101 - - - - 1 - │ - - $class - - CF$UID - 1102 - - NS.data - - YnBsaXN0MDDUAQIDBAUGOzxYJHZlcnNpb25YJG9iamVjdHNZJGFy - Y2hpdmVyVCR0b3ASAAGGoK0HCA8QGhscJCUrMTQ3VSRudWxs0wkK - CwwNDlxOU0F0dHJpYnV0ZXNWJGNsYXNzWE5TU3RyaW5ngAOADIAC - WVN1Y2NlZWRlZNMKERITFBdXTlMua2V5c1pOUy5vYmplY3RzgAui - FRaABIAFohgZgAaACVZOU0ZvbnRXTlNDb2xvctQKHR4fICEiI1ZO - U05hbWVWTlNTaXplWE5TZkZsYWdzgAiAByNAJgAAAAAAABENEF8Q - EUx1Y2lkYUdyYW5kZS1Cb2xk0iYnKClaJGNsYXNzbmFtZVgkY2xh - c3Nlc1ZOU0ZvbnSiKCpYTlNPYmplY3TTCiwtLi8wXE5TQ29sb3JT - cGFjZVdOU1doaXRlgAoQA0IwANImJzIzV05TQ29sb3KiMirSJic1 - NlxOU0RpY3Rpb25hcnmiNSrSJic4OV8QEk5TQXR0cmlidXRlZFN0 - cmluZ6I6Kl8QEk5TQXR0cmlidXRlZFN0cmluZ18QD05TS2V5ZWRB - cmNoaXZlctE9PlRyb290gAEACAARABoAIwAtADIANwBFAEsAUgBf - AGYAbwBxAHMAdQB/AIYAjgCZAJsAngCgAKIApQCnAKkAsAC4AMEA - yADPANgA2gDcAOUA6AD8AQEBDAEVARwBHwEoAS8BPAFEAUYBSAFL - AVABWAFbAWABbQFwAXUBigGNAaIBtAG3AbwAAAAAAAACAQAAAAAA - AAA/AAAAAAAAAAAAAAAAAAABvg== - - - - $classes - - NSMutableData - NSData - NSObject - - $classname - NSMutableData - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1088 - - - CF$UID - 1104 - - - CF$UID - 1105 - - - CF$UID - 1090 - - - CF$UID - 1106 - - - CF$UID - 1107 - - - NS.objects - - - CF$UID - 1108 - - - CF$UID - 381 - - - CF$UID - 1109 - - - CF$UID - 1111 - - - CF$UID - 381 - - - CF$UID - 381 - - - - IDEActivityReportStringSegmentType - IDEActivityReportStringSegmentDate - IDEActivityReportStringSegmentDateStyle - IDEActivityReportStringSegmentTimeStyle - 3 - - $class - - CF$UID - 1110 - - NS.time - 324371425.93272197 - - - $classes - - NSDate - NSObject - - $classname - NSDate - - Today at 09:10 - 106 - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 2 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1115 - - - NS.objects - - - CF$UID - 1117 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1116 - - - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGif.m - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 1118 - - - CF$UID - 1119 - - - NS.objects - - - CF$UID - 1120 - - - CF$UID - 1121 - - - - width - height - 600 - 600 - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1123 - - - - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 155 - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 6 - - - CF$UID - 1125 - - - CF$UID - 1126 - - - CF$UID - 1127 - - - CF$UID - 1128 - - - CF$UID - 1129 - - - NS.objects - - - CF$UID - 4 - - - CF$UID - 1130 - - - CF$UID - 54 - - - CF$UID - 1131 - - - CF$UID - 1132 - - - CF$UID - 1128 - - - - IDEOrderedWorkspaceTabControllers - IDEWindowToolbarIsVisible - IDEWindowFrame - IDEWorkspaceTabController_72973C34-F2DC-4640-B1B6-91E230C2F034 - IDEActiveWorkspaceTabController - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1128 - - - - {{285, 412}, {600, 646}} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1133 - - - CF$UID - 1134 - - - CF$UID - 1135 - - - CF$UID - 1136 - - - CF$UID - 1137 - - - CF$UID - 1138 - - - CF$UID - 1139 - - - CF$UID - 1140 - - - NS.objects - - - CF$UID - 1141 - - - CF$UID - 54 - - - CF$UID - 25 - - - CF$UID - 1142 - - - CF$UID - 1148 - - - CF$UID - 1167 - - - CF$UID - 54 - - - CF$UID - 1176 - - - - IDETabLabel - IDEShowNavigator - AssistantEditorsLayout - IDEWorkspaceTabControllerUtilityAreaSplitView - IDENavigatorArea - IDEWorkspaceTabControllerDesignAreaSplitView - IDEShowUtilities - IDEEditorArea - AnimatedGif.m - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 1143 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1144 - - - CF$UID - 1146 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 1145 - - - - 234 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 473 - - - CF$UID - 1147 - - - - 388 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1149 - - - CF$UID - 1150 - - - CF$UID - 44 - - - NS.objects - - - CF$UID - 1151 - - - CF$UID - 44 - - - CF$UID - 1160 - - - - Xcode.IDEKit.Navigator.Structure - SelectedNavigator - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 75 - - - CF$UID - 1152 - - - CF$UID - 1153 - - - CF$UID - 1154 - - - CF$UID - 1155 - - - CF$UID - 1156 - - - CF$UID - 1157 - - - NS.objects - - - CF$UID - 1158 - - - CF$UID - 54 - - - CF$UID - 55 - - - CF$UID - 54 - - - CF$UID - 54 - - - CF$UID - 1159 - - - CF$UID - 55 - - - - IDEUnsavedDocumentFilteringEnabled - IDENavigatorExpandedItemsBeforeFilteringSet - IDERecentDocumentFilteringEnabled - IDESCMStatusFilteringEnabled - IDESelectedObjects - IDEExpandedItemsSet - {{0, 0}, {259, 832}} - - $class - - CF$UID - 13 - - NS.objects - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 74 - - - CF$UID - 75 - - - CF$UID - 76 - - - CF$UID - 77 - - - CF$UID - 78 - - - CF$UID - 79 - - - CF$UID - 80 - - - CF$UID - 81 - - - CF$UID - 82 - - - CF$UID - 83 - - - NS.objects - - - CF$UID - 54 - - - CF$UID - 1161 - - - CF$UID - 1162 - - - CF$UID - 1163 - - - CF$UID - 1164 - - - CF$UID - 54 - - - CF$UID - 54 - - - CF$UID - 1165 - - - CF$UID - 54 - - - CF$UID - 1166 - - - - {{0, 0}, {0, 0}} - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 38 - - NS.objects - - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 1168 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1169 - - - CF$UID - 1171 - - - CF$UID - 1173 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1137 - - - CF$UID - 1170 - - - - 260 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1140 - - - CF$UID - 1172 - - - - 1400 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1174 - - - CF$UID - 1175 - - - - IDEUtilitiesArea - 260 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1177 - - - CF$UID - 1178 - - - CF$UID - 1179 - - - CF$UID - 1180 - - - CF$UID - 1181 - - - CF$UID - 1182 - - - CF$UID - 1183 - - - CF$UID - 1184 - - - NS.objects - - - CF$UID - 54 - - - CF$UID - 1185 - - - CF$UID - 1219 - - - CF$UID - 14 - - - CF$UID - 25 - - - CF$UID - 1244 - - - CF$UID - 1252 - - - CF$UID - 1253 - - - - ShowDebuggerArea - IDEEditorMode_Standard - IDEEDitorArea_DebugArea - IDEShowEditor - EditorMode - DebuggerSplitView - DefaultPersistentRepresentations - layoutTree - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1186 - - - NS.objects - - - CF$UID - 1187 - - - - EditorLayout_PersistentRepresentation - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1188 - - - NS.objects - - - CF$UID - 1189 - - - - Main - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 1190 - - - CF$UID - 1191 - - - CF$UID - 1192 - - - NS.objects - - - CF$UID - 1193 - - - CF$UID - 25 - - - CF$UID - 1217 - - - - EditorLayout_StateSavingStateDictionaries - EditorLayout_Selected - EditorLayout_Geometry - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1194 - - - - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1195 - - - CF$UID - 1196 - - - CF$UID - 1197 - - - CF$UID - 1198 - - - CF$UID - 1199 - - - CF$UID - 1200 - - - CF$UID - 1201 - - - NS.objects - - - CF$UID - 1202 - - - CF$UID - 1203 - - - CF$UID - 1211 - - - CF$UID - 1215 - - - CF$UID - 1141 - - - CF$UID - 450 - - - CF$UID - 1216 - - - - FileDataType - ArchivableRepresentation - EditorState - NavigableItemName - DocumentNavigableItemName - DocumentExtensionIdentifier - DocumentURL - public.objective-c-source - - $class - - CF$UID - 138 - - DocumentLocation - - CF$UID - 1209 - - DomainIdentifier - - CF$UID - 128 - - IdentifierPath - - CF$UID - 1204 - - IndexOfDocumentIdentifier - - CF$UID - 25 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1205 - - - CF$UID - 1206 - - - CF$UID - 1208 - - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 1141 - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 1207 - - - Classes - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 485 - - - - $class - - CF$UID - 137 - - documentURL - - CF$UID - 1210 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 136 - - NS.string - file://localhost/Users/agutierrez/Downloads/AnimatedGifExample/Classes/AnimatedGif.m - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 987 - - - CF$UID - 988 - - - CF$UID - 989 - - - CF$UID - 990 - - - NS.objects - - - CF$UID - 1212 - - - CF$UID - 1213 - - - CF$UID - 54 - - - CF$UID - 1214 - - - - 324309718.26065302 - {7103, 1332} - {8379, 0} - -getAnimation - - $class - - CF$UID - 388 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1116 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1218 - - - - {{0, 0}, {600, 600}} - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1220 - - - CF$UID - 1221 - - - CF$UID - 1222 - - - CF$UID - 1223 - - - CF$UID - 1224 - - - CF$UID - 1225 - - - NS.objects - - - CF$UID - 381 - - - CF$UID - 1226 - - - CF$UID - 1228 - - - CF$UID - 381 - - - CF$UID - 1236 - - - CF$UID - 1242 - - - - LayoutFocusMode - console - IDEDebugArea_SplitView - LayoutMode - IDEDebuggerAreaSplitView - variables - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1227 - - - NS.objects - - - CF$UID - 25 - - - - ConsoleFilterMode - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 1229 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1230 - - - CF$UID - 1233 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1231 - - - CF$UID - 1232 - - - - VariablesView - 298 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1234 - - - CF$UID - 1235 - - - - ConsoleArea - 301 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 1237 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1238 - - - CF$UID - 1240 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1231 - - - CF$UID - 1239 - - - - 298 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1234 - - - CF$UID - 1241 - - - - 301 - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 1243 - - - NS.objects - - - CF$UID - 72 - - - - DBGVariablesViewFilterMode - - $class - - CF$UID - 39 - - NS.keys - - - CF$UID - 468 - - - NS.objects - - - CF$UID - 1245 - - - - - $class - - CF$UID - 38 - - NS.objects - - - CF$UID - 1246 - - - CF$UID - 1249 - - - - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1247 - - - CF$UID - 1248 - - - - IDEEditor - 203 - - $class - - CF$UID - 35 - - NS.keys - - - CF$UID - 471 - - - CF$UID - 472 - - - NS.objects - - - CF$UID - 1250 - - - CF$UID - 1251 - - - - IDEDebuggerArea - 115 - - $class - - CF$UID - 39 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 435 - - geniusEditorContextNode - - CF$UID - 0 - - primaryEditorContextNode - - CF$UID - 1254 - - rootLayoutTreeNode - - CF$UID - 1260 - - - - $class - - CF$UID - 434 - - children - - CF$UID - 0 - - contentType - 1 - documentArchivableRepresentation - - CF$UID - 1255 - - orientation - 0 - parent - - CF$UID - 1260 - - - - $class - - CF$UID - 138 - - DocumentLocation - - CF$UID - 1209 - - DomainIdentifier - - CF$UID - 128 - - IdentifierPath - - CF$UID - 1256 - - IndexOfDocumentIdentifier - - CF$UID - 25 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1257 - - - CF$UID - 1258 - - - CF$UID - 1259 - - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 1141 - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 1207 - - - - $class - - CF$UID - 132 - - Identifier - - CF$UID - 485 - - - - $class - - CF$UID - 434 - - children - - CF$UID - 1261 - - contentType - 0 - documentArchivableRepresentation - - CF$UID - 0 - - orientation - 0 - parent - - CF$UID - 0 - - - - $class - - CF$UID - 13 - - NS.objects - - - CF$UID - 1254 - - - - - $top - - State - - CF$UID - 1 - - - $version - 100000 - - diff --git a/AnimatedGifExample.xcodeproj/scspijker.mode1v3 b/AnimatedGifExample.xcodeproj/scspijker.mode1v3 deleted file mode 100644 index 47f1ace..0000000 --- a/AnimatedGifExample.xcodeproj/scspijker.mode1v3 +++ /dev/null @@ -1,1403 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCProjectFormatConflictsModule - Name - Project Format Conflicts List - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - BundleLoadPath - - MaxInstances - n - Module - XCSnapshotModule - Name - Snapshots Tool - - - BundlePath - /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1v3 - FavBarConfig - - PBXProjectModuleGUID - BCFF93DA1000E0FD00162DEF - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1v3 - MajorVersion - 33 - MinorVersion - 0 - Name - Default - Notifications - - OpenEditors - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - servicesModuledebug - active-combo-popup - action - NSToolbarFlexibleSpaceItem - build - clean-target - go - NSToolbarFlexibleSpaceItem - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 261 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 080E96DDFE201D6D7F000001 - 29B97317FDCFA39411CA2CEA - 1C37FAAC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 7 - 1 - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {261, 749}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {278, 767}} - GroupTreeTableConfiguration - - MainColumn - 261 - - RubberWindowFrame - 52 69 1307 808 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 278pt - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - AnimatedGif.h - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - AnimatedGif.h - _historyCapacity - 0 - bookmark - BC259AE6115040F100A83772 - history - - BC259A921150349500A83772 - BC259AA511503FBE00A83772 - BC259AA611503FBE00A83772 - BC259AE01150406500A83772 - BC259AE11150406500A83772 - BC259AE3115040F100A83772 - BC259AE4115040F100A83772 - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1024, 644}} - RubberWindowFrame - 52 69 1307 808 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 644pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{0, 649}, {1024, 118}} - RubberWindowFrame - 52 69 1307 808 0 0 1440 878 - - Module - XCDetailModule - Proportion - 118pt - - - Proportion - 1024pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - BC259AB911503FCB00A83772 - 1CE0B1FE06471DED0097A5F4 - BC259ABA11503FCB00A83772 - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfigUserDefaultsMinorVersion - 2 - ToolbarConfiguration - xcode.toolbar.config.defaultV3 - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - 0 - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.shortV3 - - - PerspectivesBarVisible - - ShelfIsVisible - - SourceDescription - file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' - StatusbarIsVisible - - TimeStamp - 0.0 - ToolbarDisplayMode - 1 - ToolbarIsVisible - - ToolbarSizeMode - 1 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - BC259AD81150401B00A83772 - BC259AD91150401B00A83772 - 1C78EAAD065D492600B07095 - 1CD10A99069EF8BA00B06720 - BCFF93FB1000E2EA00162DEF - /Users/scspijker/iPhone Development/AnimatedGifExample/AnimatedGifExample.xcodeproj - - WindowString - 52 69 1307 808 0 0 1440 878 - WindowToolsV3 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {696, 234}} - RubberWindowFrame - 176 279 696 516 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 234pt - - - ContentConfiguration - - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - Build Results - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1011 - - GeometryConfiguration - - Frame - {{0, 239}, {696, 236}} - RubberWindowFrame - 176 279 696 516 0 0 1440 878 - - Module - PBXBuildResultsModule - Proportion - 236pt - - - Proportion - 475pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - BCFF93FB1000E2EA00162DEF - BC259ABB11503FCB00A83772 - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.buildV3 - WindowString - 176 279 696 516 0 0 1440 878 - WindowToolGUID - BCFF93FB1000E2EA00162DEF - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debugger - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {453, 261}} - {{453, 0}, {545, 261}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {998, 261}} - {{0, 261}, {998, 229}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {998, 490}} - PBXDebugSessionStackFrameViewKey - - DebugVariablesTableConfiguration - - Name - 120 - Value - 85 - Summary - 315 - - Frame - {{453, 0}, {545, 261}} - RubberWindowFrame - 171 266 998 531 0 0 1440 878 - - RubberWindowFrame - 171 266 998 531 0 0 1440 878 - - Module - PBXDebugSessionModule - Proportion - 490pt - - - Proportion - 490pt - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - - TableOfContents - - 1CD10A99069EF8BA00B06720 - BC259ABC11503FCB00A83772 - 1C162984064C10D400B95A72 - BC259ABD11503FCB00A83772 - BC259ABE11503FCB00A83772 - BC259ABF11503FCB00A83772 - BC259AC011503FCB00A83772 - BC259AC111503FCB00A83772 - - ToolbarConfiguration - xcode.toolbar.config.debugV3 - WindowString - 171 266 998 531 0 0 1440 878 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - - - - Identifier - windowTool.find - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CD0528D0623707200166675 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {781, 167}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 781pt - - - Proportion - 50% - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - Project Find - - GeometryConfiguration - - Frame - {{8, 0}, {773, 254}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXProjectFindModule - Proportion - 50% - - - Proportion - 428pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C530D57069F1CE1000CFCEE - 1C530D58069F1CE1000CFCEE - 1C530D59069F1CE1000CFCEE - 1CDD528C0622207200134675 - 1C530D5A069F1CE1000CFCEE - 1CE0B1FE06471DED0097A5F4 - 1CD0528E0623707200166675 - - WindowString - 62 385 781 470 0 0 1440 878 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - 0 - - - Identifier - MENUSEPARATOR - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debuggerConsole - IsVertical - - Layout - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {1001, 467}} - RubberWindowFrame - 211 229 1001 508 0 0 1440 878 - - Module - PBXDebugCLIModule - Proportion - 467pt - - - Proportion - 467pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - - TableOfContents - - 1C78EAAD065D492600B07095 - BC259AC211503FCB00A83772 - 1C78EAAC065D492600B07095 - - ToolbarConfiguration - xcode.toolbar.config.consoleV3 - WindowString - 211 229 1001 508 0 0 1440 878 - WindowToolGUID - 1C78EAAD065D492600B07095 - WindowToolIsVisible - - - - Identifier - windowTool.snapshots - Layout - - - Dock - - - Module - XCSnapshotModule - Proportion - 100% - - - Proportion - 100% - - - Name - Snapshots - ServiceClasses - - XCSnapshotModule - - StatusbarIsVisible - Yes - ToolbarConfiguration - xcode.toolbar.config.snapshots - WindowString - 315 824 300 550 0 0 1440 878 - WindowToolIsVisible - Yes - - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.0950012207031 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.breakpoints - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 329 851 744 409 0 0 2560 1578 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 329 851 744 409 0 0 2560 1578 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 3 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - - TableOfContents - - BCFF94331000E3C300162DEF - BCFF94341000E3C300162DEF - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpointsV3 - WindowString - 329 851 744 409 0 0 2560 1578 - WindowToolGUID - BCFF94331000E3C300162DEF - WindowToolIsVisible - - - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - 1 - ToolbarConfiguration - xcode.toolbar.config.debugAnimatorV3 - WindowString - 100 100 700 500 0 0 1280 1002 - - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - 0 - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.projectFormatConflicts - Layout - - - Dock - - - Module - XCProjectFormatConflictsModule - Proportion - 100% - - - Proportion - 100% - - - Name - Project Format Conflicts - ServiceClasses - - XCProjectFormatConflictsModule - - StatusbarIsVisible - 0 - WindowContentMinSize - 450 300 - WindowString - 50 850 472 307 0 0 1440 877 - - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - 0 - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - 0 - - - Identifier - windowTool.refactoring - IncludeInToolsMenu - 0 - Layout - - - Dock - - - BecomeActive - 1 - GeometryConfiguration - - Frame - {0, 0}, {500, 335} - RubberWindowFrame - {0, 0}, {500, 335} - - Module - XCRefactoringModule - Proportion - 100% - - - Proportion - 100% - - - Name - Refactoring - ServiceClasses - - XCRefactoringModule - - WindowString - 200 200 500 356 0 0 1920 1200 - - - - diff --git a/AnimatedGifExample.xcodeproj/scspijker.pbxuser b/AnimatedGifExample.xcodeproj/scspijker.pbxuser deleted file mode 100644 index 61d95d2..0000000 --- a/AnimatedGifExample.xcodeproj/scspijker.pbxuser +++ /dev/null @@ -1,329 +0,0 @@ -// !$*UTF8*$! -{ - 1D3623240D0F684500981E51 /* AnimatedGifExampleAppDelegate.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {963, 590}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 547}"; - }; - }; - 1D3623250D0F684500981E51 /* AnimatedGifExampleAppDelegate.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {963, 592}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 675}"; - }; - }; - 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */ = { - activeExec = 0; - executables = ( - BCFF93C91000E0FC00162DEF /* AnimatedGifExample */, - ); - }; - 28D7ACF60DDB3853001CB0EB /* AnimatedGifExampleViewController.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {963, 587}}"; - sepNavSelRange = "{353, 0}"; - sepNavVisRange = "{0, 366}"; - }; - }; - 28D7ACF70DDB3853001CB0EB /* AnimatedGifExampleViewController.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {999, 587}}"; - sepNavSelRange = "{396, 641}"; - sepNavVisRange = "{0, 1174}"; - sepNavWindowFrame = "{{76, 315}, {750, 558}}"; - }; - }; - 29B97313FDCFA39411CA2CEA /* Project object */ = { - activeBuildConfigurationName = Debug; - activeExecutable = BCFF93C91000E0FC00162DEF /* AnimatedGifExample */; - activeTarget = 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */; - addToTargets = ( - 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */, - ); - breakpoints = ( - BC0C938811235E2B00373041 /* AnimatedGif.m:99 */, - ); - codeSenseManager = BCFF93DC1000E0FD00162DEF /* Code sense */; - executables = ( - BCFF93C91000E0FC00162DEF /* AnimatedGifExample */, - ); - perUserDictionary = { - "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 20, - 198, - 20, - 99, - 99, - 29, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXBreakpointsDataSource_ActionID, - PBXBreakpointsDataSource_TypeID, - PBXBreakpointsDataSource_BreakpointID, - PBXBreakpointsDataSource_UseID, - PBXBreakpointsDataSource_LocationID, - PBXBreakpointsDataSource_ConditionID, - PBXBreakpointsDataSource_IgnoreCountID, - PBXBreakpointsDataSource_ContinueID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXErrorsWarningsDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXErrorsWarningsDataSource_LocationID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 300, - 622, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXErrorsWarningsDataSource_TypeID, - PBXErrorsWarningsDataSource_MessageID, - PBXErrorsWarningsDataSource_LocationID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXExecutablesDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXExecutablesDataSource_NameID; - PBXFileTableDataSourceColumnWidthsKey = ( - 22, - 300, - 510, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXExecutablesDataSource_ActiveFlagID, - PBXExecutablesDataSource_NameID, - PBXExecutablesDataSource_CommentsID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 785, - 20, - 48, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; - PBXFileTableDataSourceColumnWidthsKey = ( - 200, - 636, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFindDataSource_MessageID, - PBXFindDataSource_LocationID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 290471875; - PBXWorkspaceStateSaveDate = 290471875; - }; - perUserProjectItems = { - BC259A921150349500A83772 /* PBXTextBookmark */ = BC259A921150349500A83772 /* PBXTextBookmark */; - BC259AA511503FBE00A83772 /* PBXTextBookmark */ = BC259AA511503FBE00A83772 /* PBXTextBookmark */; - BC259AA611503FBE00A83772 /* PBXTextBookmark */ = BC259AA611503FBE00A83772 /* PBXTextBookmark */; - BC259AE01150406500A83772 /* PBXTextBookmark */ = BC259AE01150406500A83772 /* PBXTextBookmark */; - BC259AE11150406500A83772 /* PBXTextBookmark */ = BC259AE11150406500A83772 /* PBXTextBookmark */; - BC259AE3115040F100A83772 /* PBXTextBookmark */ = BC259AE3115040F100A83772 /* PBXTextBookmark */; - BC259AE4115040F100A83772 /* PBXTextBookmark */ = BC259AE4115040F100A83772 /* PBXTextBookmark */; - BC259AE6115040F100A83772 /* PBXTextBookmark */ = BC259AE6115040F100A83772 /* PBXTextBookmark */; - }; - sourceControlManager = BCFF93DB1000E0FD00162DEF /* Source Control */; - userBuildSettings = { - }; - }; - BC0C938811235E2B00373041 /* AnimatedGif.m:99 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - functionName = "-addToQueue:"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 99; - location = AnimatedGifExample; - modificationTime = 290471964.713232; - originalNumberOfMultipleMatches = 1; - state = 2; - }; - BC259A921150349500A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 1D3623250D0F684500981E51 /* AnimatedGifExampleAppDelegate.m */; - name = "AnimatedGifExampleAppDelegate.m: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 675; - vrLoc = 0; - }; - BC259AA511503FBE00A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 1D3623240D0F684500981E51 /* AnimatedGifExampleAppDelegate.h */; - name = "AnimatedGifExampleAppDelegate.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 547; - vrLoc = 0; - }; - BC259AA611503FBE00A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93DF1000E1E800162DEF /* AnimatedGif.h */; - name = "AnimatedGif.h: 69"; - rLen = 0; - rLoc = 1880; - rType = 0; - vrLen = 1048; - vrLoc = 1370; - }; - BC259AE01150406500A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - name = "AnimatedGif.m: 482"; - rLen = 0; - rLoc = 12108; - rType = 0; - vrLen = 996; - vrLoc = 11493; - }; - BC259AE11150406500A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 28D7ACF60DDB3853001CB0EB /* AnimatedGifExampleViewController.h */; - name = "AnimatedGifExampleViewController.h: 14"; - rLen = 0; - rLoc = 353; - rType = 0; - vrLen = 366; - vrLoc = 0; - }; - BC259AE3115040F100A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 28D7ACF70DDB3853001CB0EB /* AnimatedGifExampleViewController.m */; - name = "AnimatedGifExampleViewController.m: 22"; - rLen = 641; - rLoc = 396; - rType = 0; - vrLen = 1174; - vrLoc = 0; - }; - BC259AE4115040F100A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BC259AE5115040F100A83772 /* AnimatedGif.h */; - rLen = 0; - rLoc = 9223372036854775866; - rType = 0; - }; - BC259AE5115040F100A83772 /* AnimatedGif.h */ = { - isa = PBXFileReference; - lastKnownFileType = sourcecode.c.h; - name = AnimatedGif.h; - path = "/Users/scspijker/iPhone Development/AnimatedGif/AnimatedGif.h"; - sourceTree = ""; - }; - BC259AE6115040F100A83772 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BC259AE7115040F100A83772 /* AnimatedGif.h */; - name = "AnimatedGif.h: 18"; - rLen = 58; - rLoc = 531; - rType = 0; - vrLen = 1528; - vrLoc = 0; - }; - BC259AE7115040F100A83772 /* AnimatedGif.h */ = { - isa = PBXFileReference; - name = AnimatedGif.h; - path = "/Users/scspijker/iPhone Development/AnimatedGif/AnimatedGif.h"; - sourceTree = ""; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {963, 1092}}"; - sepNavSelRange = "{531, 58}"; - sepNavVisRange = "{0, 1528}"; - }; - }; - BCFF93C91000E0FC00162DEF /* AnimatedGifExample */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 1; - configStateDict = { - }; - customDataFormattersEnabled = 1; - dataTipCustomDataFormattersEnabled = 1; - dataTipShowTypeColumn = 1; - dataTipSortType = 0; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = AnimatedGifExample; - savedGlobals = { - }; - showTypeColumn = 0; - sourceDirectories = ( - ); - variableFormatDictionary = { - }; - }; - BCFF93DB1000E0FD00162DEF /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - repositoryNamesForRoots = { - "" = ""; - }; - }; - }; - BCFF93DC1000E0FD00162DEF /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - BCFF93DF1000E1E800162DEF /* AnimatedGif.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {963, 1144}}"; - sepNavSelRange = "{1880, 0}"; - sepNavVisRange = "{1370, 1048}"; - }; - }; - BCFF93E01000E1E800162DEF /* AnimatedGif.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {999, 7163}}"; - sepNavSelRange = "{12108, 0}"; - sepNavVisRange = "{11493, 996}"; - }; - }; -} diff --git a/AnimatedGifExample.xcodeproj/stijn.mode1v3 b/AnimatedGifExample.xcodeproj/stijn.mode1v3 deleted file mode 100644 index af862cf..0000000 --- a/AnimatedGifExample.xcodeproj/stijn.mode1v3 +++ /dev/null @@ -1,1393 +0,0 @@ - - - - - ActivePerspectiveName - Project - AllowedModules - - - BundleLoadPath - - MaxInstances - n - Module - PBXSmartGroupTreeModule - Name - Groups and Files Outline View - - - BundleLoadPath - - MaxInstances - n - Module - PBXNavigatorGroup - Name - Editor - - - BundleLoadPath - - MaxInstances - n - Module - XCTaskListModule - Name - Task List - - - BundleLoadPath - - MaxInstances - n - Module - XCDetailModule - Name - File and Smart Group Detail Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXBuildResultsModule - Name - Detailed Build Results Viewer - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXProjectFindModule - Name - Project Batch Find Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCProjectFormatConflictsModule - Name - Project Format Conflicts List - - - BundleLoadPath - - MaxInstances - n - Module - PBXBookmarksModule - Name - Bookmarks Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXClassBrowserModule - Name - Class Browser - - - BundleLoadPath - - MaxInstances - n - Module - PBXCVSModule - Name - Source Code Control Tool - - - BundleLoadPath - - MaxInstances - n - Module - PBXDebugBreakpointsModule - Name - Debug Breakpoints Tool - - - BundleLoadPath - - MaxInstances - n - Module - XCDockableInspector - Name - Inspector - - - BundleLoadPath - - MaxInstances - n - Module - PBXOpenQuicklyModule - Name - Open Quickly Tool - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugSessionModule - Name - Debugger - - - BundleLoadPath - - MaxInstances - 1 - Module - PBXDebugCLIModule - Name - Debug Console - - - BundleLoadPath - - MaxInstances - n - Module - XCSnapshotModule - Name - Snapshots Tool - - - BundlePath - /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources - Description - DefaultDescriptionKey - DockingSystemVisible - - Extension - mode1v3 - FavBarConfig - - PBXProjectModuleGUID - 0423A889107E3CD200D5DD6E - XCBarModuleItemNames - - XCBarModuleItems - - - FirstTimeWindowDisplayed - - Identifier - com.apple.perspectives.project.mode1v3 - MajorVersion - 33 - MinorVersion - 0 - Name - Default - Notifications - - OpenEditors - - PerspectiveWidths - - -1 - -1 - - Perspectives - - - ChosenToolbarItems - - active-combo-popup - action - NSToolbarFlexibleSpaceItem - build-and-go - com.apple.ide.PBXToolbarStopButton - get-info - NSToolbarFlexibleSpaceItem - com.apple.pbx.toolbar.searchfield - - ControllerClassBaseName - - IconName - WindowOfProjectWithEditor - Identifier - perspective.project - IsVertical - - Layout - - - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 842}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 860}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 716 238 1503 901 0 0 2560 1578 - - Module - PBXSmartGroupTreeModule - Proportion - 203pt - - - Dock - - - BecomeActive - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20306471E060097A5F4 - PBXProjectModuleLabel - AnimatedGif.m - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CE0B20406471E060097A5F4 - PBXProjectModuleLabel - AnimatedGif.m - _historyCapacity - 0 - bookmark - 0423A898107E3D7D00D5DD6E - history - - 0423A892107E3D7D00D5DD6E - 0423A893107E3D7D00D5DD6E - - prevStack - - 0423A894107E3D7D00D5DD6E - 0423A895107E3D7D00D5DD6E - 0423A896107E3D7D00D5DD6E - 0423A897107E3D7D00D5DD6E - - - SplitCount - 1 - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {1295, 682}} - RubberWindowFrame - 716 238 1503 901 0 0 2560 1578 - - Module - PBXNavigatorGroup - Proportion - 682pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CE0B20506471E060097A5F4 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{0, 687}, {1295, 173}} - RubberWindowFrame - 716 238 1503 901 0 0 2560 1578 - - Module - XCDetailModule - Proportion - 173pt - - - Proportion - 1295pt - - - Name - Project - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - XCModuleDock - PBXNavigatorGroup - XCDetailModule - - TableOfContents - - 0423A887107E3CD200D5DD6E - 1CE0B1FE06471DED0097A5F4 - 0423A888107E3CD200D5DD6E - 1CE0B20306471E060097A5F4 - 1CE0B20506471E060097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.defaultV3 - - - ControllerClassBaseName - - IconName - WindowOfProject - Identifier - perspective.morph - IsVertical - 0 - Layout - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C37FBAC04509CD000000102 - 1C37FAAC04509CD000000102 - 1C08E77C0454961000C914BD - 1C37FABC05509CD000000102 - 1C37FABC05539CD112110102 - E2644B35053B69B200211256 - 1C37FABC04509CD000100104 - 1CC0EA4004350EF90044410B - 1CC0EA4004350EF90041110B - - PBXProjectModuleGUID - 11E0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - yes - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 186 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 29B97314FDCFA39411CA2CEA - 1C37FABC05509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 337}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 1 - XCSharingToken - com.apple.Xcode.GFSharingToken - - GeometryConfiguration - - Frame - {{0, 0}, {203, 355}} - GroupTreeTableConfiguration - - MainColumn - 186 - - RubberWindowFrame - 373 269 690 397 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 100% - - - Name - Morph - PreferredWidth - 300 - ServiceClasses - - XCModuleDock - PBXSmartGroupTreeModule - - TableOfContents - - 11E0B1FE06471DED0097A5F4 - - ToolbarConfiguration - xcode.toolbar.config.default.shortV3 - - - PerspectivesBarVisible - - ShelfIsVisible - - SourceDescription - file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' - StatusbarIsVisible - - TimeStamp - 0.0 - ToolbarDisplayMode - 1 - ToolbarIsVisible - - ToolbarSizeMode - 1 - Type - Perspectives - UpdateMessage - The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? - WindowJustification - 5 - WindowOrderList - - 1C78EAAD065D492600B07095 - 1CD10A99069EF8BA00B06720 - 0423A899107E3D7D00D5DD6E - /Users/stijn/Downloads/AnimatedGifExample/AnimatedGifExample.xcodeproj - - WindowString - 716 238 1503 901 0 0 2560 1578 - WindowToolsV3 - - - FirstTimeWindowDisplayed - - Identifier - windowTool.build - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528F0623707200166675 - PBXProjectModuleLabel - - StatusBarVisibility - - - GeometryConfiguration - - Frame - {{0, 0}, {500, 218}} - RubberWindowFrame - 889 628 500 500 0 0 2560 1578 - - Module - PBXNavigatorGroup - Proportion - 218pt - - - ContentConfiguration - - PBXProjectModuleGUID - XCMainBuildResultsModuleGUID - PBXProjectModuleLabel - Build - XCBuildResultsTrigger_Collapse - 1021 - XCBuildResultsTrigger_Open - 1011 - - GeometryConfiguration - - Frame - {{0, 223}, {500, 236}} - RubberWindowFrame - 889 628 500 500 0 0 2560 1578 - - Module - PBXBuildResultsModule - Proportion - 236pt - - - Proportion - 459pt - - - Name - Build Results - ServiceClasses - - PBXBuildResultsModule - - StatusbarIsVisible - - TableOfContents - - 0423A899107E3D7D00D5DD6E - 0423A89A107E3D7D00D5DD6E - 1CD0528F0623707200166675 - XCMainBuildResultsModuleGUID - - ToolbarConfiguration - xcode.toolbar.config.buildV3 - WindowString - 889 628 500 500 0 0 2560 1578 - WindowToolGUID - 0423A899107E3D7D00D5DD6E - WindowToolIsVisible - - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debugger - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - Debugger - - HorizontalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {316, 185}} - {{316, 0}, {378, 185}} - - - VerticalSplitView - - _collapsingFrameDimension - 0.0 - _indexOfCollapsedView - 0 - _percentageOfCollapsedView - 0.0 - isCollapsed - yes - sizes - - {{0, 0}, {694, 185}} - {{0, 185}, {694, 196}} - - - - LauncherConfigVersion - 8 - PBXProjectModuleGUID - 1C162984064C10D400B95A72 - PBXProjectModuleLabel - Debug - GLUTExamples (Underwater) - - GeometryConfiguration - - DebugConsoleVisible - None - DebugConsoleWindowFrame - {{200, 200}, {500, 300}} - DebugSTDIOWindowFrame - {{200, 200}, {500, 300}} - Frame - {{0, 0}, {694, 381}} - PBXDebugSessionStackFrameViewKey - - DebugVariablesTableConfiguration - - Name - 120 - Value - 85 - Summary - 148 - - Frame - {{316, 0}, {378, 185}} - RubberWindowFrame - 889 706 694 422 0 0 2560 1578 - - RubberWindowFrame - 889 706 694 422 0 0 2560 1578 - - Module - PBXDebugSessionModule - Proportion - 381pt - - - Proportion - 381pt - - - Name - Debugger - ServiceClasses - - PBXDebugSessionModule - - StatusbarIsVisible - - TableOfContents - - 1CD10A99069EF8BA00B06720 - 0423A89B107E3D7D00D5DD6E - 1C162984064C10D400B95A72 - 0423A89C107E3D7D00D5DD6E - 0423A89D107E3D7D00D5DD6E - 0423A89E107E3D7D00D5DD6E - 0423A89F107E3D7D00D5DD6E - 0423A8A0107E3D7D00D5DD6E - - ToolbarConfiguration - xcode.toolbar.config.debugV3 - WindowString - 889 706 694 422 0 0 2560 1578 - WindowToolGUID - 1CD10A99069EF8BA00B06720 - WindowToolIsVisible - - - - Identifier - windowTool.find - Layout - - - Dock - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1CDD528C0622207200134675 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1CD0528D0623707200166675 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {781, 167}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXNavigatorGroup - Proportion - 781pt - - - Proportion - 50% - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD0528E0623707200166675 - PBXProjectModuleLabel - Project Find - - GeometryConfiguration - - Frame - {{8, 0}, {773, 254}} - RubberWindowFrame - 62 385 781 470 0 0 1440 878 - - Module - PBXProjectFindModule - Proportion - 50% - - - Proportion - 428pt - - - Name - Project Find - ServiceClasses - - PBXProjectFindModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C530D57069F1CE1000CFCEE - 1C530D58069F1CE1000CFCEE - 1C530D59069F1CE1000CFCEE - 1CDD528C0622207200134675 - 1C530D5A069F1CE1000CFCEE - 1CE0B1FE06471DED0097A5F4 - 1CD0528E0623707200166675 - - WindowString - 62 385 781 470 0 0 1440 878 - WindowToolGUID - 1C530D57069F1CE1000CFCEE - WindowToolIsVisible - 0 - - - Identifier - MENUSEPARATOR - - - FirstTimeWindowDisplayed - - Identifier - windowTool.debuggerConsole - IsVertical - - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAAC065D492600B07095 - PBXProjectModuleLabel - Debugger Console - - GeometryConfiguration - - Frame - {{0, 0}, {650, 209}} - RubberWindowFrame - 889 878 650 250 0 0 2560 1578 - - Module - PBXDebugCLIModule - Proportion - 209pt - - - Proportion - 209pt - - - Name - Debugger Console - ServiceClasses - - PBXDebugCLIModule - - StatusbarIsVisible - - TableOfContents - - 1C78EAAD065D492600B07095 - 0423A8A1107E3D7D00D5DD6E - 1C78EAAC065D492600B07095 - - ToolbarConfiguration - xcode.toolbar.config.consoleV3 - WindowString - 889 878 650 250 0 0 2560 1578 - WindowToolGUID - 1C78EAAD065D492600B07095 - WindowToolIsVisible - - - - Identifier - windowTool.snapshots - Layout - - - Dock - - - Module - XCSnapshotModule - Proportion - 100% - - - Proportion - 100% - - - Name - Snapshots - ServiceClasses - - XCSnapshotModule - - StatusbarIsVisible - Yes - ToolbarConfiguration - xcode.toolbar.config.snapshots - WindowString - 315 824 300 550 0 0 1440 878 - WindowToolIsVisible - Yes - - - Identifier - windowTool.scm - Layout - - - Dock - - - ContentConfiguration - - PBXProjectModuleGUID - 1C78EAB2065D492600B07095 - PBXProjectModuleLabel - <No Editor> - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 1C78EAB3065D492600B07095 - - SplitCount - 1 - - StatusBarVisibility - 1 - - GeometryConfiguration - - Frame - {{0, 0}, {452, 0}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - - Module - PBXNavigatorGroup - Proportion - 0pt - - - BecomeActive - 1 - ContentConfiguration - - PBXProjectModuleGUID - 1CD052920623707200166675 - PBXProjectModuleLabel - SCM - - GeometryConfiguration - - ConsoleFrame - {{0, 259}, {452, 0}} - Frame - {{0, 7}, {452, 259}} - RubberWindowFrame - 743 379 452 308 0 0 1280 1002 - TableConfiguration - - Status - 30 - FileName - 199 - Path - 197.0950012207031 - - TableFrame - {{0, 0}, {452, 250}} - - Module - PBXCVSModule - Proportion - 262pt - - - Proportion - 266pt - - - Name - SCM - ServiceClasses - - PBXCVSModule - - StatusbarIsVisible - 1 - TableOfContents - - 1C78EAB4065D492600B07095 - 1C78EAB5065D492600B07095 - 1C78EAB2065D492600B07095 - 1CD052920623707200166675 - - ToolbarConfiguration - xcode.toolbar.config.scm - WindowString - 743 379 452 308 0 0 1280 1002 - - - Identifier - windowTool.breakpoints - IsVertical - 0 - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - PBXBottomSmartGroupGIDs - - 1C77FABC04509CD000000102 - - PBXProjectModuleGUID - 1CE0B1FE06471DED0097A5F4 - PBXProjectModuleLabel - Files - PBXProjectStructureProvided - no - PBXSmartGroupTreeModuleColumnData - - PBXSmartGroupTreeModuleColumnWidthsKey - - 168 - - PBXSmartGroupTreeModuleColumnsKey_v4 - - MainColumn - - - PBXSmartGroupTreeModuleOutlineStateKey_v7 - - PBXSmartGroupTreeModuleOutlineStateExpansionKey - - 1C77FABC04509CD000000102 - - PBXSmartGroupTreeModuleOutlineStateSelectionKey - - - 0 - - - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {168, 350}} - - PBXTopSmartGroupGIDs - - XCIncludePerspectivesSwitch - 0 - - GeometryConfiguration - - Frame - {{0, 0}, {185, 368}} - GroupTreeTableConfiguration - - MainColumn - 168 - - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - PBXSmartGroupTreeModule - Proportion - 185pt - - - ContentConfiguration - - PBXProjectModuleGUID - 1CA1AED706398EBD00589147 - PBXProjectModuleLabel - Detail - - GeometryConfiguration - - Frame - {{190, 0}, {554, 368}} - RubberWindowFrame - 315 424 744 409 0 0 1440 878 - - Module - XCDetailModule - Proportion - 554pt - - - Proportion - 368pt - - - MajorVersion - 3 - MinorVersion - 0 - Name - Breakpoints - ServiceClasses - - PBXSmartGroupTreeModule - XCDetailModule - - StatusbarIsVisible - 1 - TableOfContents - - 1CDDB66807F98D9800BB5817 - 1CDDB66907F98D9800BB5817 - 1CE0B1FE06471DED0097A5F4 - 1CA1AED706398EBD00589147 - - ToolbarConfiguration - xcode.toolbar.config.breakpointsV3 - WindowString - 315 424 744 409 0 0 1440 878 - WindowToolGUID - 1CDDB66807F98D9800BB5817 - WindowToolIsVisible - 1 - - - Identifier - windowTool.debugAnimator - Layout - - - Dock - - - Module - PBXNavigatorGroup - Proportion - 100% - - - Proportion - 100% - - - Name - Debug Visualizer - ServiceClasses - - PBXNavigatorGroup - - StatusbarIsVisible - 1 - ToolbarConfiguration - xcode.toolbar.config.debugAnimatorV3 - WindowString - 100 100 700 500 0 0 1280 1002 - - - Identifier - windowTool.bookmarks - Layout - - - Dock - - - Module - PBXBookmarksModule - Proportion - 100% - - - Proportion - 100% - - - Name - Bookmarks - ServiceClasses - - PBXBookmarksModule - - StatusbarIsVisible - 0 - WindowString - 538 42 401 187 0 0 1280 1002 - - - Identifier - windowTool.projectFormatConflicts - Layout - - - Dock - - - Module - XCProjectFormatConflictsModule - Proportion - 100% - - - Proportion - 100% - - - Name - Project Format Conflicts - ServiceClasses - - XCProjectFormatConflictsModule - - StatusbarIsVisible - 0 - WindowContentMinSize - 450 300 - WindowString - 50 850 472 307 0 0 1440 877 - - - Identifier - windowTool.classBrowser - Layout - - - Dock - - - BecomeActive - 1 - ContentConfiguration - - OptionsSetName - Hierarchy, all classes - PBXProjectModuleGUID - 1CA6456E063B45B4001379D8 - PBXProjectModuleLabel - Class Browser - NSObject - - GeometryConfiguration - - ClassesFrame - {{0, 0}, {374, 96}} - ClassesTreeTableConfiguration - - PBXClassNameColumnIdentifier - 208 - PBXClassBookColumnIdentifier - 22 - - Frame - {{0, 0}, {630, 331}} - MembersFrame - {{0, 105}, {374, 395}} - MembersTreeTableConfiguration - - PBXMemberTypeIconColumnIdentifier - 22 - PBXMemberNameColumnIdentifier - 216 - PBXMemberTypeColumnIdentifier - 97 - PBXMemberBookColumnIdentifier - 22 - - PBXModuleWindowStatusBarHidden2 - 1 - RubberWindowFrame - 385 179 630 352 0 0 1440 878 - - Module - PBXClassBrowserModule - Proportion - 332pt - - - Proportion - 332pt - - - Name - Class Browser - ServiceClasses - - PBXClassBrowserModule - - StatusbarIsVisible - 0 - TableOfContents - - 1C0AD2AF069F1E9B00FABCE6 - 1C0AD2B0069F1E9B00FABCE6 - 1CA6456E063B45B4001379D8 - - ToolbarConfiguration - xcode.toolbar.config.classbrowser - WindowString - 385 179 630 352 0 0 1440 878 - WindowToolGUID - 1C0AD2AF069F1E9B00FABCE6 - WindowToolIsVisible - 0 - - - Identifier - windowTool.refactoring - IncludeInToolsMenu - 0 - Layout - - - Dock - - - BecomeActive - 1 - GeometryConfiguration - - Frame - {0, 0}, {500, 335} - RubberWindowFrame - {0, 0}, {500, 335} - - Module - XCRefactoringModule - Proportion - 100% - - - Proportion - 100% - - - Name - Refactoring - ServiceClasses - - XCRefactoringModule - - WindowString - 200 200 500 356 0 0 1920 1200 - - - - diff --git a/AnimatedGifExample.xcodeproj/stijn.pbxuser b/AnimatedGifExample.xcodeproj/stijn.pbxuser deleted file mode 100644 index 1789c0b..0000000 --- a/AnimatedGifExample.xcodeproj/stijn.pbxuser +++ /dev/null @@ -1,175 +0,0 @@ -// !$*UTF8*$! -{ - 0423A87E107E3CD100D5DD6E /* AnimatedGifExample */ = { - isa = PBXExecutable; - activeArgIndices = ( - ); - argumentStrings = ( - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 0; - configStateDict = { - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 1; - environmentEntries = ( - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = AnimatedGifExample; - sourceDirectories = ( - ); - }; - 0423A88A107E3CD200D5DD6E /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - }; - }; - 0423A88B107E3CD200D5DD6E /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 0423A892107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93DF1000E1E800162DEF /* AnimatedGif.h */; - name = "AnimatedGif.h: 4"; - rLen = 74; - rLoc = 24; - rType = 0; - vrLen = 1468; - vrLoc = 0; - }; - 0423A893107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - name = "AnimatedGif.m: 1"; - rLen = 1052; - rLoc = 0; - rType = 0; - vrLen = 1479; - vrLoc = 0; - }; - 0423A894107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - name = "AnimatedGif.m: 18"; - rLen = 70; - rLoc = 531; - rType = 0; - vrLen = 1479; - vrLoc = 0; - }; - 0423A895107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93DF1000E1E800162DEF /* AnimatedGif.h */; - name = "AnimatedGif.h: 11"; - rLen = 0; - rLoc = 19; - rType = 0; - vrLen = 1208; - vrLoc = 0; - }; - 0423A896107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - name = "AnimatedGif.m: 1"; - rLen = 1052; - rLoc = 0; - rType = 0; - vrLen = 1479; - vrLoc = 0; - }; - 0423A897107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93DF1000E1E800162DEF /* AnimatedGif.h */; - name = "AnimatedGif.h: 4"; - rLen = 74; - rLoc = 24; - rType = 0; - vrLen = 1468; - vrLoc = 0; - }; - 0423A898107E3D7D00D5DD6E /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = BCFF93E01000E1E800162DEF /* AnimatedGif.m */; - name = "AnimatedGif.m: 16"; - rLen = 0; - rLoc = 527; - rType = 0; - vrLen = 1481; - vrLoc = 0; - }; - 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */ = { - activeExec = 0; - executables = ( - 0423A87E107E3CD100D5DD6E /* AnimatedGifExample */, - ); - }; - 29B97313FDCFA39411CA2CEA /* Project object */ = { - activeBuildConfigurationName = Debug; - activeExecutable = 0423A87E107E3CD100D5DD6E /* AnimatedGifExample */; - activeTarget = 1D6058900D05DD3D006BFB54 /* AnimatedGifExample */; - codeSenseManager = 0423A88B107E3CD200D5DD6E /* Code sense */; - executables = ( - 0423A87E107E3CD100D5DD6E /* AnimatedGifExample */, - ); - perUserDictionary = { - PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { - PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; - PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; - PBXFileTableDataSourceColumnWidthsKey = ( - 20, - 1056, - 20, - 48.16259765625, - 43, - 43, - 20, - ); - PBXFileTableDataSourceColumnsKey = ( - PBXFileDataSource_FiletypeID, - PBXFileDataSource_Filename_ColumnID, - PBXFileDataSource_Built_ColumnID, - PBXFileDataSource_ObjectSize_ColumnID, - PBXFileDataSource_Errors_ColumnID, - PBXFileDataSource_Warnings_ColumnID, - PBXFileDataSource_Target_ColumnID, - ); - }; - PBXPerProjectTemplateStateSaveDate = 276708561; - PBXWorkspaceStateSaveDate = 276708561; - }; - perUserProjectItems = { - 0423A892107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A892107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A893107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A893107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A894107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A894107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A895107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A895107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A896107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A896107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A897107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A897107E3D7D00D5DD6E /* PBXTextBookmark */; - 0423A898107E3D7D00D5DD6E /* PBXTextBookmark */ = 0423A898107E3D7D00D5DD6E /* PBXTextBookmark */; - }; - sourceControlManager = 0423A88A107E3CD200D5DD6E /* Source Control */; - userBuildSettings = { - }; - }; - BCFF93DF1000E1E800162DEF /* AnimatedGif.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1234, 966}}"; - sepNavSelRange = "{24, 74}"; - sepNavVisRange = "{0, 1468}"; - }; - }; - BCFF93E01000E1E800162DEF /* AnimatedGif.m */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1234, 4900}}"; - sepNavSelRange = "{527, 0}"; - sepNavVisRange = "{0, 1481}"; - }; - }; -} diff --git a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist deleted file mode 100644 index 0f6f2fc..0000000 --- a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/AnimatedGifExample.xcscheme b/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/AnimatedGifExample.xcscheme deleted file mode 100644 index efe2222..0000000 --- a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/AnimatedGifExample.xcscheme +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/xcschememanagement.plist b/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 9bbe3e9..0000000 --- a/AnimatedGifExample.xcodeproj/xcuserdata/agutierrez.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - SchemeUserState - - AnimatedGifExample.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 1D6058900D05DD3D006BFB54 - - primary - - - - - diff --git a/AnimatedGifExampleViewController.xib b/AnimatedGifExampleViewController.xib deleted file mode 100644 index 2312bbe..0000000 --- a/AnimatedGifExampleViewController.xib +++ /dev/null @@ -1,347 +0,0 @@ - - - - 768 - 10J567 - 1305 - 1038.35 - 462.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 300 - - - YES - IBProxyObject - IBUIView - IBUIImageView - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - - - YES - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - - YES - - - 301 - {{20, 0}, {108, 141}} - - - - NO - NO - 4 - NO - IBCocoaTouchFramework - - - - 292 - {{158, 16}, {115, 110}} - - - - NO - IBCocoaTouchFramework - - - - 292 - {{0, 232}, {100, 100}} - - - - NO - IBCocoaTouchFramework - - - - 292 - {{110, 340}, {100, 100}} - - - - NO - IBCocoaTouchFramework - - - - 292 - {{220, 232}, {100, 100}} - - - NO - IBCocoaTouchFramework - - - {320, 460} - - - - - 1 - MC4xMzU4Njk1NiAwLjEzNTg2OTU2IDAuMTM1ODY5NTYAA - - NO - IBCocoaTouchFramework - - - - - YES - - - view - - - - 7 - - - - ivOne - - - - 29 - - - - ivTwo - - - - 30 - - - - ivThree - - - - 31 - - - - ivFour - - - - 32 - - - - ivFive - - - - 33 - - - - - YES - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 6 - - - YES - - - - - - - - - - 19 - - - - - 22 - - - - - 23 - - - - - 27 - - - - - 28 - - - - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 19.IBPluginDependency - 22.IBPluginDependency - 23.IBPluginDependency - 27.IBPluginDependency - 28.IBPluginDependency - 6.IBEditorWindowLastContentRect - 6.IBPluginDependency - - - YES - AnimatedGifExampleViewController - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{687, 244}, {320, 460}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - - - - YES - - - - - 33 - - - - YES - - AnimatedGifExampleViewController - UIViewController - - YES - - YES - ivFive - ivFour - ivOne - ivThree - ivTwo - - - YES - UIImageView - UIImageView - UIImageView - UIImageView - UIImageView - - - - YES - - YES - ivFive - ivFour - ivOne - ivThree - ivTwo - - - YES - - ivFive - UIImageView - - - ivFour - UIImageView - - - ivOne - UIImageView - - - ivThree - UIImageView - - - ivTwo - UIImageView - - - - - IBProjectSource - ./Classes/AnimatedGifExampleViewController.h - - - - - 0 - IBCocoaTouchFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - 3 - 300 - - diff --git a/AnimatedGifExample_Prefix.pch b/AnimatedGifExample_Prefix.pch deleted file mode 100644 index 9cceb50..0000000 --- a/AnimatedGifExample_Prefix.pch +++ /dev/null @@ -1,8 +0,0 @@ -// -// Prefix header for all source files of the 'AnimatedGifExample' target in the 'AnimatedGifExample' project -// - -#ifdef __OBJC__ - #import - #import -#endif diff --git a/Classes/.DS_Store b/Classes/.DS_Store deleted file mode 100644 index 5008ddf..0000000 Binary files a/Classes/.DS_Store and /dev/null differ diff --git a/Classes/AnimatedGif.h b/Classes/AnimatedGif.h deleted file mode 100644 index 9ab8dd2..0000000 --- a/Classes/AnimatedGif.h +++ /dev/null @@ -1,102 +0,0 @@ -// -// AnimatedGif.m -// -// Created by Stijn Spijker (http://www.stijnspijker.nl/) on 2009-07-03. -// Based on gifdecode written april 2009 by Martin van Spanje, P-Edge media. -// -// Changes on gifdecode: -// - Small optimizations (mainly arrays) -// - Object Orientated Approach (Class Methods as well as Object Methods) -// - Added the Graphic Control Extension Frame for transparancy -// - Changed header to GIF89a -// - Added methods for ease-of-use -// - Added animations with transparancy -// - No need to save frames to the filesystem anymore -// -// Changelog: -// -// 2010-03-16: Added queing mechanism for static class use -// 2010-01-24: Rework of the entire module, adding static methods, better memory management and URL asynchronous loading -// 2009-10-08: Added dealloc method, and removed leaks, by Pedro Silva -// 2009-08-10: Fixed double release for array, by Christian Garbers -// 2009-06-05: Initial Version -// -// Permission is given to use this source code file, free of charge, in any -// project, commercial or otherwise, entirely at your risk, with the condition -// that any redistribution (in part or whole) of source code must retain -// this copyright and permission notice. Attribution in compiled projects is -// appreciated but not required. -// - -#ifdef TARGET_OS_IPHONE - #import -#else - #import -#endif //TARGET_OS_IPHONE - -@interface AnimatedGifFrame : NSObject -{ - NSData *data; - NSData *header; - double delay; - int disposalMethod; - CGRect area; -} - -@property (nonatomic, copy) NSData *header; -@property (nonatomic, copy) NSData *data; -@property (nonatomic) double delay; -@property (nonatomic) int disposalMethod; -@property (nonatomic) CGRect area; - -@end - -@interface AnimatedGifQueueObject : NSObject -{ - UIImageView *uiv; - NSURL *url; -} - -@property (nonatomic, retain) UIImageView *uiv; -@property (nonatomic, retain) NSURL *url; - -@end - - -@interface AnimatedGif : NSObject -{ - NSData *GIF_pointer; - NSMutableData *GIF_buffer; - NSMutableData *GIF_screen; - NSMutableData *GIF_global; - NSMutableArray *GIF_frames; - - NSMutableArray *imageQueue; - bool busyDecoding; - - int GIF_sorted; - int GIF_colorS; - int GIF_colorC; - int GIF_colorF; - int animatedGifDelay; - - int dataPointer; - - UIImageView *imageView; -} - -@property (nonatomic, retain) UIImageView* imageView; -@property bool busyDecoding; - -- (void) addToQueue: (AnimatedGifQueueObject *) agqo; -+ (UIImageView*) getAnimationForGifAtUrl: (NSURL *) animationUrl; -- (void) decodeGIF:(NSData *)GIF_Data; -- (void) GIFReadExtensions; -- (void) GIFReadDescriptor; -- (bool) GIFGetBytes:(int)length; -- (bool) GIFSkipBytes: (int) length; -- (NSData*) getFrameAsDataAtIndex:(int)index; -- (UIImage*) getFrameAsImageAtIndex:(int)index; -- (UIImageView*) getAnimation; - -@end \ No newline at end of file diff --git a/Classes/AnimatedGif.m b/Classes/AnimatedGif.m deleted file mode 100644 index 11935ac..0000000 --- a/Classes/AnimatedGif.m +++ /dev/null @@ -1,643 +0,0 @@ -// -// AnimatedGif.m -// -// Created by Stijn Spijker (http://www.stijnspijker.nl/) on 2009-07-03. -// Based on gifdecode written april 2009 by Martin van Spanje, P-Edge media. -// Modified by Shinya (https://github.com/kasatani/AnimatedGifExample) on 2010-05-20 -// Modified by Arturo Gutierrez to support Optimized Animate Gif with differentes Disposal Methods, 2011-03-12 -// -// Changes on gifdecode: -// - Small optimizations (mainly arrays) -// - Object Orientated Approach (Class Methods as well as Object Methods) -// - Added the Graphic Control Extension Frame for transparancy -// - Changed header to GIF89a -// - Added methods for ease-of-use -// - Added animations with transparancy -// - No need to save frames to the filesystem anymore -// -// Changelog: -// -// 2011-03-12: Support to Optimized Animated GIFs witch Disposal Methods: None, Restore and Background. -// 2010-03-16: Added queing mechanism for static class use -// 2010-01-24: Rework of the entire module, adding static methods, better memory management and URL asynchronous loading -// 2009-10-08: Added dealloc method, and removed leaks, by Pedro Silva -// 2009-08-10: Fixed double release for array, by Christian Garbers -// 2009-06-05: Initial Version -// -// Permission is given to use this source code file, free of charge, in any -// project, commercial or otherwise, entirely at your risk, with the condition -// that any redistribution (in part or whole) of source code must retain -// this copyright and permission notice. Attribution in compiled projects is -// appreciated but not required. -// - -#import "AnimatedGif.h" - -@implementation AnimatedGifFrame - -@synthesize data, delay, disposalMethod, area, header; - -- (void) dealloc -{ - [data release]; - [header release]; - [super dealloc]; -} - - -@end - -@implementation AnimatedGifQueueObject - -@synthesize uiv; -@synthesize url; - -@end - - -@implementation AnimatedGif - -static AnimatedGif * instance; - -@synthesize imageView; -@synthesize busyDecoding; - -+ (AnimatedGif *) sharedInstance -{ - if (instance == nil) - { - instance = [[AnimatedGif alloc] init]; - } - - return instance; -} - -+ (UIImageView *) getAnimationForGifAtUrl:(NSURL *)animationUrl -{ - - AnimatedGifQueueObject *agqo = [[AnimatedGifQueueObject alloc] init]; - [agqo setUiv: [[UIImageView alloc] init]]; // 2x retain, alloc and the property. - [[agqo uiv] autorelease]; // We expect the user to retain the return object. - [agqo setUrl: animationUrl]; // this object is only retained by the queueobject, which will be released when loading finishes - [[AnimatedGif sharedInstance] addToQueue: agqo]; - [agqo release]; - - if ([[AnimatedGif sharedInstance] busyDecoding] != YES) - { - [[AnimatedGif sharedInstance] setBusyDecoding: YES]; - - // Asynchronous loading for URL's, else the GUI won't appear until image is loaded. - [[AnimatedGif sharedInstance] performSelector:@selector(asynchronousLoading) withObject:nil afterDelay:0.0]; - } - - return [agqo uiv]; -} - -- (void) asynchronousLoading -{ - // While we have something in queue. - while ([imageQueue count] > 0) - { - NSData *data = [NSData dataWithContentsOfURL: [(AnimatedGifQueueObject *) [imageQueue objectAtIndex: 0] url]]; - imageView = [[imageQueue objectAtIndex: 0] uiv]; - [self decodeGIF: data]; - UIImageView *tempImageView = [self getAnimation]; - [imageView setImage: [tempImageView image]]; - [imageView sizeToFit]; - [imageView setAnimationImages: [tempImageView animationImages]]; - [imageView startAnimating]; - - [imageQueue removeObjectAtIndex:0]; - } - - busyDecoding = NO; -} - -- (void) addToQueue: (AnimatedGifQueueObject *) agqo -{ - [imageQueue addObject: agqo]; -} - -- (id) init -{ - if ((self = [super init])) - { - imageQueue = [[NSMutableArray alloc] init]; - } - - return self; -} - -// the decoder -// decodes GIF image data into separate frames -// based on the Wikipedia Documentation at: -// -// http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Example_.gif_file -// http://en.wikipedia.org/wiki/Graphics_Interchange_Format#Animated_.gif -// -- (void)decodeGIF:(NSData *)GIFData -{ - GIF_pointer = GIFData; - - if (GIF_buffer != nil) - { - [GIF_buffer release]; - } - - if (GIF_global != nil) - { - [GIF_global release]; - } - - if (GIF_screen != nil) - { - [GIF_screen release]; - } - - [GIF_frames release]; - - GIF_buffer = [[NSMutableData alloc] init]; - GIF_global = [[NSMutableData alloc] init]; - GIF_screen = [[NSMutableData alloc] init]; - GIF_frames = [[NSMutableArray alloc] init]; - - // Reset file counters to 0 - dataPointer = 0; - - [self GIFSkipBytes: 6]; // GIF89a, throw away - [self GIFGetBytes: 7]; // Logical Screen Descriptor - - // Deep copy - [GIF_screen setData: GIF_buffer]; - - // Copy the read bytes into a local buffer on the stack - // For easy byte access in the following lines. - int length = [GIF_buffer length]; - unsigned char aBuffer[length]; - [GIF_buffer getBytes:aBuffer length:length]; - - if (aBuffer[4] & 0x80) GIF_colorF = 1; else GIF_colorF = 0; - if (aBuffer[4] & 0x08) GIF_sorted = 1; else GIF_sorted = 0; - GIF_colorC = (aBuffer[4] & 0x07); - GIF_colorS = 2 << GIF_colorC; - - if (GIF_colorF == 1) - { - [self GIFGetBytes: (3 * GIF_colorS)]; - - // Deep copy - [GIF_global setData:GIF_buffer]; - } - - unsigned char bBuffer[1]; - while ([self GIFGetBytes:1] == YES) - { - [GIF_buffer getBytes:bBuffer length:1]; - - if (bBuffer[0] == 0x3B) - { // This is the end - break; - } - - switch (bBuffer[0]) - { - case 0x21: - // Graphic Control Extension (#n of n) - [self GIFReadExtensions]; - break; - case 0x2C: - // Image Descriptor (#n of n) - [self GIFReadDescriptor]; - break; - } - } - - // clean up stuff - [GIF_buffer release]; - GIF_buffer = nil; - - [GIF_screen release]; - GIF_screen = nil; - - [GIF_global release]; - GIF_global = nil; -} - -// -// Returns a subframe as NSMutableData. -// Returns nil when frame does not exist. -// -// Use this to write a subframe to the filesystems (cache etc); -- (NSData*) getFrameAsDataAtIndex:(int)index -{ - if (index < [GIF_frames count]) - { - return ((AnimatedGifFrame *)[GIF_frames objectAtIndex:index]).data; - } - else - { - return nil; - } -} - -// -// Returns a subframe as an autorelease UIImage. -// Returns nil when frame does not exist. -// -// Use this to put a subframe on your GUI. -- (UIImage*) getFrameAsImageAtIndex:(int)index -{ - NSData *frameData = [self getFrameAsDataAtIndex: index]; - UIImage *image = nil; - - if (frameData != nil) - { - image = [UIImage imageWithData:frameData]; - } - - return image; -} - -// -// This method converts the arrays of GIF data to an animation, counting -// up all the seperate frame delays, and setting that to the total duration -// since the iPhone Cocoa framework does not allow you to set per frame -// delays. -// -// Returns nil when there are no frames present in the GIF, or -// an autorelease UIImageView* with the animation. -- (UIImageView*) getAnimation -{ - if ([GIF_frames count] > 0) - { - if (imageView != nil) - { - // This sets up the frame etc for the UIImageView by using the first frame. - [imageView setImage:[self getFrameAsImageAtIndex:0]]; - [imageView sizeToFit]; - } - else - { - imageView = [[UIImageView alloc] initWithImage:[self getFrameAsImageAtIndex:0]]; - } - - - // Add all subframes to the animation - NSMutableArray *array = [[NSMutableArray alloc] init]; - for (int i = 0; i < [GIF_frames count]; i++) - { - [array addObject: [self getFrameAsImageAtIndex:i]]; - } - - NSMutableArray *overlayArray = [[NSMutableArray alloc] init]; - UIImage *firstImage = [array objectAtIndex:0]; - CGSize size = firstImage.size; - CGRect rect = CGRectZero; - rect.size = size; - - UIGraphicsBeginImageContext(size); - CGContextRef ctx = UIGraphicsGetCurrentContext(); - - int i = 0; - AnimatedGifFrame *lastFrame = nil; - for (UIImage *image in array) - { - // Get Frame - AnimatedGifFrame *frame = [GIF_frames objectAtIndex:i]; - - // Initialize Flag - UIImage *previousCanvas = nil; - - // Save Context - CGContextSaveGState(ctx); - // Change CTM - CGContextScaleCTM(ctx, 1.0, -1.0); - CGContextTranslateCTM(ctx, 0.0, -size.height); - - // Check if lastFrame exists - CGRect clipRect; - - // Disposal Method (Operations before draw frame) - switch (frame.disposalMethod) - { - case 1: // Do not dispose (draw over context) - // Create Rect (y inverted) to clipping - clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); - // Clip Context - CGContextClipToRect(ctx, clipRect); - break; - case 2: // Restore to background the rect when the actual frame will go to be drawed - // Create Rect (y inverted) to clipping - clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); - // Clip Context - CGContextClipToRect(ctx, clipRect); - break; - case 3: // Restore to Previous - // Get Canvas - previousCanvas = UIGraphicsGetImageFromCurrentImageContext(); - - // Create Rect (y inverted) to clipping - clipRect = CGRectMake(frame.area.origin.x, size.height - frame.area.size.height - frame.area.origin.y, frame.area.size.width, frame.area.size.height); - // Clip Context - CGContextClipToRect(ctx, clipRect); - break; - } - - // Draw Actual Frame - CGContextDrawImage(ctx, rect, image.CGImage); - // Restore State - CGContextRestoreGState(ctx); - // Add Image created (only if the delay > 0) - if (frame.delay > 0) - { - [overlayArray addObject:UIGraphicsGetImageFromCurrentImageContext()]; - } - // Set Last Frame - lastFrame = frame; - - // Disposal Method (Operations afte draw frame) - switch (frame.disposalMethod) - { - case 2: // Restore to background color the zone of the actual frame - // Save Context - CGContextSaveGState(ctx); - // Change CTM - CGContextScaleCTM(ctx, 1.0, -1.0); - CGContextTranslateCTM(ctx, 0.0, -size.height); - // Clear Context - CGContextClearRect(ctx, clipRect); - // Restore Context - CGContextRestoreGState(ctx); - break; - case 3: // Restore to Previous Canvas - // Save Context - CGContextSaveGState(ctx); - // Change CTM - CGContextScaleCTM(ctx, 1.0, -1.0); - CGContextTranslateCTM(ctx, 0.0, -size.height); - // Clear Context - CGContextClearRect(ctx, lastFrame.area); - // Draw previous frame - CGContextDrawImage(ctx, rect, previousCanvas.CGImage); - // Restore State - CGContextRestoreGState(ctx); - break; - } - - // Increment counter - i++; - } - UIGraphicsEndImageContext(); - - [imageView setAnimationImages:overlayArray]; - - [overlayArray release]; - [array release]; - - // Count up the total delay, since Cocoa doesn't do per frame delays. - double total = 0; - for (AnimatedGifFrame *frame in GIF_frames) { - total += frame.delay; - } - - // GIFs store the delays as 1/100th of a second, - // UIImageViews want it in seconds. - [imageView setAnimationDuration:total/100]; - - // Repeat infinite - [imageView setAnimationRepeatCount:0]; - - [imageView startAnimating]; - [[imageView retain] autorelease]; - - return imageView; - } - else - { - return nil; - } -} - -- (void)GIFReadExtensions -{ - // 21! But we still could have an Application Extension, - // so we want to check for the full signature. - unsigned char cur[1], prev[1]; - [self GIFGetBytes:1]; - [GIF_buffer getBytes:cur length:1]; - - while (cur[0] != 0x00) - { - - // TODO: Known bug, the sequence F9 04 could occur in the Application Extension, we - // should check whether this combo follows directly after the 21. - if (cur[0] == 0x04 && prev[0] == 0xF9) - { - [self GIFGetBytes:5]; - - AnimatedGifFrame *frame = [[AnimatedGifFrame alloc] init]; - - unsigned char buffer[5]; - [GIF_buffer getBytes:buffer length:5]; - frame.disposalMethod = (buffer[0] & 0x1c) >> 2; - //NSLog(@"flags=%x, dm=%x", (int)(buffer[0]), frame.disposalMethod); - - // We save the delays for easy access. - frame.delay = (buffer[1] | buffer[2] << 8); - - unsigned char board[8]; - board[0] = 0x21; - board[1] = 0xF9; - board[2] = 0x04; - - for(int i = 3, a = 0; a < 5; i++, a++) - { - board[i] = buffer[a]; - } - - frame.header = [NSData dataWithBytes:board length:8]; - - [GIF_frames addObject:frame]; - [frame release]; - break; - } - - prev[0] = cur[0]; - [self GIFGetBytes:1]; - [GIF_buffer getBytes:cur length:1]; - } -} - -- (void) GIFReadDescriptor -{ - [self GIFGetBytes:9]; - - // Deep copy - NSMutableData *GIF_screenTmp = [NSMutableData dataWithData:GIF_buffer]; - - unsigned char aBuffer[9]; - [GIF_buffer getBytes:aBuffer length:9]; - - CGRect rect; - rect.origin.x = ((int)aBuffer[1] << 8) | aBuffer[0]; - rect.origin.y = ((int)aBuffer[3] << 8) | aBuffer[2]; - rect.size.width = ((int)aBuffer[5] << 8) | aBuffer[4]; - rect.size.height = ((int)aBuffer[7] << 8) | aBuffer[6]; - - AnimatedGifFrame *frame = [GIF_frames lastObject]; - frame.area = rect; - - if (aBuffer[8] & 0x80) GIF_colorF = 1; else GIF_colorF = 0; - - unsigned char GIF_code = GIF_colorC, GIF_sort = GIF_sorted; - - if (GIF_colorF == 1) - { - GIF_code = (aBuffer[8] & 0x07); - - if (aBuffer[8] & 0x20) - { - GIF_sort = 1; - } - else - { - GIF_sort = 0; - } - } - - int GIF_size = (2 << GIF_code); - - size_t blength = [GIF_screen length]; - unsigned char bBuffer[blength]; - [GIF_screen getBytes:bBuffer length:blength]; - - bBuffer[4] = (bBuffer[4] & 0x70); - bBuffer[4] = (bBuffer[4] | 0x80); - bBuffer[4] = (bBuffer[4] | GIF_code); - - if (GIF_sort) - { - bBuffer[4] |= 0x08; - } - - NSMutableData *GIF_string = [NSMutableData dataWithData:[[NSString stringWithString:@"GIF89a"] dataUsingEncoding: NSUTF8StringEncoding]]; - [GIF_screen setData:[NSData dataWithBytes:bBuffer length:blength]]; - [GIF_string appendData: GIF_screen]; - - if (GIF_colorF == 1) - { - [self GIFGetBytes:(3 * GIF_size)]; - [GIF_string appendData:GIF_buffer]; - } - else - { - [GIF_string appendData:GIF_global]; - } - - // Add Graphic Control Extension Frame (for transparancy) - [GIF_string appendData:frame.header]; - - char endC = 0x2c; - [GIF_string appendBytes:&endC length:sizeof(endC)]; - - size_t clength = [GIF_screenTmp length]; - unsigned char cBuffer[clength]; - [GIF_screenTmp getBytes:cBuffer length:clength]; - - cBuffer[8] &= 0x40; - - [GIF_screenTmp setData:[NSData dataWithBytes:cBuffer length:clength]]; - - [GIF_string appendData: GIF_screenTmp]; - [self GIFGetBytes:1]; - [GIF_string appendData: GIF_buffer]; - - while (true) - { - [self GIFGetBytes:1]; - [GIF_string appendData: GIF_buffer]; - - unsigned char dBuffer[1]; - [GIF_buffer getBytes:dBuffer length:1]; - - long u = (long) dBuffer[0]; - - if (u != 0x00) - { - [self GIFGetBytes:u]; - [GIF_string appendData: GIF_buffer]; - } - else - { - break; - } - - } - - endC = 0x3b; - [GIF_string appendBytes:&endC length:sizeof(endC)]; - - // save the frame into the array of frames - frame.data = GIF_string; -} - -/* Puts (int) length into the GIF_buffer from file, returns whether read was succesfull */ -- (bool) GIFGetBytes: (int) length -{ - if (GIF_buffer != nil) - { - [GIF_buffer release]; // Release old buffer - GIF_buffer = nil; - } - - if ([GIF_pointer length] >= dataPointer + length) // Don't read across the edge of the file.. - { - GIF_buffer = [[GIF_pointer subdataWithRange:NSMakeRange(dataPointer, length)] retain]; - dataPointer += length; - return YES; - } - else - { - return NO; - } -} - -/* Skips (int) length bytes in the GIF, faster than reading them and throwing them away.. */ -- (bool) GIFSkipBytes: (int) length -{ - if ([GIF_pointer length] >= dataPointer + length) - { - dataPointer += length; - return YES; - } - else - { - return NO; - } - -} - -- (void) dealloc -{ - if (GIF_buffer != nil) - { - [GIF_buffer release]; - } - - if (GIF_screen != nil) - { - [GIF_screen release]; - } - - if (GIF_global != nil) - { - [GIF_global release]; - } - - [GIF_frames release]; - - [imageView release]; - - [super dealloc]; -} -@end \ No newline at end of file diff --git a/Classes/AnimatedGifExampleAppDelegate.h b/Classes/AnimatedGifExampleAppDelegate.h deleted file mode 100644 index 1bbd228..0000000 --- a/Classes/AnimatedGifExampleAppDelegate.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// AnimatedGifExampleAppDelegate.h -// AnimatedGifExample -// -// Created by Stijn Spijker on 05-07-09. -// Copyright __MyCompanyName__ 2009. All rights reserved. -// - -#import - -@class AnimatedGifExampleViewController; - -@interface AnimatedGifExampleAppDelegate : NSObject { - UIWindow *window; - AnimatedGifExampleViewController *viewController; -} - -@property (nonatomic, retain) IBOutlet UIWindow *window; -@property (nonatomic, retain) IBOutlet AnimatedGifExampleViewController *viewController; - -@end - diff --git a/Classes/AnimatedGifExampleAppDelegate.m b/Classes/AnimatedGifExampleAppDelegate.m deleted file mode 100644 index 1a03184..0000000 --- a/Classes/AnimatedGifExampleAppDelegate.m +++ /dev/null @@ -1,33 +0,0 @@ -// -// AnimatedGifExampleAppDelegate.m -// AnimatedGifExample -// -// Created by Stijn Spijker on 05-07-09. -// Copyright __MyCompanyName__ 2009. All rights reserved. -// - -#import "AnimatedGifExampleAppDelegate.h" -#import "AnimatedGifExampleViewController.h" - -@implementation AnimatedGifExampleAppDelegate - -@synthesize window; -@synthesize viewController; - - -- (void)applicationDidFinishLaunching:(UIApplication *)application { - - // Override point for customization after app launch - [window addSubview:viewController.view]; - [window makeKeyAndVisible]; -} - - -- (void)dealloc { - [viewController release]; - [window release]; - [super dealloc]; -} - - -@end diff --git a/Classes/AnimatedGifExampleViewController.h b/Classes/AnimatedGifExampleViewController.h deleted file mode 100644 index ac0a1ef..0000000 --- a/Classes/AnimatedGifExampleViewController.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// AnimatedGifExampleViewController.h -// AnimatedGifExample -// -// Created by Stijn Spijker on 05-07-09. -// Copyright __MyCompanyName__ 2009. All rights reserved. -// - -#import -#import "AnimatedGif.h" - -@interface AnimatedGifExampleViewController : UIViewController { - - IBOutlet UIImageView *ivOne, *ivTwo, *ivThree, *ivFour, *ivFive; - -} - -@end - diff --git a/Classes/AnimatedGifExampleViewController.m b/Classes/AnimatedGifExampleViewController.m deleted file mode 100644 index 51d3aed..0000000 --- a/Classes/AnimatedGifExampleViewController.m +++ /dev/null @@ -1,53 +0,0 @@ -// -// AnimatedGifExampleViewController.m -// AnimatedGifExample -// -// Created by Stijn Spijker on 05-07-09. -// Copyright __MyCompanyName__ 2009. All rights reserved. -// - -#import "AnimatedGifExampleViewController.h" - -@implementation AnimatedGifExampleViewController - -// -// viewDidLoad -// -// Get's the animated gif, and places it on the view. -// -- (void)viewDidLoad -{ - [super viewDidLoad]; - - // First example (Optimizied gif restoring background) - NSURL * firstUrl = [NSURL URLWithString:@"http://www.gifs.net/Animation11/Food_and_Drinks/Fruits/Apple_jumps.gif"]; - UIImageView * firstAnimation = [AnimatedGif getAnimationForGifAtUrl: firstUrl]; - - // Second example (Optimizied Gif), through HTTP - NSURL * secondUrl = [NSURL URLWithString:@"http://www.allweb.it/images/4_Humor/emoticon_3d/emoticon_3d_53.gif"]; - UIImageView * secondAnimation = [AnimatedGif getAnimationForGifAtUrl: secondUrl]; - - // Third example (Disposal Method None) - UIImageView * disposalNoneAnimation = [AnimatedGif getAnimationForGifAtUrl: [NSURL URLWithString:@"http://www.imagemagick.org/Usage/anim_basics/anim_none.gif"]]; - - // Third example (Disposal Method Previous) - UIImageView * disposalPrevAnimation = [AnimatedGif getAnimationForGifAtUrl: [NSURL URLWithString:@"http://www.imagemagick.org/Usage/anim_basics/canvas_prev.gif"]]; - - // Third example (Disposal Method Background) - UIImageView * disposalBgAnimation = [AnimatedGif getAnimationForGifAtUrl: [NSURL URLWithString:@"http://www.imagemagick.org/Usage/anim_basics/anim_bgnd.gif"]]; - - // Add them to the view. - [ivOne addSubview:firstAnimation]; - [ivTwo addSubview:secondAnimation]; - [ivThree addSubview:disposalNoneAnimation]; - [ivFour addSubview:disposalPrevAnimation]; - [ivFive addSubview:disposalBgAnimation]; -} - -- (void)didReceiveMemoryWarning { - // Releases the view if it doesn't have a superview. - - [super didReceiveMemoryWarning]; -} - -@end diff --git a/Example/1.gif b/Example/1.gif new file mode 100644 index 0000000..de0d7f1 Binary files /dev/null and b/Example/1.gif differ diff --git a/Example/2.gif b/Example/2.gif new file mode 100644 index 0000000..0de7760 Binary files /dev/null and b/Example/2.gif differ diff --git a/Example/3.gif b/Example/3.gif new file mode 100644 index 0000000..e6316df Binary files /dev/null and b/Example/3.gif differ diff --git a/Example/4.gif b/Example/4.gif new file mode 100644 index 0000000..5f0ce20 Binary files /dev/null and b/Example/4.gif differ diff --git a/Example/5.gif b/Example/5.gif new file mode 100644 index 0000000..c427871 Binary files /dev/null and b/Example/5.gif differ diff --git a/Example/6.gif b/Example/6.gif new file mode 100644 index 0000000..fcc31e3 Binary files /dev/null and b/Example/6.gif differ diff --git a/AnimatedGifExample-Info.plist b/Example/AnimatedGifExample-Info.plist similarity index 81% rename from AnimatedGifExample-Info.plist rename to Example/AnimatedGifExample-Info.plist index 3289444..14a3f81 100644 --- a/AnimatedGifExample-Info.plist +++ b/Example/AnimatedGifExample-Info.plist @@ -8,10 +8,12 @@ ${PRODUCT_NAME} CFBundleExecutable ${EXECUTABLE_NAME} - CFBundleIconFile - + CFBundleIcons + + CFBundleIcons~ipad + CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + com.vk.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -24,7 +26,5 @@ 1.0 LSRequiresIPhoneOS - NSMainNibFile - MainWindow diff --git a/Example/AnimatedGifExample/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/AnimatedGifExample/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..afff8c0 --- /dev/null +++ b/Example/AnimatedGifExample/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,43 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/AnimatedGifExample/Images.xcassets/LaunchImage.launchimage/Contents.json b/Example/AnimatedGifExample/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000..0b4b945 --- /dev/null +++ b/Example/AnimatedGifExample/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,37 @@ +{ + "images" : [ + { + "orientation" : "portrait", + "idiom" : "iphone", + "minimum-system-version" : "7.0", + "subtype" : "retina4", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "scale" : "1x", + "orientation" : "portrait" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "orientation" : "portrait" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "subtype" : "retina4", + "scale" : "2x" + }, + { + "orientation" : "portrait", + "idiom" : "iphone", + "minimum-system-version" : "7.0", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/AnimatedGifExampleAppDelegate.h b/Example/AnimatedGifExampleAppDelegate.h new file mode 100644 index 0000000..67b3c9d --- /dev/null +++ b/Example/AnimatedGifExampleAppDelegate.h @@ -0,0 +1,29 @@ +// +// AnimatedGifExampleAppDelegate.h +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import + +@interface AnimatedGifExampleAppDelegate : NSObject + +@end + diff --git a/Example/AnimatedGifExampleAppDelegate.m b/Example/AnimatedGifExampleAppDelegate.m new file mode 100644 index 0000000..e3c657c --- /dev/null +++ b/Example/AnimatedGifExampleAppDelegate.m @@ -0,0 +1,47 @@ +// +// AnimatedGifExampleAppDelegate.m +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import "AnimatedGifExampleAppDelegate.h" +#import "AnimatedGifExampleViewController.h" + +@interface AnimatedGifExampleAppDelegate() +@property (nonatomic, strong) UIWindow *mainWindow; +@property (nonatomic, strong) AnimatedGifExampleViewController *viewController; + +@end + +@implementation AnimatedGifExampleAppDelegate + +- (void)applicationDidFinishLaunching:(UIApplication *)application { + self.mainWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + self.viewController = [[AnimatedGifExampleViewController alloc] init]; + + // Override point for customization after app launch + [self.mainWindow addSubview:self.viewController.view]; + [self.mainWindow makeKeyAndVisible]; + [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; +} + + +@end diff --git a/Example/AnimatedGifExampleViewController.h b/Example/AnimatedGifExampleViewController.h new file mode 100644 index 0000000..0e58999 --- /dev/null +++ b/Example/AnimatedGifExampleViewController.h @@ -0,0 +1,29 @@ +// +// AnimatedGifExampleViewController.h +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import "AnimatedGif.h" + +@interface AnimatedGifExampleViewController : UIViewController +@end + diff --git a/Example/AnimatedGifExampleViewController.m b/Example/AnimatedGifExampleViewController.m new file mode 100644 index 0000000..b0b8232 --- /dev/null +++ b/Example/AnimatedGifExampleViewController.m @@ -0,0 +1,114 @@ +// +// AnimatedGifExampleViewController.m +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import "AnimatedGifExampleViewController.h" +#import "UIImageView+AnimatedGif.h" + +@interface AnimatedGifExampleViewController() +@property (nonatomic, strong) IBOutlet UIScrollView *gifScroll; +@property (nonatomic, strong) IBOutlet UIView * buttons; +@property (nonatomic, strong) IBOutlet UIProgressView * progressView; +@property (nonatomic, strong) NSMutableArray *animations; +@end + +@implementation AnimatedGifExampleViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + [self makeClear:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatedGifDidStart:) name:AnimatedGifDidStartLoadingingEvent object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatedGifDidFinish:) name:AnimatedGifDidFinishLoadingingEvent object:nil]; + [self addAnimationWithURL:[NSURL URLWithString:@"http://s6.pikabu.ru/post_img/2014/04/07/6/1396854652_1659897712.gif"]]; +} + +-(IBAction) makeClear:(id)sender { + for (UIView * v in self.gifScroll.subviews) { + [v removeFromSuperview]; + } + _animations = [NSMutableArray new]; +} +-(IBAction)addMore:(id)sender { + static int animationNum = 0; + if (++animationNum > 6) { + animationNum = 1; + } +// NSData * animationData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource: ofType:nil]]; + NSURL *url = [[NSBundle mainBundle] URLForResource:[NSString stringWithFormat:@"%d",animationNum] withExtension:@"gif"]; + [self addAnimationWithURL:url]; +} + +- (void)addAnimationWithURL:(NSURL*) url { + AnimatedGif * animation = [AnimatedGif getAnimationForGifAtUrl:url]; + animation.delegate = self; + + UIView *lastView = self.animations.lastObject; + UIImageView * newImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, CGRectGetMaxY(lastView.frame), 300, 200)]; + [newImageView setAnimatedGif:animation startImmediately:YES]; + [animation setLoadingProgressBlock:^(AnimatedGif *obj, CGFloat progress) { + _progressView.progress = progress; + }]; + [animation setWillShowFrameBlock:^(AnimatedGif *gif, UIImage *img) { + _progressView.hidden = YES; + CGSize gifSize = img.size; + if (gifSize.width > 300) { + CGFloat ratio = 300 / gifSize.width; + gifSize.width = 300; + gifSize.height = roundf(gifSize.height * ratio); + } + CGRect frame = newImageView.frame; + frame.size = gifSize; + newImageView.frame = frame; + self.gifScroll.contentSize = CGSizeMake(320, CGRectGetMaxY(newImageView.frame)); + if (_gifScroll.contentSize.height > _gifScroll.bounds.size.height) { + CGPoint bottomOffset = CGPointMake(0, self.gifScroll.contentSize.height - self.gifScroll.bounds.size.height); + [self.gifScroll setContentOffset:bottomOffset animated:YES]; + } + }]; + [self.gifScroll addSubview:newImageView]; + [self.animations addObject:newImageView]; +} + +- (void)didReceiveMemoryWarning { + [self makeClear:nil]; + [super didReceiveMemoryWarning]; +} + +#pragma mark - AnimatedGif events +-(void)animatedGifDidStart:(NSNotification*) notify { + AnimatedGif * object = notify.object; + NSLog(@"Url will be loaded: %@", object.url); +} +-(void)animatedGifDidFinish:(NSNotification*) notify { + AnimatedGif * object = notify.object; + NSLog(@"Url is loaded: %@", object.url); +} + +#pragma mark - AnimatedGifDelegate +- (void)animationWillRepeat:(AnimatedGif *)animatedGif +{ + NSLog(@"\nanimationWillRepeat"); + //[animatedGif stop]; +} + +@end diff --git a/Example/AnimatedGifExampleViewController.xib b/Example/AnimatedGifExampleViewController.xib new file mode 100644 index 0000000..33735b1 --- /dev/null +++ b/Example/AnimatedGifExampleViewController.xib @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/main.m b/Example/main.m new file mode 100644 index 0000000..47d7ffd --- /dev/null +++ b/Example/main.m @@ -0,0 +1,32 @@ +// +// main.m +// AnimatedGifExample +// +// Created by Stijn Spijker on 05-07-09. +// Upgraded by Roman Truba on 2014 +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of +// this software and associated documentation files (the "Software"), to deal in +// the Software without restriction, including without limitation the rights to +// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +// the Software, and to permit persons to whom the Software is furnished to do so, +// subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#import +#import "AnimatedGifExampleAppDelegate.h" +int main(int argc, char *argv[]) { + + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AnimatedGifExampleAppDelegate class])); + } +} diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..789c1f0 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,13 @@ +Created by Stijn Spijker + +Upgraded by Roman Truba + +The MIT License (MIT) + +Copyright (c) 2014 Roman Truba + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/MainWindow.xib b/MainWindow.xib deleted file mode 100644 index cb98074..0000000 --- a/MainWindow.xib +++ /dev/null @@ -1,218 +0,0 @@ - - - - 768 - 10A288 - 715 - 1010 - 411.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 46 - - - YES - - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - YES - - - - YES - - IBFilesOwner - - - IBFirstResponder - - - - AnimatedGifExampleViewController - - - - - 292 - {320, 480} - - 1 - MSAxIDEAA - - NO - NO - - - - - - YES - - - delegate - - - - 4 - - - - viewController - - - - 11 - - - - window - - - - 14 - - - - - YES - - 0 - - - - - - -1 - - - File's Owner - - - 3 - - - AnimatedGifExample App Delegate - - - -2 - - - - - 10 - - - - - 12 - - - - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 10.CustomClassName - 10.IBEditorWindowLastContentRect - 10.IBPluginDependency - 12.IBEditorWindowLastContentRect - 12.IBPluginDependency - 3.CustomClassName - 3.IBPluginDependency - - - YES - UIApplication - UIResponder - AnimatedGifExampleViewController - {{512, 351}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{525, 346}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - AnimatedGifExampleAppDelegate - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - YES - - - - - YES - - - YES - - - - 14 - - - - YES - - AnimatedGifExampleAppDelegate - NSObject - - YES - - YES - viewController - window - - - YES - AnimatedGifExampleViewController - UIWindow - - - - IBProjectSource - Classes/AnimatedGifExampleAppDelegate.h - - - - AnimatedGifExampleAppDelegate - NSObject - - IBUserSource - - - - - AnimatedGifExampleViewController - UIViewController - - IBProjectSource - Classes/AnimatedGifExampleViewController.h - - - - - 0 - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - AnimatedGifExample.xcodeproj - 3 - - diff --git a/README b/README deleted file mode 100644 index e69de29..0000000 diff --git a/README.md b/README.md new file mode 100644 index 0000000..df45e66 --- /dev/null +++ b/README.md @@ -0,0 +1,86 @@ +# Animated-Gif-iOS + +Library for effective memory optimized GIF playback in iOS. This library will not prepare all frames at once, but will update frames in live. So in this way memory usage is strongly decreased, but CPU usage is increased (because gif decoding). + +#Installation +##With cocoapods +Use this lines in podfile: +``` +platform :ios, '5.0' +pod "Animated-Gif-iOS" +``` + +##From sources +Copy following files to your project: `AnimatedGif.h`, `AnimatedGif.m`,`UIImageView+AnimatedGif.h`,`UIImageView+AnimatedGif.m`. + +# Example usage + +Creating a imageview with GIF content: +``` +AnimatedGif * gif = [AnimatedGif getAnimationForGifAtUrl:[NSURL URLWithString:@"http://s6.pikabu.ru/post_img/2014/04/07/6/1396854652_1659897712.gif"]]; +UIImageView * newImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 20, 300, 200)]; +[newImageView setAnimatedGif:gif]; +[gif setLoadingProgressBlock:^(AnimatedGif *obj, CGFloat progress) { + progressView.progress = progress; +}]; +[gif setWillShowFrameBlock:^(AnimatedGif *obj, UIImage *img) { + progressView.hidden = YES; + //... Do stuff +}]; +[gif start]; +[self.view addSubview:newImageView]; +... +//Another way +NSData * animationData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"1.gif" ofType:nil]]; +AnimatedGif * animation = [AnimatedGif getAnimationForGifWithData:animationData]; +UIImageView * newImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 20, 300, 200)]; +[newImageView setAnimatedGif:animation startImmediately:YES]; +[self.view addSubview:newImageView]; +``` + +To manage a gif imageview you can subscribe for next NSNotification events: `AnimatedGifDidStartLoadingingEvent`, `AnimatedGifDidFinishLoadingingEvent`. +``` +[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatedGifDidStart:) name:AnimatedGifDidStartLoadingingEvent object:nil]; + +[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(animatedGifDidFinish:) name:AnimatedGifDidFinishLoadingingEvent object:nil]; +... +-(void)animatedGifDidStart:(NSNotification*) notify { + AnimatedGif * object = notify.object; + NSLog(@"Url will be loaded: %@", object.url); +} +-(void)animatedGifDidFinish:(NSNotification*) notify { + AnimatedGif * object = notify.object; + NSLog(@"Url is loaded: %@", object.url); + ... +} +``` +Also you can use block `setWillShowFrameBlock`. + +See example project for an additional information. + +# License +Created by Stijn Spijker + +Upgraded by Roman Truba + +The MIT License (MIT) + +Copyright (c) 2014 Roman Truba + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/apple_logo_animated.gif b/apple_logo_animated.gif deleted file mode 100644 index 3c344bf..0000000 Binary files a/apple_logo_animated.gif and /dev/null differ diff --git a/background.png b/background.png deleted file mode 100644 index 03849b2..0000000 Binary files a/background.png and /dev/null differ diff --git a/main.m b/main.m deleted file mode 100644 index 3cd6c7a..0000000 --- a/main.m +++ /dev/null @@ -1,17 +0,0 @@ -// -// main.m -// AnimatedGifExample -// -// Created by Stijn Spijker on 05-07-09. -// Copyright __MyCompanyName__ 2009. All rights reserved. -// - -#import - -int main(int argc, char *argv[]) { - - NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; - int retVal = UIApplicationMain(argc, argv, nil, nil); - [pool release]; - return retVal; -}