diff --git a/AFNetworking/AFHTTPOperation.h b/AFNetworking/AFHTTPOperation.h deleted file mode 100644 index b1cef56..0000000 --- a/AFNetworking/AFHTTPOperation.h +++ /dev/null @@ -1,62 +0,0 @@ -// AFHTTPOperation.h -// -// Copyright (c) 2011 Gowalla (http://gowalla.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 "QHTTPOperation.h" -#import "AFCallback.h" - -extern NSString * const AFHTTPOperationDidStartNotification; -extern NSString * const AFHTTPOperationDidSucceedNotification; -extern NSString * const AFHTTPOperationDidFailNotification; - -extern NSString * const AFHTTPOperationParsedDataErrorKey; - -@class AFHTTPOperationCallback; - -@interface AFHTTPOperation : QHTTPOperation { -@private - AFHTTPOperationCallback *_callback; -} - -@property (nonatomic, retain) AFHTTPOperationCallback *callback; -@property (readonly) NSString *responseString; - -+ (id)operationWithRequest:(NSURLRequest *)urlRequest callback:(AFHTTPOperationCallback *)callback; -- (id)initWithRequest:(NSURLRequest *)urlRequest callback:(AFHTTPOperationCallback *)callback; - -@end - -#pragma mark - AFHTTPOperationCallback - -typedef void (^AFHTTPOperationSuccessBlock)(NSURLRequest *request, NSHTTPURLResponse *response, NSDictionary *data); -typedef void (^AFHTTPOperationErrorBlock)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error); - -@protocol AFHTTPOperationCallback -@optional -+ (id)callbackWithSuccess:(AFHTTPOperationSuccessBlock)success; -+ (id)callbackWithSuccess:(AFHTTPOperationSuccessBlock)success error:(AFHTTPOperationErrorBlock)error; -@end - -@interface AFHTTPOperationCallback : AFCallback -@property (readwrite, nonatomic, copy) AFHTTPOperationSuccessBlock successBlock; -@property (readwrite, nonatomic, copy) AFHTTPOperationErrorBlock errorBlock; -@end diff --git a/AFNetworking/AFHTTPOperation.m b/AFNetworking/AFHTTPOperation.m deleted file mode 100644 index c7745e9..0000000 --- a/AFNetworking/AFHTTPOperation.m +++ /dev/null @@ -1,106 +0,0 @@ -// AFHTTPOperation.m -// -// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFHTTPOperation.h" -#import "JSONKit.h" - -NSString * const AFHTTPOperationDidStartNotification = @"com.alamofire.http-operation.start"; -NSString * const AFHTTPOperationDidSucceedNotification = @"com.alamofire.http-operation.success"; -NSString * const AFHTTPOperationDidFailNotification = @"com.alamofire.http-operation.failure"; - -NSString * const AFHTTPOperationParsedDataErrorKey = @"com.alamofire.http-operation.error.parsed-data"; - -@implementation AFHTTPOperation -@synthesize callback = _callback; - -+ (id)operationWithRequest:(NSURLRequest *)urlRequest callback:(AFHTTPOperationCallback *)callback { - return [[[self alloc] initWithRequest:urlRequest callback:callback] autorelease]; -} - -- (id)initWithRequest:(NSURLRequest *)urlRequest callback:(AFHTTPOperationCallback *)callback { - self = [super initWithRequest:urlRequest]; - if (!self) { - return nil; - } - - self.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/plain", nil]; - self.callback = callback; - - return self; -} - -- (void)dealloc { - [_callback release]; - [super dealloc]; -} - -- (NSString *)responseString { - return [[[NSString alloc] initWithData:self.responseBody encoding:NSUTF8StringEncoding] autorelease]; -} - -#pragma mark - QRunLoopOperation - -- (void)operationDidStart { - [super operationDidStart]; - [[NSNotificationCenter defaultCenter] postNotificationName:AFHTTPOperationDidStartNotification object:self]; -} - -- (void)finishWithError:(NSError *)error { - [super finishWithError:error]; - - NSDictionary *data = nil; - if (self.contentTypeAcceptable) { - if ([[self.lastResponse MIMEType] isEqualToString:@"application/json"]) { - NSError *jsonError = nil; - data = [[JSONDecoder decoder] parseJSONData:self.responseBody error:&jsonError]; - } - } - - if (self.statusCodeAcceptable) { - [[NSNotificationCenter defaultCenter] postNotificationName:AFHTTPOperationDidSucceedNotification object:self]; - - if(self.callback.successBlock) { - self.callback.successBlock(self.lastRequest, self.lastResponse, data); - } - } else { - [[NSNotificationCenter defaultCenter] postNotificationName:AFHTTPOperationDidFailNotification object:self]; - - NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithDictionary:[error userInfo]]; - [userInfo setValue:[NSHTTPURLResponse localizedStringForStatusCode:[self.lastResponse statusCode]] forKey:NSLocalizedDescriptionKey]; - [userInfo setValue:[[self.lastRequest URL] absoluteString] forKey:NSURLErrorFailingURLStringErrorKey]; - [userInfo setValue:data forKey:AFHTTPOperationParsedDataErrorKey]; - - error = [[[NSError alloc] initWithDomain:NSURLErrorDomain code:[self.lastResponse statusCode] userInfo:userInfo] autorelease]; - - if (self.callback.errorBlock) { - self.callback.errorBlock(self.lastRequest, self.lastResponse, error); - } - } -} - -@end - -#pragma mark - AFHTTPOperationCallback - -@implementation AFHTTPOperationCallback -@dynamic successBlock, errorBlock; -@end diff --git a/AFNetworking/AFHTTPRequestOperation.h b/AFNetworking/AFHTTPRequestOperation.h new file mode 100644 index 0000000..8fa7b1c --- /dev/null +++ b/AFNetworking/AFHTTPRequestOperation.h @@ -0,0 +1,56 @@ +// AFHTTPOperation.h +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 + +extern NSString * const AFHTTPOperationDidStartNotification; +extern NSString * const AFHTTPOperationDidFinishNotification; + +@interface AFHTTPRequestOperation : NSOperation { +@private + NSURLConnection *_connection; + NSPort *_port; + NSSet *_runLoopModes; + + NSURLRequest *_request; + NSHTTPURLResponse *_response; + + NSData *_responseBody; + NSMutableData *_dataAccumulator; +} + +@property (nonatomic, retain) NSURLConnection *connection; +@property (nonatomic, retain) NSSet *runLoopModes; + +@property (nonatomic, retain) NSURLRequest *request; +@property (nonatomic, retain) NSHTTPURLResponse *response; +@property (nonatomic, retain) NSError *error; + +@property (nonatomic, retain) NSData *responseBody; +@property (readonly) NSString *responseString; + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + completion:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error))completion; + +- (id)initWithRequest:(NSURLRequest *)urlRequest; + +@end diff --git a/AFNetworking/AFHTTPRequestOperation.m b/AFNetworking/AFHTTPRequestOperation.m new file mode 100644 index 0000000..caeb05c --- /dev/null +++ b/AFNetworking/AFHTTPRequestOperation.m @@ -0,0 +1,278 @@ +// AFHTTPOperation.m +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFHTTPRequestOperation.h" +#import "AFNetworkActivityIndicatorManager.h" + +typedef enum { + AFHTTPOperationReadyState = 1, + AFHTTPOperationExecutingState = 2, + AFHTTPOperationFinishedState = 3, + AFHTTPOperationCancelledState = 4, +} AFHTTPOperationState; + +NSString * const AFHTTPOperationDidStartNotification = @"com.alamofire.http-operation.start"; +NSString * const AFHTTPOperationDidFinishNotification = @"com.alamofire.http-operation.finish"; + +typedef void (^AFHTTPRequestOperationCompletionBlock)(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error); + +static inline NSString * AFKeyPathFromOperationState(AFHTTPOperationState state) { + switch (state) { + case AFHTTPOperationReadyState: + return @"isReady"; + case AFHTTPOperationExecutingState: + return @"isExecuting"; + case AFHTTPOperationFinishedState: + return @"isFinished"; + default: + return @"state"; + } +} + +static inline BOOL AFHTTPOperationStateTransitionIsValid(AFHTTPOperationState from, AFHTTPOperationState to) { + if (from == to) { + return NO; + } + + switch (from) { + case AFHTTPOperationReadyState: + switch (to) { + case AFHTTPOperationExecutingState: + return YES; + default: + return NO; + } + case AFHTTPOperationExecutingState: + switch (to) { + case AFHTTPOperationReadyState: + return NO; + default: + return YES; + } + case AFHTTPOperationFinishedState: + return NO; + default: + return YES; + } +} + +@interface AFHTTPRequestOperation () +@property (nonatomic, assign) AFHTTPOperationState state; +@property (nonatomic, assign) BOOL isCancelled; +@property (readwrite, nonatomic, retain) NSPort *port; +@property (readwrite, nonatomic, retain) NSMutableData *dataAccumulator; +@property (readwrite, nonatomic, copy) AFHTTPRequestOperationCompletionBlock completion; + +- (void)cleanup; +@end + +@implementation AFHTTPRequestOperation +@synthesize state = _state; +@synthesize isCancelled = _isCancelled; +@synthesize connection = _connection; +@synthesize runLoopModes = _runLoopModes; +@synthesize port = _port; +@synthesize request = _request; +@synthesize response = _response; +@synthesize error = _error; +@synthesize responseBody = _responseBody; +@synthesize dataAccumulator = _dataAccumulator; +@synthesize completion = _completion; + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + completion:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error))completion +{ + AFHTTPRequestOperation *operation = [[[self alloc] initWithRequest:urlRequest] autorelease]; + operation.completion = completion; + + return operation; +} + +- (id)initWithRequest:(NSURLRequest *)urlRequest { + self = [super init]; + if (!self) { + return nil; + } + + self.request = urlRequest; + + self.runLoopModes = [NSSet setWithObjects:NSDefaultRunLoopMode, NSRunLoopCommonModes, nil]; + + self.state = AFHTTPOperationReadyState; + + return self; +} + +- (void)dealloc { + [_runLoopModes release]; + [_port release]; + + [_request release]; + [_response release]; + [_responseBody release]; + [_dataAccumulator release]; + + [_connection release]; + + [_completion release]; + [super dealloc]; +} + +- (void)cleanup { + for (NSString *runLoopMode in self.runLoopModes) { + [[NSRunLoop currentRunLoop] removePort:self.port forMode:runLoopMode]; + [self.connection unscheduleFromRunLoop:[NSRunLoop currentRunLoop] forMode:runLoopMode]; + } + CFRunLoopStop([[NSRunLoop currentRunLoop] getCFRunLoop]); +} + +- (void)setState:(AFHTTPOperationState)state { + if (!AFHTTPOperationStateTransitionIsValid(self.state, state)) { + return; + } + + NSString *oldStateKey = AFKeyPathFromOperationState(self.state); + NSString *newStateKey = AFKeyPathFromOperationState(state); + + [self willChangeValueForKey:newStateKey]; + [self willChangeValueForKey:oldStateKey]; + _state = state; + [self didChangeValueForKey:oldStateKey]; + [self didChangeValueForKey:newStateKey]; + + switch (state) { + case AFHTTPOperationExecutingState: + [[AFNetworkActivityIndicatorManager sharedManager] startAnimating]; + [[NSNotificationCenter defaultCenter] postNotificationName:AFHTTPOperationDidStartNotification object:self]; + break; + case AFHTTPOperationFinishedState: + [[AFNetworkActivityIndicatorManager sharedManager] stopAnimating]; + [[NSNotificationCenter defaultCenter] postNotificationName:AFHTTPOperationDidFinishNotification object:self]; + [self cleanup]; + break; + default: + break; + } +} + +- (NSString *)responseString { + return [[[NSString alloc] initWithData:self.responseBody encoding:NSUTF8StringEncoding] autorelease]; +} + +#pragma mark - NSOperation + +- (BOOL)isReady { + return self.state == AFHTTPOperationReadyState; +} + +- (BOOL)isExecuting { + return self.state == AFHTTPOperationExecutingState; +} + +- (BOOL)isFinished { + return self.state == AFHTTPOperationFinishedState || [self isCancelled]; +} + +- (BOOL)isConcurrent { + return YES; +} + +- (void)start { + if (self.isFinished) { + return; + } + + self.state = AFHTTPOperationExecutingState; + + self.connection = [[[NSURLConnection alloc] initWithRequest:self.request delegate:self startImmediately:NO] autorelease]; + self.port = [NSPort port]; + + NSRunLoop *runLoop = [NSRunLoop currentRunLoop]; + for (NSString *runLoopMode in self.runLoopModes) { + [self.connection scheduleInRunLoop:runLoop forMode:runLoopMode]; + [runLoop addPort:self.port forMode:runLoopMode]; + } + + [self.connection start]; + + [runLoop run]; +} + +- (void)cancel { + self.isCancelled = YES; + + [self.connection cancel]; + + [self cleanup]; +} + +#pragma mark - AFHTTPRequestOperation + +- (void)finish { + if (self.isCancelled) { + return; + } + + if (self.completion) { + self.completion(self.request, self.response, self.responseBody, self.error); + } +} + +#pragma mark - NSURLConnection + +- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { + self.response = (NSHTTPURLResponse *)response; + NSUInteger contentLength = MIN(MAX(abs(response.expectedContentLength), 1024), 1024 * 1024 * 8); + + self.dataAccumulator = [NSMutableData dataWithCapacity:contentLength]; +} + +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { + [self.dataAccumulator appendData:data]; +} + +- (void)connectionDidFinishLoading:(NSURLConnection *)connection { + self.state = AFHTTPOperationFinishedState; + + self.responseBody = [NSData dataWithData:self.dataAccumulator]; + self.dataAccumulator = nil; + + [self performSelectorOnMainThread:@selector(finish) withObject:nil waitUntilDone:YES modes:[self.runLoopModes allObjects]]; +} + +- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { + self.state = AFHTTPOperationFinishedState; + + self.error = error; + + [self performSelectorOnMainThread:@selector(finish) withObject:nil waitUntilDone:YES modes:[self.runLoopModes allObjects]]; +} + +- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { + if ([self isCancelled]) { + return nil; + } + + return cachedResponse; +} + +@end diff --git a/Example/Classes/AFImageRequest.h b/AFNetworking/AFImageCache.h similarity index 62% rename from Example/Classes/AFImageRequest.h rename to AFNetworking/AFImageCache.h index 2c9833d..8cbe227 100644 --- a/Example/Classes/AFImageRequest.h +++ b/AFNetworking/AFImageCache.h @@ -1,4 +1,4 @@ -// AFImageRequest.h +// AFImageCache.h // // Copyright (c) 2011 Gowalla (http://gowalla.com/) // @@ -20,20 +20,20 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. +#import #import "AFImageRequestOperation.h" -@protocol AFImageRequester -@required -- (void)setImageURLString:(NSString *)urlString; -- (void)setImageURLString:(NSString *)urlString options:(AFImageRequestOptions)options; -@optional -@property (nonatomic, copy) NSString *imageURLString; -@end +@interface AFImageCache : NSCache -@interface AFImageRequest : NSObject ++ (id)sharedImageCache; + +- (UIImage *)cachedImageForRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options; + +- (void)cacheImage:(UIImage *)image + forRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options; -+ (void)requestImageWithURLString:(NSString *)urlString options:(AFImageRequestOptions)options block:(void (^)(UIImage *image))block; -+ (void)requestImageWithURLString:(NSString *)urlString size:(CGSize)imageSize options:(AFImageRequestOptions)options block:(void (^)(UIImage *image))block; -+ (void)cancelImageRequestOperationsForURLString:(NSString *)urlString; -+ (void)cancelAllImageRequestOperations; @end diff --git a/AFNetworking/AFImageCache.m b/AFNetworking/AFImageCache.m new file mode 100644 index 0000000..330a6c6 --- /dev/null +++ b/AFNetworking/AFImageCache.m @@ -0,0 +1,60 @@ +// AFImageCache.m +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFImageCache.h" + +static inline NSString * AFImageCacheKey(NSURLRequest *urlRequest, CGSize imageSize, AFImageRequestOptions options) { + return [[[urlRequest URL] absoluteString] stringByAppendingFormat:@"#%fx%f:%d", imageSize.width, imageSize.height, options]; +} + +@implementation AFImageCache + ++ (id)sharedImageCache { + static NSCache *_sharedImageCache = nil; + + if (!_sharedImageCache) { + _sharedImageCache = [[self alloc] init]; + } + + return _sharedImageCache; +} + +- (UIImage *)cachedImageForRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options +{ + return [self objectForKey:AFImageCacheKey(urlRequest, imageSize, options)]; +} + +- (void)cacheImage:(UIImage *)image + forRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options +{ + if (!image) { + return; + } + + [self setObject:image forKey:AFImageCacheKey(urlRequest, imageSize, options)]; +} + +@end diff --git a/AFNetworking/AFImageRequestOperation.h b/AFNetworking/AFImageRequestOperation.h index 0245dc6..8c0f48c 100644 --- a/AFNetworking/AFImageRequestOperation.h +++ b/AFNetworking/AFImageRequestOperation.h @@ -22,52 +22,21 @@ #import #import -#import "QHTTPOperation.h" -#import "AFCallback.h" +#import "AFHTTPRequestOperation.h" typedef enum { - AFImageRequestResize = 1 << 1, - AFImageRequestRoundCorners = 1 << 2, - AFImageCacheProcessedImage = 1 << 0xA, - AFImageRequestDefaultOptions = AFImageRequestResize, + AFImageRequestDefaultOptions = 0, + AFImageRequestRoundCorners = 1 << 1, } AFImageRequestOptions; -@class AFImageRequestOperationCallback; +@interface AFImageRequestOperation : AFHTTPRequestOperation -@interface AFImageRequestOperation : QHTTPOperation { -@private - AFImageRequestOperationCallback *_callback; -} ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(UIImage *image))success; -@property (nonatomic, retain) AFImageRequestOperationCallback *callback; - -+ (id)operationWithRequest:(NSURLRequest *)urlRequest callback:(AFImageRequestOperationCallback *)callback; -- (id)initWithRequest:(NSURLRequest *)urlRequest callback:(AFImageRequestOperationCallback *)callback; ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options + success:(void (^)(UIImage *image))success; @end - -#pragma mark - AFHTTPOperationCallback - -typedef void (^AFImageRequestOperationSuccessBlock)(UIImage *image); -typedef void (^AFImageRequestOperationErrorBlock)(NSError *error); - -@protocol AFImageRequestOperationCallback -@optional -+ (id)callbackWithSuccess:(AFImageRequestOperationSuccessBlock)success; -+ (id)callbackWithSuccess:(AFImageRequestOperationSuccessBlock)success error:(AFImageRequestOperationErrorBlock)error; -@end - -@interface AFImageRequestOperationCallback : AFCallback { -@private - CGSize _imageSize; - AFImageRequestOptions _options; -} - -@property (readwrite, nonatomic, assign) CGSize imageSize; -@property (readwrite, nonatomic, assign) AFImageRequestOptions options; - -@property (readwrite, nonatomic, copy) AFImageRequestOperationSuccessBlock successBlock; -@property (readwrite, nonatomic, copy) AFImageRequestOperationErrorBlock errorBlock; - -+ (id)callbackWithSuccess:(AFImageRequestOperationSuccessBlock)success imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options; -@end diff --git a/AFNetworking/AFImageRequestOperation.m b/AFNetworking/AFImageRequestOperation.m index e24a746..3ac0426 100644 --- a/AFNetworking/AFImageRequestOperation.m +++ b/AFNetworking/AFImageRequestOperation.m @@ -21,129 +21,66 @@ // THE SOFTWARE. #import "AFImageRequestOperation.h" +#import "AFImageCache.h" #import "UIImage+AFNetworking.h" -const CGFloat kAFImageRequestJPEGQuality = 0.8; -const NSUInteger kAFImageRequestMaximumResponseSize = 8 * 1024 * 1024; +static CGFloat const kAFImageRequestJPEGQuality = 0.8; +static NSUInteger const kAFImageRequestMaximumResponseSize = 8 * 1024 * 1024; + static inline CGSize kAFImageRequestRoundedCornerRadii(CGSize imageSize) { CGFloat dimension = fmaxf(imageSize.width, imageSize.height) * 0.1; return CGSizeMake(dimension, dimension); } @implementation AFImageRequestOperation -@synthesize callback = _callback; -+ (id)operationWithRequest:(NSURLRequest *)urlRequest callback:(AFImageRequestOperationCallback *)callback { - return [[[self alloc] initWithRequest:urlRequest callback:callback] autorelease]; ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(UIImage *image))success +{ + return [self operationWithRequest:urlRequest imageSize:CGSizeZero options:AFImageRequestDefaultOptions success:success]; } -- (id)initWithRequest:(NSURLRequest *)urlRequest callback:(AFImageRequestOperationCallback *)callback { - self = [super initWithRequest:urlRequest]; - if (!self) { - return nil; - } - - self.maximumResponseSize = kAFImageRequestMaximumResponseSize; - - NSMutableIndexSet *statusCodes = [NSMutableIndexSet indexSetWithIndex:0]; - [statusCodes addIndexesInRange:NSMakeRange(200, 100)]; - self.acceptableStatusCodes = statusCodes; - self.acceptableContentTypes = [NSSet setWithObjects:@"image/png", @"image/jpeg", @"image/pjpeg", @"image/gif", @"application/x-0", nil]; - self.callback = callback; - - if (self.callback) { - self.runLoopModes = [NSSet setWithObjects:NSRunLoopCommonModes, NSDefaultRunLoopMode, nil]; - } - - return self; -} - -#pragma mark - QHTTPRequestOperation - -// QHTTPRequestOperation requires this to return an NSHTTPURLResponse, but in certain circumstances, -// this method would otherwise return an instance of its superclass, NSURLResponse -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { - if([response isKindOfClass:[NSHTTPURLResponse class]]) { - [super connection:connection didReceiveResponse:response]; - } else { - [super connection:connection didReceiveResponse:[[[NSHTTPURLResponse alloc] initWithURL:[response URL] MIMEType:[response MIMEType] expectedContentLength:[response expectedContentLength] textEncodingName:[response textEncodingName]] autorelease]]; - } -} - -#pragma mark - QRunLoopOperation - -- (void)finishWithError:(NSError *)error { - [super finishWithError:error]; - - if (error) { - if (self.callback.errorBlock) { - self.callback.errorBlock(error); - } - - return; - } - - UIImage *image = nil; - if ([[UIScreen mainScreen] scale] == 2.0) { - CGImageRef imageRef = [UIImage imageWithData:self.responseBody].CGImage; - image = [UIImage imageWithCGImage:imageRef scale:2.0 orientation:UIImageOrientationUp]; - } else { - image = [UIImage imageWithData:self.responseBody]; - } - - BOOL didProcessingOnImage = NO; - - if ((self.callback.options & AFImageRequestResize) && !(CGSizeEqualToSize(image.size, self.callback.imageSize) || CGSizeEqualToSize(self.callback.imageSize, CGSizeZero))) { - image = [UIImage imageByScalingAndCroppingImage:image size:self.callback.imageSize]; - didProcessingOnImage = YES; - } - if ((self.callback.options & AFImageRequestRoundCorners)) { - image = [UIImage imageByRoundingCornersOfImage:image corners:UIRectCornerAllCorners cornerRadii:kAFImageRequestRoundedCornerRadii(image.size)]; - didProcessingOnImage = YES; - } - - - if (self.callback.successBlock) { - self.callback.successBlock(image); - } - - if ((self.callback.options & AFImageCacheProcessedImage) && didProcessingOnImage) { - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSData *processedImageData = nil; - if ((self.callback.options & AFImageRequestRoundCorners) || [[[[self.lastRequest URL] path] pathExtension] isEqualToString:@"png"]) { - processedImageData = UIImagePNGRepresentation(image); ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + imageSize:(CGSize)imageSize + options:(AFImageRequestOptions)options + success:(void (^)(UIImage *image))success +{ + return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) { + UIImage *image = nil; + if ([[UIScreen mainScreen] scale] == 2.0) { + CGImageRef imageRef = [[UIImage imageWithData:data] CGImage]; + image = [UIImage imageWithCGImage:imageRef scale:2.0 orientation:UIImageOrientationUp]; } else { - processedImageData = UIImageJPEGRepresentation(image, kAFImageRequestJPEGQuality); + image = [UIImage imageWithData:data]; } - NSURLResponse *response = [[[NSURLResponse alloc] initWithURL:[self.lastRequest URL] MIMEType:[self.lastResponse MIMEType] expectedContentLength:[processedImageData length] textEncodingName:[self.lastResponse textEncodingName]] autorelease]; - NSCachedURLResponse *cachedResponse = [[[NSCachedURLResponse alloc] initWithResponse:response data:processedImageData] autorelease]; - [[NSURLCache sharedURLCache] storeCachedResponse:cachedResponse forRequest:self.lastRequest]; - [pool drain]; + + if (!(CGSizeEqualToSize(image.size, imageSize) || CGSizeEqualToSize(imageSize, CGSizeZero))) { + image = [UIImage imageByScalingAndCroppingImage:image size:imageSize]; + } + if ((options & AFImageRequestRoundCorners)) { + image = [UIImage imageByRoundingCornersOfImage:image corners:UIRectCornerAllCorners cornerRadii:kAFImageRequestRoundedCornerRadii(image.size)]; + } + + if (success) { + success(image); + } + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) { + [[AFImageCache sharedImageCache] cacheImage:image forRequest:request imageSize:imageSize options:options]; + }); + }]; +} + +- (id)initWithRequest:(NSURLRequest *)urlRequest { + self = [super initWithRequest:urlRequest]; + if (!self) { + return nil; } -} - -- (void) dealloc { - [_callback release]; - - [super dealloc]; -} - -@end - -#pragma mark - AFHTTPOperationCallback - -@implementation AFImageRequestOperationCallback : AFCallback -@synthesize options = _options; -@synthesize imageSize = _imageSize; -@dynamic successBlock, errorBlock; - -+ (id)callbackWithSuccess:(AFImageRequestOperationSuccessBlock)success imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options { - id callback = [self callbackWithSuccess:success]; - [callback setImageSize:imageSize]; - [callback setOptions:options]; - return callback; + self.runLoopModes = [NSSet setWithObject:NSRunLoopCommonModes]; + + return self; } @end diff --git a/AFNetworking/AFCallback.m b/AFNetworking/AFJSONRequestOperation.h similarity index 56% rename from AFNetworking/AFCallback.m rename to AFNetworking/AFJSONRequestOperation.h index db7f1a9..1495edc 100644 --- a/AFNetworking/AFCallback.m +++ b/AFNetworking/AFJSONRequestOperation.h @@ -1,4 +1,4 @@ -// AFCallback.m +// AFJSONRequestOperation.h // // Copyright (c) 2011 Gowalla (http://gowalla.com/) // @@ -20,41 +20,24 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -#import "AFCallback.h" +#import "AFHTTPRequestOperation.h" + +@interface AFJSONRequestOperation : AFHTTPRequestOperation + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(id JSON))success; + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(id JSON))success + failure:(void (^)(NSError *error))failure; + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes + acceptableContentTypes:(NSSet *)acceptableContentTypes + success:(void (^)(id JSON))success + failure:(void (^)(NSError *error))failure; + ++ (NSIndexSet *)defaultAcceptableStatusCodes; ++ (NSSet *)defaultAcceptableContentTypes; -@interface AFCallback () -@property (readwrite, nonatomic, copy) id successBlock; -@property (readwrite, nonatomic, copy) id errorBlock; @end - -@implementation AFCallback -@synthesize successBlock = _successBlock; -@synthesize errorBlock = _errorBlock; - -+ (id)callbackWithSuccess:(id)success { - return [self callbackWithSuccess:success error:nil]; -} - -+ (id)callbackWithSuccess:(id)success error:(id)error { - id callback = [[[self alloc] init] autorelease]; - [callback setSuccessBlock:success]; - [callback setErrorBlock:error]; - - return callback; -} - -- (id)init { - if ([self class] == [AFCallback class]) { - [NSException raise:NSInternalInconsistencyException format:@"You must override %@ in a subclass", NSStringFromSelector(_cmd)]; - } - - return [super init]; -} - -- (void)dealloc { - [_successBlock release]; - [_errorBlock release]; - [super dealloc]; -} - -@end \ No newline at end of file diff --git a/AFNetworking/AFJSONRequestOperation.m b/AFNetworking/AFJSONRequestOperation.m new file mode 100644 index 0000000..039b1f8 --- /dev/null +++ b/AFNetworking/AFJSONRequestOperation.m @@ -0,0 +1,93 @@ +// AFJSONRequestOperation.m +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFJSONRequestOperation.h" +#import "JSONKit.h" + +@implementation AFJSONRequestOperation + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(id JSON))success +{ + return [self operationWithRequest:urlRequest success:success failure:nil]; +} + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + success:(void (^)(id JSON))success + failure:(void (^)(NSError *error))failure +{ + return [self operationWithRequest:urlRequest acceptableStatusCodes:[self defaultAcceptableStatusCodes] acceptableContentTypes:[self defaultAcceptableContentTypes] success:success failure:failure]; +} + ++ (id)operationWithRequest:(NSURLRequest *)urlRequest + acceptableStatusCodes:(NSIndexSet *)acceptableStatusCodes + acceptableContentTypes:(NSSet *)acceptableContentTypes + success:(void (^)(id JSON))success + failure:(void (^)(NSError *error))failure +{ + return [self operationWithRequest:urlRequest completion:^(NSURLRequest *request, NSHTTPURLResponse *response, NSData *data, NSError *error) { + BOOL statusCodeAcceptable = [acceptableStatusCodes containsIndex:[response statusCode]]; + BOOL contentTypeAcceptable = [acceptableContentTypes containsObject:[response MIMEType]]; + if (!statusCodeAcceptable || !contentTypeAcceptable) { + NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; + [userInfo setValue:[NSHTTPURLResponse localizedStringForStatusCode:[response statusCode]] forKey:NSLocalizedDescriptionKey]; + [userInfo setValue:[request URL] forKey:NSURLErrorFailingURLErrorKey]; + + error = [[[NSError alloc] initWithDomain:NSURLErrorDomain code:[response statusCode] userInfo:userInfo] autorelease]; + } + + if (error) { + if (failure) { + failure(error); + } + } else { + id JSON = nil; + + Class NSJSONSerialization = NSClassFromString(@"NSJSONSerialization"); + if (NSJSONSerialization) { + JSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + } else { + JSON = [[JSONDecoder decoder] objectWithData:data error:&error]; + } + + if (error) { + if (failure) { + failure(error); + } + } else { + if (success) { + success(JSON); + } + } + } + }]; +} + ++ (NSIndexSet *)defaultAcceptableStatusCodes { + return [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 100)]; +} + ++ (NSSet *)defaultAcceptableContentTypes { + return [NSSet setWithObjects:@"application/json", @"application/x-javascript", @"text/javascript", @"text/x-javascript", @"text/x-json", @"text/json", @"text/plain", nil]; +} + +@end diff --git a/AFNetworking/AFCallback.h b/AFNetworking/AFNetworkActivityIndicatorManager.h similarity index 83% rename from AFNetworking/AFCallback.h rename to AFNetworking/AFNetworkActivityIndicatorManager.h index 0385ea9..1729d26 100644 --- a/AFNetworking/AFCallback.h +++ b/AFNetworking/AFNetworkActivityIndicatorManager.h @@ -1,4 +1,4 @@ -// AFCallback.h +// AFNetworkActivityIndicatorManager.h // // Copyright (c) 2011 Gowalla (http://gowalla.com/) // @@ -22,15 +22,14 @@ #import -@protocol AFCallback -+ (id)callbackWithSuccess:(id)success; -+ (id)callbackWithSuccess:(id)success error:(id)error; -@end - -@interface AFCallback : NSObject { +@interface AFNetworkActivityIndicatorManager : NSObject { @private - id _successBlock; - id _errorBlock; + NSUInteger _activityCount; } -@end \ No newline at end of file ++ (AFNetworkActivityIndicatorManager *)sharedManager; + +- (void)startAnimating; +- (void)stopAnimating; + +@end diff --git a/AFNetworking/AFNetworkActivityIndicatorManager.m b/AFNetworking/AFNetworkActivityIndicatorManager.m new file mode 100644 index 0000000..7217b18 --- /dev/null +++ b/AFNetworking/AFNetworkActivityIndicatorManager.m @@ -0,0 +1,57 @@ +// AFNetworkActivityIndicatorManager.m +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFNetworkActivityIndicatorManager.h" + +@interface AFNetworkActivityIndicatorManager () +@property (readwrite, nonatomic, assign) NSUInteger activityCount; +@end + +@implementation AFNetworkActivityIndicatorManager +@synthesize activityCount = _activityCount; + ++ (AFNetworkActivityIndicatorManager *)sharedManager { + static AFNetworkActivityIndicatorManager *_sharedManager = nil; + if (!_sharedManager) { + _sharedManager = [[AFNetworkActivityIndicatorManager alloc] init]; + } + + return _sharedManager; +} + +- (void)setActivityCount:(NSUInteger)activityCount { + [self willChangeValueForKey:@"activityCount"]; + _activityCount = MAX(activityCount, 0); + [self didChangeValueForKey:@"activityCount"]; + + [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:self.activityCount > 0]; +} + +- (void)startAnimating { + self.activityCount += 1; +} + +- (void)stopAnimating { + self.activityCount -= 1; +} + +@end diff --git a/AFNetworking/AFRestClient.h b/AFNetworking/AFRestClient.h index f0a4e63..04fdfc2 100644 --- a/AFNetworking/AFRestClient.h +++ b/AFNetworking/AFRestClient.h @@ -21,27 +21,37 @@ // THE SOFTWARE. #import -#import "AFHTTPOperation.h" +#import "AFHTTPRequestOperation.h" @protocol AFRestClient -@required + (NSURL *)baseURL; -- (NSMutableURLRequest *)requestWithMethod:(NSString *)method path:(NSString *)path parameters:(NSDictionary *)parameters; @end -@interface AFRestClient : NSObject +@interface AFRestClient : NSObject { +@protected + NSMutableDictionary *_defaultHeaders; + NSOperationQueue *_operationQueue; +} + - (NSString *)defaultValueForHeader:(NSString *)header; - (void)setDefaultHeader:(NSString *)header value:(NSString *)value; - (void)setAuthorizationHeaderWithToken:(NSString *)token; - (void)clearAuthorizationHeader; -- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback; -- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback; -- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback; -- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback; +- (NSMutableURLRequest *)requestWithMethod:(NSString *)method path:(NSString *)path parameters:(NSDictionary *)parameters; +- (void)enqueueHTTPOperationWithRequest:(NSURLRequest *)request success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; -- (void)enqueueHTTPOperationWithRequest:(NSURLRequest *)request callback:(AFHTTPOperationCallback *)callback; -- (void)enqueueHTTPOperation:(AFHTTPOperation *)operation; +- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success; +- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; + +- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success; +- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; + +- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success; +- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; + +- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success; +- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; @end #pragma mark - NSString + AFRestClient diff --git a/AFNetworking/AFRestClient.m b/AFNetworking/AFRestClient.m index 209477b..c207cab 100644 --- a/AFNetworking/AFRestClient.m +++ b/AFNetworking/AFRestClient.m @@ -21,13 +21,15 @@ // THE SOFTWARE. #import "AFRestClient.h" -#import "AFHTTPOperation.h" +#import "AFJSONRequestOperation.h" static NSStringEncoding const kAFRestClientStringEncoding = NSUTF8StringEncoding; @interface AFRestClient () @property (readwrite, nonatomic, retain) NSMutableDictionary *defaultHeaders; @property (readwrite, nonatomic, retain) NSOperationQueue *operationQueue; + +- (void)enqueueHTTPOperationWithRequest:(NSURLRequest *)request success:(void (^)(id response))success failure:(void (^)(NSError *error))failure; @end @implementation AFRestClient @@ -78,36 +80,6 @@ static NSStringEncoding const kAFRestClientStringEncoding = NSUTF8StringEncoding return nil; } -- (NSMutableURLRequest *)requestWithMethod:(NSString *)method path:(NSString *)path parameters:(NSDictionary *)parameters { - NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; - NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:_defaultHeaders]; - NSURL *url = nil; - - NSMutableArray *mutableParameterComponents = [NSMutableArray array]; - for (id key in [parameters allKeys]) { - NSString *component = [NSString stringWithFormat:@"%@=%@", [key urlEncodedStringWithEncoding:kAFRestClientStringEncoding], [[parameters valueForKey:key] urlEncodedStringWithEncoding:kAFRestClientStringEncoding]]; - [mutableParameterComponents addObject:component]; - } - NSString *queryString = [mutableParameterComponents componentsJoinedByString:@"&"]; - - if ([method isEqualToString:@"GET"]) { - path = [path stringByAppendingFormat:[path rangeOfString:@"?"].location == NSNotFound ? @"?%@" : @"&%@", queryString]; - url = [NSURL URLWithString:path relativeToURL:[[self class] baseURL]]; - } else { - url = [NSURL URLWithString:path relativeToURL:[[self class] baseURL]]; - NSString *charset = (NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(kAFRestClientStringEncoding)); - [headers setObject:[NSString stringWithFormat:@"application/x-www-form-urlencoded; charset=%@", charset] forKey:@"Content-Type"]; - [request setHTTPBody:[queryString dataUsingEncoding:NSUTF8StringEncoding]]; - } - - [request setURL:url]; - [request setHTTPMethod:method]; - [request setHTTPShouldHandleCookies:NO]; - [request setAllHTTPHeaderFields:headers]; - - return request; -} - - (NSString *)defaultValueForHeader:(NSString *)header { return [self.defaultHeaders valueForKey:header]; } @@ -124,42 +96,81 @@ static NSStringEncoding const kAFRestClientStringEncoding = NSUTF8StringEncoding [self.defaultHeaders removeObjectForKey:@"Authorization"]; } - #pragma mark - -- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback { - NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:parameters]; - [self enqueueHTTPOperationWithRequest:request callback:callback]; +- (NSMutableURLRequest *)requestWithMethod:(NSString *)method path:(NSString *)path parameters:(NSDictionary *)parameters { + NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; + NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; + NSURL *url = [NSURL URLWithString:path relativeToURL:[[self class] baseURL]]; + + if (parameters) { + NSMutableArray *mutableParameterComponents = [NSMutableArray array]; + for (id key in [parameters allKeys]) { + NSString *component = [NSString stringWithFormat:@"%@=%@", [key urlEncodedStringWithEncoding:kAFRestClientStringEncoding], [[parameters valueForKey:key] urlEncodedStringWithEncoding:kAFRestClientStringEncoding]]; + [mutableParameterComponents addObject:component]; + } + NSString *queryString = [mutableParameterComponents componentsJoinedByString:@"&"]; + + if ([method isEqualToString:@"GET"]) { + url = [NSURL URLWithString:[[url absoluteString] stringByAppendingFormat:[path rangeOfString:@"?"].location == NSNotFound ? @"?%@" : @"&%@", queryString]]; + } else { + NSString *charset = (NSString *)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(kAFRestClientStringEncoding)); + [headers setObject:[NSString stringWithFormat:@"application/x-www-form-urlencoded; charset=%@", charset] forKey:@"Content-Type"]; + [request setHTTPBody:[queryString dataUsingEncoding:NSUTF8StringEncoding]]; + } + } + + [request setURL:url]; + [request setHTTPMethod:method]; + [request setHTTPShouldHandleCookies:NO]; + [request setAllHTTPHeaderFields:headers]; + + return request; } -- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback { - NSURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:parameters]; - [self enqueueHTTPOperationWithRequest:request callback:callback]; -} - -- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback { - NSURLRequest *request = [self requestWithMethod:@"PUT" path:path parameters:parameters]; - [self enqueueHTTPOperationWithRequest:request callback:callback]; -} - -- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters callback:(AFHTTPOperationCallback *)callback { - NSURLRequest *request = [self requestWithMethod:@"DELETE" path:path parameters:parameters]; - [self enqueueHTTPOperationWithRequest:request callback:callback]; -} - -#pragma mark - - -- (void)enqueueHTTPOperationWithRequest:(NSURLRequest *)request callback:(AFHTTPOperationCallback *)callback { +- (void)enqueueHTTPOperationWithRequest:(NSURLRequest *)request success:(void (^)(id response))success failure:(void (^)(NSError *error))failure { if ([request URL] == nil || [[request URL] isEqual:[NSNull null]]) { return; } - - AFHTTPOperation *operation = [[[AFHTTPOperation alloc] initWithRequest:request callback:callback] autorelease]; - [self enqueueHTTPOperation:operation]; + + AFHTTPRequestOperation *operation = [AFJSONRequestOperation operationWithRequest:request success:success failure:failure]; + [self.operationQueue addOperation:operation]; } -- (void)enqueueHTTPOperation:(AFHTTPOperation *)operation { - [self.operationQueue addOperation:operation]; +- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success { + [self getPath:path parameters:parameters success:success failure:nil]; +} + +- (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure { + NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:parameters]; + [self enqueueHTTPOperationWithRequest:request success:success failure:failure]; +} + +- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success { + [self postPath:path parameters:parameters success:success failure:nil]; +} + +- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure { + NSURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:parameters]; + [self enqueueHTTPOperationWithRequest:request success:success failure:failure]; +} + +- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success { + [self putPath:path parameters:parameters success:success failure:nil]; +} + +- (void)putPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure { + NSURLRequest *request = [self requestWithMethod:@"PUT" path:path parameters:parameters]; + [self enqueueHTTPOperationWithRequest:request success:success failure:failure]; +} + +- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success { + [self deletePath:path parameters:parameters success:success failure:nil]; +} + +- (void)deletePath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(id response))success failure:(void (^)(NSError *error))failure { + NSURLRequest *request = [self requestWithMethod:@"DELETE" path:path parameters:parameters]; + [self enqueueHTTPOperationWithRequest:request success:success failure:failure]; } @end diff --git a/AFNetworking/QHTTPOperation/QHTTPOperation.h b/AFNetworking/QHTTPOperation/QHTTPOperation.h deleted file mode 100644 index 62332da..0000000 --- a/AFNetworking/QHTTPOperation/QHTTPOperation.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - File: QHTTPOperation.h - - Contains: An NSOperation that runs an HTTP request. - - Written by: DTS - - Copyright: Copyright (c) 2010 Apple Inc. All Rights Reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following - terms, and your use, installation, modification or - redistribution of this Apple software constitutes acceptance of - these terms. If you do not agree with these terms, please do - not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following - terms, and subject to these terms, Apple grants you a personal, - non-exclusive license, under Apple's copyrights in this - original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or - without modifications, in source and/or binary forms; provided - that if you redistribute the Apple Software in its entirety and - without modifications, you must retain this notice and the - following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Inc. may be used to endorse or promote - products derived from the Apple Software without specific prior - written permission from Apple. Except as expressly stated in - this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any - patent rights that may be infringed by your derivative works or - by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. - APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING - THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, - INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY - OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY - OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -*/ - -#import "QRunLoopOperation.h" - -/* - QHTTPOperation is a general purpose NSOperation that runs an HTTP request. - You initialise it with an HTTP request and then, when you run the operation, - it sends the request and gathers the response. It is quite a complex - object because it handles a wide variety of edge cases, but it's very - easy to use in simple cases: - - 1. create the operation with the URL you want to get - - op = [[[QHTTPOperation alloc] initWithURL:url] autorelease]; - - 2. set up any non-default parameters, for example, set which HTTP - content types are acceptable - - op.acceptableContentTypes = [NSSet setWithObject:@"text/html"]; - - 3. enqueue the operation - - [queue addOperation:op]; - - 4. finally, when the operation is done, use the lastResponse and - error properties to find out how things went - - As mentioned above, QHTTPOperation is very general purpose. There are a - large number of configuration and result options available to you. - - o You can specify a NSURLRequest rather than just a URL. - - o You can configure the run loop and modes on which the NSURLConnection is - scheduled. - - o You can specify what HTTP status codes and content types are OK. - - o You can set an authentication delegate to handle authentication challenges. - - o You can accumulate responses in memory or in an NSOutputStream. - - o For in-memory responses, you can specify a default response size - (used to size the response buffer) and a maximum response size - (to prevent unbounded memory use). - - o You can get at the last request and the last response, to track - redirects. - - o There are a variety of funky debugging options to simulator errors - and delays. - - Finally, it's perfectly reasonable to subclass QHTTPOperation to meet you - own specific needs. Specifically, it's common for the subclass to - override -connection:didReceiveResponse: in order to setup the output - stream based on the specific details of the response. -*/ - -@protocol QHTTPOperationAuthenticationDelegate; - -@interface QHTTPOperation : QRunLoopOperation /* */ -{ - NSURLRequest * _request; - NSIndexSet * _acceptableStatusCodes; - NSSet * _acceptableContentTypes; - id _authenticationDelegate; - NSOutputStream * _responseOutputStream; - NSUInteger _defaultResponseSize; - NSUInteger _maximumResponseSize; - NSURLConnection * _connection; - BOOL _firstData; - NSMutableData * _dataAccumulator; - NSURLRequest * _lastRequest; - NSHTTPURLResponse * _lastResponse; - NSData * _responseBody; -#if ! defined(NDEBUG) - NSError * _debugError; - NSTimeInterval _debugDelay; - NSTimer * _debugDelayTimer; -#endif -} - -- (id)initWithRequest:(NSURLRequest *)request; // designated -- (id)initWithURL:(NSURL *)url; // convenience, calls +[NSURLRequest requestWithURL:] - -// Things that are configured by the init method and can't be changed. - -@property (copy, readonly) NSURLRequest * request; -@property (copy, readonly) NSURL * URL; - -// Things you can configure before queuing the operation. - -// runLoopThread and runLoopModes inherited from QRunLoopOperation -@property (copy, readwrite) NSIndexSet * acceptableStatusCodes; // default is nil, implying 200..299 -@property (copy, readwrite) NSSet * acceptableContentTypes; // default is nil, implying anything is acceptable -@property (assign, readwrite) id authenticationDelegate; - -#if ! defined(NDEBUG) -@property (copy, readwrite) NSError * debugError; // default is nil -@property (assign, readwrite) NSTimeInterval debugDelay; // default is none -#endif - -// Things you can configure up to the point where you start receiving data. -// Typically you would change these in -connection:didReceiveResponse:, but -// it is possible to change them up to the point where -connection:didReceiveData: -// is called for the first time (that is, you could override -connection:didReceiveData: -// and change these before calling super). - -// IMPORTANT: If you set a response stream, QHTTPOperation calls the response -// stream synchronously. This is fine for file and memory streams, but it would -// not work well for other types of streams (like a bound pair). - -@property (retain, readwrite) NSOutputStream * responseOutputStream; // defaults to nil, which puts response into responseBody -@property (assign, readwrite) NSUInteger defaultResponseSize; // default is 1 MB, ignored if responseOutputStream is set -@property (assign, readwrite) NSUInteger maximumResponseSize; // default is 4 MB, ignored if responseOutputStream is set - // defaults are 1/4 of the above on embedded - -// Things that are only meaningful after a response has been received; - -@property (assign, readonly, getter=isStatusCodeAcceptable) BOOL statusCodeAcceptable; -@property (assign, readonly, getter=isContentTypeAcceptable) BOOL contentTypeAcceptable; - -// Things that are only meaningful after the operation is finished. - -// error property inherited from QRunLoopOperation -@property (copy, readonly) NSURLRequest * lastRequest; -@property (copy, readonly) NSHTTPURLResponse * lastResponse; - -@property (copy, readonly) NSData * responseBody; - -@end - -@interface QHTTPOperation (NSURLConnectionDelegate) - -// QHTTPOperation implements all of these methods, so if you override them -// you must consider whether or not to call super. -// -// These will be called on the operation's run loop thread. - -- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace; - // Routes the request to the authentication delegate if it exists, otherwise - // just returns NO. - -- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge; - // Routes the request to the authentication delegate if it exists, otherwise - // just cancels the challenge. - -- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response; - // Latches the request and response in lastRequest and lastResponse. - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response; - // Latches the response in lastResponse. - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data; - // If this is the first chunk of data, it decides whether the data is going to be - // routed to memory (responseBody) or a stream (responseOutputStream) and makes the - // appropriate preparations. For this and subsequent data it then actually shuffles - // the data to its destination. - -- (void)connectionDidFinishLoading:(NSURLConnection *)connection; - // Completes the operation with either no error (if the response status code is acceptable) - // or an error (otherwise). - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error; - // Completes the operation with the error. - -@end - -@protocol QHTTPOperationAuthenticationDelegate -@required - -// These are called on the operation's run loop thread and have the same semantics as their -// NSURLConnection equivalents. It's important to realise that there is no -// didCancelAuthenticationChallenge callback (because NSURLConnection doesn't issue one to us). -// Rather, an authentication delegate is expected to observe the operation and cancel itself -// if the operation completes while the challenge is running. - -- (BOOL)httpOperation:(QHTTPOperation *)operation canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace; -- (void)httpOperation:(QHTTPOperation *)operation didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge; - -@end - -extern NSString * kQHTTPOperationErrorDomain; - -// positive error codes are HTML status codes (when they are not allowed via acceptableStatusCodes) -// -// 0 is, of course, not a valid error code -// -// negative error codes are errors from the module - -enum { - kQHTTPOperationErrorResponseTooLarge = -1, - kQHTTPOperationErrorOnOutputStream = -2, - kQHTTPOperationErrorBadContentType = -3 -}; diff --git a/AFNetworking/QHTTPOperation/QHTTPOperation.m b/AFNetworking/QHTTPOperation/QHTTPOperation.m deleted file mode 100644 index fec3f19..0000000 --- a/AFNetworking/QHTTPOperation/QHTTPOperation.m +++ /dev/null @@ -1,653 +0,0 @@ -/* - File: QHTTPOperation.m - - Contains: An NSOperation that runs an HTTP request. - - Written by: DTS - - Copyright: Copyright (c) 2010 Apple Inc. All Rights Reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following - terms, and your use, installation, modification or - redistribution of this Apple software constitutes acceptance of - these terms. If you do not agree with these terms, please do - not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following - terms, and subject to these terms, Apple grants you a personal, - non-exclusive license, under Apple's copyrights in this - original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or - without modifications, in source and/or binary forms; provided - that if you redistribute the Apple Software in its entirety and - without modifications, you must retain this notice and the - following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Inc. may be used to endorse or promote - products derived from the Apple Software without specific prior - written permission from Apple. Except as expressly stated in - this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any - patent rights that may be infringed by your derivative works or - by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. - APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING - THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, - INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY - OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY - OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -*/ - -#import "QHTTPOperation.h" - -@interface QHTTPOperation () - -// Read/write versions of public properties - -@property (copy, readwrite) NSURLRequest * lastRequest; -@property (copy, readwrite) NSHTTPURLResponse * lastResponse; - -// Internal properties - -@property (retain, readwrite) NSURLConnection * connection; -@property (assign, readwrite) BOOL firstData; -@property (retain, readwrite) NSMutableData * dataAccumulator; - -#if ! defined(NDEBUG) -@property (retain, readwrite) NSTimer * debugDelayTimer; -#endif - -@end - -@implementation QHTTPOperation - -#pragma mark * Initialise and finalise - -- (id)initWithRequest:(NSURLRequest *)request - // See comment in header. -{ - // any thread - assert(request != nil); - assert([request URL] != nil); - // Because we require an NSHTTPURLResponse, we only support HTTP and HTTPS URLs. - assert([[[[request URL] scheme] lowercaseString] isEqual:@"http"] || [[[[request URL] scheme] lowercaseString] isEqual:@"https"]); - self = [super init]; - if (self != nil) { - #if TARGET_OS_EMBEDDED || TARGET_IPHONE_SIMULATOR - static const NSUInteger kPlatformReductionFactor = 4; - #else - static const NSUInteger kPlatformReductionFactor = 1; - #endif - self->_request = [request copy]; - self->_defaultResponseSize = 1 * 1024 * 1024 / kPlatformReductionFactor; - self->_maximumResponseSize = 4 * 1024 * 1024 / kPlatformReductionFactor; - self->_firstData = YES; - } - return self; -} - -- (id)initWithURL:(NSURL *)url - // See comment in header. -{ - assert(url != nil); - return [self initWithRequest:[NSURLRequest requestWithURL:url]]; -} - -- (void)dealloc -{ - #if ! defined(NDEBUG) - [self->_debugError release]; - [self->_debugDelayTimer invalidate]; - [self->_debugDelayTimer release]; - #endif - // any thread - [self->_request release]; - [self->_acceptableStatusCodes release]; - [self->_acceptableContentTypes release]; - [self->_responseOutputStream release]; - assert(self->_connection == nil); // should have been shut down by now - [self->_dataAccumulator release]; - [self->_lastRequest release]; - [self->_lastResponse release]; - [self->_responseBody release]; - [super dealloc]; -} - -#pragma mark * Properties - -// We write our own settings for many properties because we want to bounce -// sets that occur in the wrong state. And, given that we've written the -// setter anyway, we also avoid KVO notifications when the value doesn't change. - -@synthesize request = _request; - -@synthesize authenticationDelegate = _authenticationDelegate; - -+ (BOOL)automaticallyNotifiesObserversOfAuthenticationDelegate -{ - return NO; -} - -- (id)authenticationDelegate -{ - return self->_authenticationDelegate; -} - -- (void)setAuthenticationDelegate:(id)newValue -{ - if (self.state != kQRunLoopOperationStateInited) { - assert(NO); - } else { - if (newValue != self->_authenticationDelegate) { - [self willChangeValueForKey:@"authenticationDelegate"]; - self->_authenticationDelegate = newValue; - [self didChangeValueForKey:@"authenticationDelegate"]; - } - } -} - -@synthesize acceptableStatusCodes = _acceptableStatusCodes; - -+ (BOOL)automaticallyNotifiesObserversOfAcceptableStatusCodes -{ - return NO; -} - -- (NSIndexSet *)acceptableStatusCodes -{ - return [[self->_acceptableStatusCodes retain] autorelease]; -} - -- (void)setAcceptableStatusCodes:(NSIndexSet *)newValue -{ - if (self.state != kQRunLoopOperationStateInited) { - assert(NO); - } else { - if (newValue != self->_acceptableStatusCodes) { - [self willChangeValueForKey:@"acceptableStatusCodes"]; - [self->_acceptableStatusCodes autorelease]; - self->_acceptableStatusCodes = [newValue copy]; - [self didChangeValueForKey:@"acceptableStatusCodes"]; - } - } -} - -@synthesize acceptableContentTypes = _acceptableContentTypes; - -+ (BOOL)automaticallyNotifiesObserversOfAcceptableContentTypes -{ - return NO; -} - -- (NSSet *)acceptableContentTypes -{ - return [[self->_acceptableContentTypes retain] autorelease]; -} - -- (void)setAcceptableContentTypes:(NSSet *)newValue -{ - if (self.state != kQRunLoopOperationStateInited) { - assert(NO); - } else { - if (newValue != self->_acceptableContentTypes) { - [self willChangeValueForKey:@"acceptableContentTypes"]; - [self->_acceptableContentTypes autorelease]; - self->_acceptableContentTypes = [newValue copy]; - [self didChangeValueForKey:@"acceptableContentTypes"]; - } - } -} - -@synthesize responseOutputStream = _responseOutputStream; - -+ (BOOL)automaticallyNotifiesObserversOfResponseOutputStream -{ - return NO; -} - -- (NSOutputStream *)responseOutputStream -{ - return [[self->_responseOutputStream retain] autorelease]; -} - -- (void)setResponseOutputStream:(NSOutputStream *)newValue -{ - if (self.dataAccumulator != nil) { - assert(NO); - } else { - if (newValue != self->_responseOutputStream) { - [self willChangeValueForKey:@"responseOutputStream"]; - [self->_responseOutputStream autorelease]; - self->_responseOutputStream = [newValue retain]; - [self didChangeValueForKey:@"responseOutputStream"]; - } - } -} - -@synthesize defaultResponseSize = _defaultResponseSize; - -+ (BOOL)automaticallyNotifiesObserversOfDefaultResponseSize -{ - return NO; -} - -- (NSUInteger)defaultResponseSize -{ - return self->_defaultResponseSize; -} - -- (void)setDefaultResponseSize:(NSUInteger)newValue -{ - if (self.dataAccumulator != nil) { - assert(NO); - } else { - if (newValue != self->_defaultResponseSize) { - [self willChangeValueForKey:@"defaultResponseSize"]; - self->_defaultResponseSize = newValue; - [self didChangeValueForKey:@"defaultResponseSize"]; - } - } -} - -@synthesize maximumResponseSize = _maximumResponseSize; - -+ (BOOL)automaticallyNotifiesObserversOfMaximumResponseSize -{ - return NO; -} - -- (NSUInteger)maximumResponseSize -{ - return self->_maximumResponseSize; -} - -- (void)setMaximumResponseSize:(NSUInteger)newValue -{ - if (self.dataAccumulator != nil) { - assert(NO); - } else { - if (newValue != self->_maximumResponseSize) { - [self willChangeValueForKey:@"maximumResponseSize"]; - self->_maximumResponseSize = newValue; - [self didChangeValueForKey:@"maximumResponseSize"]; - } - } -} - -@synthesize lastRequest = _lastRequest; -@synthesize lastResponse = _lastResponse; -@synthesize responseBody = _responseBody; - -@synthesize connection = _connection; -@synthesize firstData = _firstData; -@synthesize dataAccumulator = _dataAccumulator; - -- (NSURL *)URL -{ - return [self.request URL]; -} - -- (BOOL)isStatusCodeAcceptable -{ - NSIndexSet * acceptableStatusCodes; - NSInteger statusCode; - - assert(self.lastResponse != nil); - - acceptableStatusCodes = self.acceptableStatusCodes; - if (acceptableStatusCodes == nil) { - acceptableStatusCodes = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(200, 100)]; - } - assert(acceptableStatusCodes != nil); - - statusCode = [self.lastResponse statusCode]; - return (statusCode >= 0) && [acceptableStatusCodes containsIndex: (NSUInteger) statusCode]; -} - -- (BOOL)isContentTypeAcceptable -{ - NSString * contentType; - - assert(self.lastResponse != nil); - contentType = [self.lastResponse MIMEType]; - return (self.acceptableContentTypes == nil) || ((contentType != nil) && [self.acceptableContentTypes containsObject:contentType]); -} - -#pragma mark * Start and finish overrides - -- (void)operationDidStart - // Called by QRunLoopOperation when the operation starts. This kicks of an - // asynchronous NSURLConnection. -{ - assert(self.isActualRunLoopThread); - assert(self.state == kQRunLoopOperationStateExecuting); - - assert(self.defaultResponseSize > 0); - assert(self.maximumResponseSize > 0); - assert(self.defaultResponseSize <= self.maximumResponseSize); - - assert(self.request != nil); - - // If a debug error is set, apply that error rather than running the connection. - - #if ! defined(NDEBUG) - if (self.debugError != nil) { - [self finishWithError:self.debugError]; - return; - } - #endif - - // Create a connection that's scheduled in the required run loop modes. - - assert(self.connection == nil); - self.connection = [[[NSURLConnection alloc] initWithRequest:self.request delegate:self startImmediately:NO] autorelease]; - assert(self.connection != nil); - - for (NSString * mode in self.actualRunLoopModes) { - [self.connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:mode]; - } - - [self.connection start]; -} - -- (void)operationWillFinish - // Called by QRunLoopOperation when the operation has finished. We - // do various bits of tidying up. -{ - assert(self.isActualRunLoopThread); - assert(self.state == kQRunLoopOperationStateExecuting); - - // It is possible to hit this state of the operation is cancelled while - // the debugDelayTimer is running. In that case, hey, we'll just accept - // the inevitable and finish rather than trying anything else clever. - - #if ! defined(NDEBUG) - if (self.debugDelayTimer != nil) { - [self.debugDelayTimer invalidate]; - self.debugDelayTimer = nil; - } - #endif - - [self.connection cancel]; - self.connection = nil; - - // If we have an output stream, close it at this point. We might never - // have actually opened this stream but, AFAICT, closing an unopened stream - // doesn't hurt. - - if (self.responseOutputStream != nil) { - [self.responseOutputStream close]; - } -} - -- (void)finishWithError:(NSError *)error - // We override -finishWithError: just so we can handle our debug delay. -{ - // If a debug delay was set, don't finish now but rather start the debug delay timer - // and have it do the actual finish. We clear self.debugDelay so that the next - // time this code runs its doesn't do this again. - // - // We only do this in the non-cancellation case. In the cancellation case, we - // just stop immediately. - - #if ! defined(NDEBUG) - if (self.debugDelay > 0.0) { - if ( (error != nil) && [[error domain] isEqual:NSCocoaErrorDomain] && ([error code] == NSUserCancelledError) ) { - self.debugDelay = 0.0; - } else { - assert(self.debugDelayTimer == nil); - self.debugDelayTimer = [NSTimer timerWithTimeInterval:self.debugDelay target:self selector:@selector(debugDelayTimerDone:) userInfo:error repeats:NO]; - assert(self.debugDelayTimer != nil); - for (NSString * mode in self.actualRunLoopModes) { - [[NSRunLoop currentRunLoop] addTimer:self.debugDelayTimer forMode:mode]; - } - self.debugDelay = 0.0; - return; - } - } - #endif - - [super finishWithError:error]; -} - -#if ! defined(NDEBUG) - -@synthesize debugError = _debugError; -@synthesize debugDelay = _debugDelay; -@synthesize debugDelayTimer = _debugDelayTimer; - -- (void)debugDelayTimerDone:(NSTimer *)timer -{ - NSError * error; - - assert(timer == self.debugDelayTimer); - - error = [[[timer userInfo] retain] autorelease]; - assert( (error == nil) || [error isKindOfClass:[NSError class]] ); - - [self.debugDelayTimer invalidate]; - self.debugDelayTimer = nil; - - [self finishWithError:error]; -} - -#endif - -#pragma mark * NSURLConnection delegate callbacks - -- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace - // See comment in header. -{ - BOOL result; - - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert(protectionSpace != nil); - #pragma unused(protectionSpace) - - result = NO; - if (self.authenticationDelegate != nil) { - result = [self.authenticationDelegate httpOperation:self canAuthenticateAgainstProtectionSpace:protectionSpace]; - } - return result; -} - -- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge - // See comment in header. -{ - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert(challenge != nil); - #pragma unused(challenge) - - if (self.authenticationDelegate != nil) { - [self.authenticationDelegate httpOperation:self didReceiveAuthenticationChallenge:challenge]; - } else { - if ( [challenge previousFailureCount] == 0 ) { - [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge]; - } else { - [[challenge sender] cancelAuthenticationChallenge:challenge]; - } - } -} - -- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response - // See comment in header. -{ - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert( (response == nil) || [response isKindOfClass:[NSHTTPURLResponse class]] ); - - self.lastRequest = request; - self.lastResponse = (NSHTTPURLResponse *) response; - return request; -} - -- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response - // See comment in header. -{ - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert([response isKindOfClass:[NSHTTPURLResponse class]]); - - self.lastResponse = (NSHTTPURLResponse *) response; - - // We don't check the status code here because we want to give the client an opportunity - // to get the data of the error message. Perhaps we /should/ check the content type - // here, but I'm not sure whether that's the right thing to do. -} - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data - // See comment in header. -{ - BOOL success; - - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert(data != nil); - - // If we don't yet have a destination for the data, calculate one. Note that, even - // if there is an output stream, we don't use it for error responses. - - success = YES; - if (self.firstData) { - assert(self.dataAccumulator == nil); - - if ( (self.responseOutputStream == nil) || ! self.isStatusCodeAcceptable ) { - long long length; - - assert(self.dataAccumulator == nil); - - length = [self.lastResponse expectedContentLength]; - if (length == NSURLResponseUnknownLength) { - length = self.defaultResponseSize; - } - if (length <= (long long) self.maximumResponseSize) { - self.dataAccumulator = [NSMutableData dataWithCapacity:(NSUInteger)length]; - } else { - [self finishWithError:[NSError errorWithDomain:kQHTTPOperationErrorDomain code:kQHTTPOperationErrorResponseTooLarge userInfo:nil]]; - success = NO; - } - } - - // If the data is going to an output stream, open it. - - if (success) { - if (self.dataAccumulator == nil) { - assert(self.responseOutputStream != nil); - [self.responseOutputStream open]; - } - } - - self.firstData = NO; - } - - // Write the data to its destination. - - if (success) { - if (self.dataAccumulator != nil) { - if ( ([self.dataAccumulator length] + [data length]) <= self.maximumResponseSize ) { - [self.dataAccumulator appendData:data]; - } else { - [self finishWithError:[NSError errorWithDomain:kQHTTPOperationErrorDomain code:kQHTTPOperationErrorResponseTooLarge userInfo:nil]]; - } - } else { - NSUInteger dataOffset; - NSUInteger dataLength; - const uint8_t * dataPtr; - NSError * error; - NSInteger bytesWritten; - - assert(self.responseOutputStream != nil); - - dataOffset = 0; - dataLength = [data length]; - dataPtr = [data bytes]; - error = nil; - do { - if (dataOffset == dataLength) { - break; - } - bytesWritten = [self.responseOutputStream write:&dataPtr[dataOffset] maxLength:dataLength - dataOffset]; - if (bytesWritten <= 0) { - error = [self.responseOutputStream streamError]; - if (error == nil) { - error = [NSError errorWithDomain:kQHTTPOperationErrorDomain code:kQHTTPOperationErrorOnOutputStream userInfo:nil]; - } - break; - } else { - dataOffset += bytesWritten; - } - } while (YES); - - if (error != nil) { - [self finishWithError:error]; - } - } - } -} - -- (void)connectionDidFinishLoading:(NSURLConnection *)connection - // See comment in header. -{ - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - - assert(self.lastResponse != nil); - - // Swap the data accumulator over to the response data so that we don't trigger a copy. - - assert(self->_responseBody == nil); - self->_responseBody = self->_dataAccumulator; - self->_dataAccumulator = nil; - - // Because we fill out _dataAccumulator lazily, an empty body will leave _dataAccumulator - // set to nil. That's not what our clients expect, so we fix it here. - - if (self->_responseBody == nil) { - self->_responseBody = [[NSData alloc] init]; - assert(self->_responseBody != nil); - } - - if ( ! self.isStatusCodeAcceptable ) { - [self finishWithError:[NSError errorWithDomain:kQHTTPOperationErrorDomain code:self.lastResponse.statusCode userInfo:nil]]; - } else if ( ! self.isContentTypeAcceptable ) { - [self finishWithError:[NSError errorWithDomain:kQHTTPOperationErrorDomain code:kQHTTPOperationErrorBadContentType userInfo:nil]]; - } else { - [self finishWithError:nil]; - } -} - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error - // See comment in header. -{ - assert(self.isActualRunLoopThread); - assert(connection == self.connection); - #pragma unused(connection) - assert(error != nil); - - [self finishWithError:error]; -} - -@end - -NSString * kQHTTPOperationErrorDomain = @"kQHTTPOperationErrorDomain"; diff --git a/AFNetworking/QHTTPOperation/QRunLoopOperation.h b/AFNetworking/QHTTPOperation/QRunLoopOperation.h deleted file mode 100644 index 7c1f76f..0000000 --- a/AFNetworking/QHTTPOperation/QRunLoopOperation.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - File: QRunLoopOperation.h - - Contains: An abstract subclass of NSOperation for async run loop based operations. - - Written by: DTS - - Copyright: Copyright (c) 2010 Apple Inc. All Rights Reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following - terms, and your use, installation, modification or - redistribution of this Apple software constitutes acceptance of - these terms. If you do not agree with these terms, please do - not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following - terms, and subject to these terms, Apple grants you a personal, - non-exclusive license, under Apple's copyrights in this - original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or - without modifications, in source and/or binary forms; provided - that if you redistribute the Apple Software in its entirety and - without modifications, you must retain this notice and the - following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Inc. may be used to endorse or promote - products derived from the Apple Software without specific prior - written permission from Apple. Except as expressly stated in - this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any - patent rights that may be infringed by your derivative works or - by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. - APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING - THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, - INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY - OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY - OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -*/ - -#import - -enum QRunLoopOperationState { - kQRunLoopOperationStateInited, - kQRunLoopOperationStateExecuting, - kQRunLoopOperationStateFinished -}; -typedef enum QRunLoopOperationState QRunLoopOperationState; - -@interface QRunLoopOperation : NSOperation -{ - QRunLoopOperationState _state; - NSThread * _runLoopThread; - NSSet * _runLoopModes; - NSError * _error; -} - -// Things you can configure before queuing the operation. - -// IMPORTANT: Do not change these after queuing the operation; it's very likely that -// bad things will happen if you do. - -@property (retain, readwrite) NSThread * runLoopThread; // default is nil, implying main thread -@property (copy, readwrite) NSSet * runLoopModes; // default is nil, implying set containing NSDefaultRunLoopMode - -// Things that are only meaningful after the operation is finished. - -@property (copy, readonly ) NSError * error; - -// Things you can only alter implicitly. - -@property (assign, readonly ) QRunLoopOperationState state; -@property (retain, readonly ) NSThread * actualRunLoopThread; // main thread if runLoopThread is nil, runLoopThread otherwise -@property (assign, readonly ) BOOL isActualRunLoopThread; // YES if the current thread is the actual run loop thread -@property (copy, readonly ) NSSet * actualRunLoopModes; // set containing NSDefaultRunLoopMode if runLoopModes is nil or empty, runLoopModes otherwise - -@end - -@interface QRunLoopOperation (SubClassSupport) - -// Override points - -// A subclass will probably need to override -operationDidStart and -operationWillFinish -// to set up and tear down its run loop sources, respectively. These are always called -// on the actual run loop thread. -// -// Note that -operationWillFinish will be called even if the operation is cancelled. -// -// -operationWillFinish can check the error property to see whether the operation was -// successful. error will be NSCocoaErrorDomain/NSUserCancelledError on cancellation. -// -// -operationDidStart is allowed to call -finishWithError:. - -- (void)operationDidStart; -- (void)operationWillFinish; - -// Support methods - -// A subclass should call finishWithError: when the operation is complete, passing nil -// for no error and an error otherwise. It must call this on the actual run loop thread. -// -// Note that this will call -operationWillFinish before returning. - -- (void)finishWithError:(NSError *)error; - -@end diff --git a/AFNetworking/QHTTPOperation/QRunLoopOperation.m b/AFNetworking/QHTTPOperation/QRunLoopOperation.m deleted file mode 100644 index ab75aa2..0000000 --- a/AFNetworking/QHTTPOperation/QRunLoopOperation.m +++ /dev/null @@ -1,359 +0,0 @@ -/* - File: QRunLoopOperation.m - - Contains: An abstract subclass of NSOperation for async run loop based operations. - - Written by: DTS - - Copyright: Copyright (c) 2010 Apple Inc. All Rights Reserved. - - Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Inc. - ("Apple") in consideration of your agreement to the following - terms, and your use, installation, modification or - redistribution of this Apple software constitutes acceptance of - these terms. If you do not agree with these terms, please do - not use, install, modify or redistribute this Apple software. - - In consideration of your agreement to abide by the following - terms, and subject to these terms, Apple grants you a personal, - non-exclusive license, under Apple's copyrights in this - original Apple software (the "Apple Software"), to use, - reproduce, modify and redistribute the Apple Software, with or - without modifications, in source and/or binary forms; provided - that if you redistribute the Apple Software in its entirety and - without modifications, you must retain this notice and the - following text and disclaimers in all such redistributions of - the Apple Software. Neither the name, trademarks, service marks - or logos of Apple Inc. may be used to endorse or promote - products derived from the Apple Software without specific prior - written permission from Apple. Except as expressly stated in - this notice, no other rights or licenses, express or implied, - are granted by Apple herein, including but not limited to any - patent rights that may be infringed by your derivative works or - by other works in which the Apple Software may be incorporated. - - The Apple Software is provided by Apple on an "AS IS" basis. - APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, - MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING - THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN - COMBINATION WITH YOUR PRODUCTS. - - IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, - INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED - TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY - OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION - OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY - OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR - OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGE. - -*/ - -#import "QRunLoopOperation.h" - -/* - Theory of Operation - ------------------- - Some critical points: - - 1. By the time we're running on the run loop thread, we know that all further state - transitions happen on the run loop thread. That's because there are only three - states (inited, executing, and finished) and run loop thread code can only run - in the last two states and the transition from executing to finished is - always done on the run loop thread. - - 2. -start can only be called once. So run loop thread code doesn't have to worry - about racing with -start because, by the time the run loop thread code runs, - -start has already been called. - - 3. -cancel can be called multiple times from any thread. Run loop thread code - must take a lot of care with do the right thing with cancellation. - - Some state transitions: - - 1. init -> dealloc - 2. init -> cancel -> dealloc -XXX 3. init -> cancel -> start -> finish -> dealloc - 4. init -> cancel -> start -> startOnRunLoopThreadThread -> finish dealloc -!!! 5. init -> start -> cancel -> startOnRunLoopThreadThread -> finish -> cancelOnRunLoopThreadThread -> dealloc -XXX 6. init -> start -> cancel -> cancelOnRunLoopThreadThread -> startOnRunLoopThreadThread -> finish -> dealloc -XXX 7. init -> start -> cancel -> startOnRunLoopThreadThread -> cancelOnRunLoopThreadThread -> finish -> dealloc - 8. init -> start -> startOnRunLoopThreadThread -> finish -> dealloc - 9. init -> start -> startOnRunLoopThreadThread -> cancel -> cancelOnRunLoopThreadThread -> finish -> dealloc -!!! 10. init -> start -> startOnRunLoopThreadThread -> cancel -> finish -> cancelOnRunLoopThreadThread -> dealloc - 11. init -> start -> startOnRunLoopThreadThread -> finish -> cancel -> dealloc - - Markup: - XXX means that the case doesn't happen. - !!! means that the case is interesting. - - Described: - - 1. It's valid to allocate an operation and never run it. - 2. It's also valid to allocate an operation, cancel it, and yet never run it. - 3. While it's valid to cancel an operation before it starting it, this case doesn't - happen because -start always bounces to the run loop thread to maintain the invariant - that the executing to finished transition always happens on the run loop thread. - 4. In this -startOnRunLoopThread detects the cancellation and finishes immediately. - 5. Because the -cancel can happen on any thread, it's possible for the -cancel - to come in between the -start and the -startOnRunLoop thread. In this case - -startOnRunLoopThread notices isCancelled and finishes straightaway. And - -cancelOnRunLoopThread detects that the operation is finished and does nothing. - 6. This case can never happen because -performSelecton:onThread:xxx - callbacks happen in order, -start is synchronised with -cancel, and -cancel - only schedules if -start has run. - 7. This case can never happen because -startOnRunLoopThread will finish immediately - if it detects isCancelled (see case 5). - 8. This is the standard run-to-completion case. - 9. This is the standard cancellation case. -cancelOnRunLoopThread wins the race - with finish, and it detects that the operation is executing and actually cancels. - 10. In this case the -cancelOnRunLoopThread loses the race with finish, but that's OK - because -cancelOnRunLoopThread already does nothing if the operation is already - finished. - 11. Cancellating after finishing still sets isCancelled but has no impact - on the RunLoop thread code. -*/ - -@interface QRunLoopOperation () - -// read/write versions of public properties - -@property (assign, readwrite) QRunLoopOperationState state; -@property (copy, readwrite) NSError * error; - -@end - -@implementation QRunLoopOperation - -- (id)init -{ - self = [super init]; - if (self != nil) { - assert(self->_state == kQRunLoopOperationStateInited); - } - return self; -} - -- (void)dealloc -{ - assert(self->_state != kQRunLoopOperationStateExecuting); - [self->_runLoopModes release]; - [self->_runLoopThread release]; - [self->_error release]; - [super dealloc]; -} - -#pragma mark * Properties - -@synthesize runLoopThread = _runLoopThread; -@synthesize runLoopModes = _runLoopModes; - -- (NSThread *)actualRunLoopThread - // Returns the effective run loop thread, that is, the one set by the user - // or, if that's not set, the main thread. -{ - NSThread * result; - - result = self.runLoopThread; - if (result == nil) { - result = [NSThread mainThread]; - } - return result; -} - -- (BOOL)isActualRunLoopThread - // Returns YES if the current thread is the actual run loop thread. -{ - return [[NSThread currentThread] isEqual:self.actualRunLoopThread]; -} - -- (NSSet *)actualRunLoopModes -{ - NSSet * result; - - result = self.runLoopModes; - if ( (result == nil) || ([result count] == 0) ) { - result = [NSSet setWithObject:NSDefaultRunLoopMode]; - } - return result; -} - -@synthesize error = _error; - -#pragma mark * Core state transitions - -- (QRunLoopOperationState)state -{ - return self->_state; -} - -- (void)setState:(QRunLoopOperationState)newState - // Change the state of the operation, sending the appropriate KVO notifications. -{ - // any thread - - @synchronized (self) { - QRunLoopOperationState oldState; - - // The following check is really important. The state can only go forward, and there - // should be no redundant changes to the state (that is, newState must never be - // equal to self->_state). - - assert(newState > self->_state); - - // Transitions from executing to finished must be done on the run loop thread. - - assert( (newState != kQRunLoopOperationStateFinished) || self.isActualRunLoopThread ); - - // inited + executing -> isExecuting - // inited + finished -> isFinished - // executing + finished -> isExecuting + isFinished - - oldState = self->_state; - if ( (newState == kQRunLoopOperationStateExecuting) || (oldState == kQRunLoopOperationStateExecuting) ) { - [self willChangeValueForKey:@"isExecuting"]; - } - if (newState == kQRunLoopOperationStateFinished) { - [self willChangeValueForKey:@"isFinished"]; - } - self->_state = newState; - if (newState == kQRunLoopOperationStateFinished) { - [self didChangeValueForKey:@"isFinished"]; - } - if ( (newState == kQRunLoopOperationStateExecuting) || (oldState == kQRunLoopOperationStateExecuting) ) { - [self didChangeValueForKey:@"isExecuting"]; - } - } -} - -- (void)startOnRunLoopThread - // Starts the operation. The actual -start method is very simple, - // deferring all of the work to be done on the run loop thread by this - // method. -{ - assert(self.isActualRunLoopThread); - assert(self.state == kQRunLoopOperationStateExecuting); - - if ([self isCancelled]) { - - // We were cancelled before we even got running. Flip the the finished - // state immediately. - - [self finishWithError:[NSError errorWithDomain:NSCocoaErrorDomain code:NSUserCancelledError userInfo:nil]]; - } else { - [self operationDidStart]; - } -} - -- (void)cancelOnRunLoopThread - // Cancels the operation. -{ - assert(self.isActualRunLoopThread); - - // We know that a) state was kQRunLoopOperationStateExecuting when we were - // scheduled (that's enforced by -cancel), and b) the state can't go - // backwards (that's enforced by -setState), so we know the state must - // either be kQRunLoopOperationStateExecuting or kQRunLoopOperationStateFinished. - // We also know that the transition from executing to finished always - // happens on the run loop thread. Thus, we don't need to lock here. - // We can look at state and, if we're executing, trigger a cancellation. - - if (self.state == kQRunLoopOperationStateExecuting) { - [self finishWithError:[NSError errorWithDomain:NSCocoaErrorDomain code:NSUserCancelledError userInfo:nil]]; - } -} - -- (void)finishWithError:(NSError *)error -{ - assert(self.isActualRunLoopThread); - // error may be nil - - if (self.error == nil) { - self.error = error; - } - [self operationWillFinish]; - self.state = kQRunLoopOperationStateFinished; -} - -#pragma mark * Subclass override points - -- (void)operationDidStart -{ - assert(self.isActualRunLoopThread); -} - -- (void)operationWillFinish -{ - assert(self.isActualRunLoopThread); -} - -#pragma mark * Overrides - -- (BOOL)isConcurrent -{ - // any thread - return YES; -} - -- (BOOL)isExecuting -{ - // any thread - return self.state == kQRunLoopOperationStateExecuting; -} - -- (BOOL)isFinished -{ - // any thread - return self.state == kQRunLoopOperationStateFinished; -} - -- (void)start -{ - // any thread - - assert(self.state == kQRunLoopOperationStateInited); - - // We have to change the state here, otherwise isExecuting won't necessarily return - // true by the time we return from -start. Also, we don't test for cancellation - // here because that would a) result in us sending isFinished notifications on a - // thread that isn't our run loop thread, and b) confuse the core cancellation code, - // which expects to run on our run loop thread. Finally, we don't have to worry - // about races with other threads calling -start. Only one thread is allowed to - // start us at a time. - - self.state = kQRunLoopOperationStateExecuting; - [self performSelector:@selector(startOnRunLoopThread) onThread:self.actualRunLoopThread withObject:nil waitUntilDone:NO modes:[self.actualRunLoopModes allObjects]]; -} - -- (void)cancel -{ - BOOL runCancelOnRunLoopThread; - BOOL oldValue; - - // any thread - - // We need to synchronise here to avoid state changes to isCancelled and state - // while we're running. - - @synchronized (self) { - oldValue = [self isCancelled]; - - // Call our super class so that isCancelled starts returning true immediately. - - [super cancel]; - - // If we were the one to set isCancelled (that is, we won the race with regards - // other threads calling -cancel) and we're actually running (that is, we lost - // the race with other threads calling -start and the run loop thread finishing), - // we schedule to run on the run loop thread. - - runCancelOnRunLoopThread = ! oldValue && self.state == kQRunLoopOperationStateExecuting; - } - if (runCancelOnRunLoopThread) { - [self performSelector:@selector(cancelOnRunLoopThread) onThread:self.actualRunLoopThread withObject:nil waitUntilDone:YES modes:[self.actualRunLoopModes allObjects]]; - } -} - -@end diff --git a/AFNetworking/UIImage+AFNetworking.m b/AFNetworking/UIImage+AFNetworking.m index 377ce7d..07cd308 100644 --- a/AFNetworking/UIImage+AFNetworking.m +++ b/AFNetworking/UIImage+AFNetworking.m @@ -75,7 +75,6 @@ UIGraphicsEndImageContext(); return newImage; - } @end diff --git a/AFNetworking/UIImageView+AFNetworking.h b/AFNetworking/UIImageView+AFNetworking.h new file mode 100644 index 0000000..e3679b4 --- /dev/null +++ b/AFNetworking/UIImageView+AFNetworking.h @@ -0,0 +1,32 @@ +// UIImageView+AFNetworking.h +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFImageRequestOperation.h" + +@interface UIImageView (AFNetworking) + +- (void)setImageWithURL:(NSURL *)url; +- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage; +- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options; + +@end diff --git a/AFNetworking/UIImageView+AFNetworking.m b/AFNetworking/UIImageView+AFNetworking.m new file mode 100644 index 0000000..c740065 --- /dev/null +++ b/AFNetworking/UIImageView+AFNetworking.m @@ -0,0 +1,95 @@ +// UIImageView+AFNetworking.m +// +// Copyright (c) 2011 Gowalla (http://gowalla.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 "UIImageView+AFNetworking.h" + +#import "AFImageCache.h" + +static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperation"; + +@interface UIImageView (_AFNetworking) +@property (readwrite, nonatomic, retain) AFImageRequestOperation *imageRequestOperation; +@end + +@implementation UIImageView (_AFNetworking) +@dynamic imageRequestOperation; +@end + +#pragma mark - + +@implementation UIImageView (AFNetworking) + +- (AFHTTPRequestOperation *)imageRequestOperation { + return objc_getAssociatedObject(self, kUIImageViewImageRequestObjectKey); +} + +- (void)setImageRequestOperation:(AFImageRequestOperation *)imageRequestOperation { + objc_setAssociatedObject(self, kUIImageViewImageRequestObjectKey, imageRequestOperation, OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + ++ (NSOperationQueue *)sharedImageRequestOperationQueue { + static NSOperationQueue *_imageRequestOperationQueue = nil; + + if (!_imageRequestOperationQueue) { + _imageRequestOperationQueue = [[NSOperationQueue alloc] init]; + [_imageRequestOperationQueue setMaxConcurrentOperationCount:6]; + } + + return _imageRequestOperationQueue; +} + +- (void)setImageWithURL:(NSURL *)url { + [self setImageWithURL:url placeholderImage:nil]; +} + +- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage { + [self setImageWithURL:url placeholderImage:placeholderImage imageSize:self.frame.size options:AFImageRequestDefaultOptions]; +} + +- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options { + if (!url) { + return; + } + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; + [request setHTTPShouldHandleCookies:NO]; + [request setHTTPShouldUsePipelining:YES]; + + UIImage *cachedImage = [[AFImageCache sharedImageCache] cachedImageForRequest:request imageSize:imageSize options:options]; + if (cachedImage) { + self.image = cachedImage; + } else { + self.image = placeholderImage; + + self.imageRequestOperation = [AFImageRequestOperation operationWithRequest:request imageSize:imageSize options:options success:^(UIImage *image) { + if ([[request URL] isEqual:[[self.imageRequestOperation request] URL]]) { + self.image = image; + } else { + self.image = placeholderImage; + } + }]; + + [[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation]; + } +} + +@end diff --git a/Example/AFNetworking Example.xcodeproj/project.pbxproj b/Example/AFNetworking Example.xcodeproj/project.pbxproj index 249439a..2ccbf82 100644 --- a/Example/AFNetworking Example.xcodeproj/project.pbxproj +++ b/Example/AFNetworking Example.xcodeproj/project.pbxproj @@ -7,20 +7,20 @@ objects = { /* Begin PBXBuildFile section */ + F874B5D913E0AA6500B28E3E /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5C913E0AA6500B28E3E /* AFHTTPRequestOperation.m */; }; + F874B5DA13E0AA6500B28E3E /* AFImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CA13E0AA6500B28E3E /* AFImageCache.m */; }; + F874B5DB13E0AA6500B28E3E /* AFImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CB13E0AA6500B28E3E /* AFImageRequestOperation.m */; }; + F874B5DC13E0AA6500B28E3E /* AFJSONRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CC13E0AA6500B28E3E /* AFJSONRequestOperation.m */; }; + F874B5DD13E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CD13E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.m */; }; + F874B5DE13E0AA6500B28E3E /* AFRestClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CE13E0AA6500B28E3E /* AFRestClient.m */; }; + F874B5DF13E0AA6500B28E3E /* UIImage+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5CF13E0AA6500B28E3E /* UIImage+AFNetworking.m */; }; + F874B5E013E0AA6500B28E3E /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F874B5D013E0AA6500B28E3E /* UIImageView+AFNetworking.m */; }; F8D25D191396A9D300CF3BD6 /* placeholder-stamp.png in Resources */ = {isa = PBXBuildFile; fileRef = F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */; }; F8D25D1A1396A9D300CF3BD6 /* placeholder-stamp@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */; }; F8DA09D21396ABED0057D0CC /* AFGowallaAPIClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */; }; - F8DA09D31396ABED0057D0CC /* AFImageRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D1E1396A9DE00CF3BD6 /* AFImageRequest.m */; }; F8DA09D41396ABED0057D0CC /* NearbySpotsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09C81396AB690057D0CC /* NearbySpotsViewController.m */; }; F8DA09D51396ABED0057D0CC /* Spot.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09CB1396AB690057D0CC /* Spot.m */; }; F8DA09D61396ABED0057D0CC /* SpotTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09CE1396AB690057D0CC /* SpotTableViewCell.m */; }; - F8DA09D91396ABED0057D0CC /* AFCallback.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25CF01396A98600CF3BD6 /* AFCallback.m */; }; - F8DA09DA1396ABED0057D0CC /* AFHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25CF11396A98600CF3BD6 /* AFHTTPOperation.m */; }; - F8DA09DB1396ABED0057D0CC /* AFImageRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25CF21396A98600CF3BD6 /* AFImageRequestOperation.m */; }; - F8DA09DC1396ABED0057D0CC /* AFRestClient.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25CF31396A98600CF3BD6 /* AFRestClient.m */; }; - F8DA09DE1396ABED0057D0CC /* UIImage+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25CF51396A98600CF3BD6 /* UIImage+AFNetworking.m */; }; - F8DA09DF1396ABED0057D0CC /* QHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D0A1396A9A900CF3BD6 /* QHTTPOperation.m */; }; - F8DA09E01396ABED0057D0CC /* QRunLoopOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D0C1396A9A900CF3BD6 /* QRunLoopOperation.m */; }; F8DA09E11396ABED0057D0CC /* JSONKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D111396A9C400CF3BD6 /* JSONKit.m */; }; F8DA09E21396ABED0057D0CC /* TTTLocationFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D25D141396A9C400CF3BD6 /* TTTLocationFormatter.m */; }; F8DA09E41396AC040057D0CC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F8DA09E31396AC040057D0CC /* main.m */; }; @@ -32,20 +32,22 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - F8D25CEA1396A98600CF3BD6 /* AFCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFCallback.h; path = ../AFNetworking/AFCallback.h; sourceTree = ""; }; - F8D25CEB1396A98600CF3BD6 /* AFHTTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFHTTPOperation.h; path = ../AFNetworking/AFHTTPOperation.h; sourceTree = ""; }; - F8D25CEC1396A98600CF3BD6 /* AFImageRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFImageRequestOperation.h; path = ../AFNetworking/AFImageRequestOperation.h; sourceTree = ""; }; - F8D25CED1396A98600CF3BD6 /* AFRestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFRestClient.h; path = ../AFNetworking/AFRestClient.h; sourceTree = ""; }; - F8D25CEF1396A98600CF3BD6 /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "../AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; - F8D25CF01396A98600CF3BD6 /* AFCallback.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFCallback.m; path = ../AFNetworking/AFCallback.m; sourceTree = ""; }; - F8D25CF11396A98600CF3BD6 /* AFHTTPOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFHTTPOperation.m; path = ../AFNetworking/AFHTTPOperation.m; sourceTree = ""; }; - F8D25CF21396A98600CF3BD6 /* AFImageRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFImageRequestOperation.m; path = ../AFNetworking/AFImageRequestOperation.m; sourceTree = ""; }; - F8D25CF31396A98600CF3BD6 /* AFRestClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFRestClient.m; path = ../AFNetworking/AFRestClient.m; sourceTree = ""; }; - F8D25CF51396A98600CF3BD6 /* UIImage+AFNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIImage+AFNetworking.m"; path = "../AFNetworking/UIImage+AFNetworking.m"; sourceTree = ""; }; - F8D25D091396A9A900CF3BD6 /* QHTTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QHTTPOperation.h; sourceTree = ""; }; - F8D25D0A1396A9A900CF3BD6 /* QHTTPOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QHTTPOperation.m; sourceTree = ""; }; - F8D25D0B1396A9A900CF3BD6 /* QRunLoopOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = QRunLoopOperation.h; sourceTree = ""; }; - F8D25D0C1396A9A900CF3BD6 /* QRunLoopOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = QRunLoopOperation.m; sourceTree = ""; }; + F874B5C913E0AA6500B28E3E /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFHTTPRequestOperation.m; path = ../AFNetworking/AFHTTPRequestOperation.m; sourceTree = ""; }; + F874B5CA13E0AA6500B28E3E /* AFImageCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFImageCache.m; path = ../AFNetworking/AFImageCache.m; sourceTree = ""; }; + F874B5CB13E0AA6500B28E3E /* AFImageRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFImageRequestOperation.m; path = ../AFNetworking/AFImageRequestOperation.m; sourceTree = ""; }; + F874B5CC13E0AA6500B28E3E /* AFJSONRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFJSONRequestOperation.m; path = ../AFNetworking/AFJSONRequestOperation.m; sourceTree = ""; }; + F874B5CD13E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = ../AFNetworking/AFNetworkActivityIndicatorManager.m; sourceTree = ""; }; + F874B5CE13E0AA6500B28E3E /* AFRestClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFRestClient.m; path = ../AFNetworking/AFRestClient.m; sourceTree = ""; }; + F874B5CF13E0AA6500B28E3E /* UIImage+AFNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIImage+AFNetworking.m"; path = "../AFNetworking/UIImage+AFNetworking.m"; sourceTree = ""; }; + F874B5D013E0AA6500B28E3E /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "../AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + F874B5D113E0AA6500B28E3E /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFHTTPRequestOperation.h; path = ../AFNetworking/AFHTTPRequestOperation.h; sourceTree = ""; }; + F874B5D213E0AA6500B28E3E /* AFImageCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFImageCache.h; path = ../AFNetworking/AFImageCache.h; sourceTree = ""; }; + F874B5D313E0AA6500B28E3E /* AFImageRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFImageRequestOperation.h; path = ../AFNetworking/AFImageRequestOperation.h; sourceTree = ""; }; + F874B5D413E0AA6500B28E3E /* AFJSONRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFJSONRequestOperation.h; path = ../AFNetworking/AFJSONRequestOperation.h; sourceTree = ""; }; + F874B5D513E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = ../AFNetworking/AFNetworkActivityIndicatorManager.h; sourceTree = ""; }; + F874B5D613E0AA6500B28E3E /* AFRestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; name = AFRestClient.h; path = ../AFNetworking/AFRestClient.h; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; + F874B5D713E0AA6500B28E3E /* UIImage+AFNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImage+AFNetworking.h"; path = "../AFNetworking/UIImage+AFNetworking.h"; sourceTree = ""; }; + F874B5D813E0AA6500B28E3E /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "../AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; F8D25D101396A9C400CF3BD6 /* JSONKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSONKit.h; sourceTree = ""; }; F8D25D111396A9C400CF3BD6 /* JSONKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JSONKit.m; sourceTree = ""; }; F8D25D131396A9C400CF3BD6 /* TTTLocationFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTTLocationFormatter.h; sourceTree = ""; }; @@ -53,9 +55,7 @@ F8D25D171396A9D300CF3BD6 /* placeholder-stamp.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp.png"; path = "Images/placeholder-stamp.png"; sourceTree = SOURCE_ROOT; }; F8D25D181396A9D300CF3BD6 /* placeholder-stamp@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "placeholder-stamp@2x.png"; path = "Images/placeholder-stamp@2x.png"; sourceTree = SOURCE_ROOT; }; F8D25D1B1396A9DE00CF3BD6 /* AFGowallaAPIClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFGowallaAPIClient.h; path = Classes/AFGowallaAPIClient.h; sourceTree = ""; }; - F8D25D1C1396A9DE00CF3BD6 /* AFImageRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AFImageRequest.h; path = Classes/AFImageRequest.h; sourceTree = ""; }; F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFGowallaAPIClient.m; path = Classes/AFGowallaAPIClient.m; sourceTree = ""; }; - F8D25D1E1396A9DE00CF3BD6 /* AFImageRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AFImageRequest.m; path = Classes/AFImageRequest.m; sourceTree = ""; }; F8DA09C71396AB690057D0CC /* NearbySpotsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NearbySpotsViewController.h; sourceTree = ""; }; F8DA09C81396AB690057D0CC /* NearbySpotsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NearbySpotsViewController.m; sourceTree = ""; }; F8DA09CA1396AB690057D0CC /* Spot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Spot.h; sourceTree = ""; }; @@ -92,18 +92,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - F8D25D081396A9A900CF3BD6 /* QHTTPOperation */ = { - isa = PBXGroup; - children = ( - F8D25D091396A9A900CF3BD6 /* QHTTPOperation.h */, - F8D25D0A1396A9A900CF3BD6 /* QHTTPOperation.m */, - F8D25D0B1396A9A900CF3BD6 /* QRunLoopOperation.h */, - F8D25D0C1396A9A900CF3BD6 /* QRunLoopOperation.m */, - ); - name = QHTTPOperation; - path = ../AFNetworking/QHTTPOperation; - sourceTree = ""; - }; F8D25D0F1396A9C400CF3BD6 /* JSONKit */ = { isa = PBXGroup; children = ( @@ -114,13 +102,13 @@ path = Vendor/JSONKit; sourceTree = ""; }; - F8D25D121396A9C400CF3BD6 /* TTT */ = { + F8D25D121396A9C400CF3BD6 /* FormatterKit */ = { isa = PBXGroup; children = ( F8D25D131396A9C400CF3BD6 /* TTTLocationFormatter.h */, F8D25D141396A9C400CF3BD6 /* TTTLocationFormatter.m */, ); - name = TTT; + name = FormatterKit; path = Vendor/TTT; sourceTree = ""; }; @@ -215,29 +203,34 @@ F8E469931395743A00DB05C8 /* Vendor */ = { isa = PBXGroup; children = ( - F8E469941395744600DB05C8 /* Alamofire */, - F8D25D081396A9A900CF3BD6 /* QHTTPOperation */, + F8E469941395744600DB05C8 /* AFNetworking */, F8D25D0F1396A9C400CF3BD6 /* JSONKit */, - F8D25D121396A9C400CF3BD6 /* TTT */, + F8D25D121396A9C400CF3BD6 /* FormatterKit */, ); name = Vendor; sourceTree = ""; }; - F8E469941395744600DB05C8 /* Alamofire */ = { + F8E469941395744600DB05C8 /* AFNetworking */ = { isa = PBXGroup; children = ( - F8D25CEA1396A98600CF3BD6 /* AFCallback.h */, - F8D25CF01396A98600CF3BD6 /* AFCallback.m */, - F8D25CEB1396A98600CF3BD6 /* AFHTTPOperation.h */, - F8D25CF11396A98600CF3BD6 /* AFHTTPOperation.m */, - F8D25CEC1396A98600CF3BD6 /* AFImageRequestOperation.h */, - F8D25CF21396A98600CF3BD6 /* AFImageRequestOperation.m */, - F8D25CED1396A98600CF3BD6 /* AFRestClient.h */, - F8D25CF31396A98600CF3BD6 /* AFRestClient.m */, - F8D25CEF1396A98600CF3BD6 /* UIImage+AFNetworking.h */, - F8D25CF51396A98600CF3BD6 /* UIImage+AFNetworking.m */, + F874B5D113E0AA6500B28E3E /* AFHTTPRequestOperation.h */, + F874B5C913E0AA6500B28E3E /* AFHTTPRequestOperation.m */, + F874B5D413E0AA6500B28E3E /* AFJSONRequestOperation.h */, + F874B5CC13E0AA6500B28E3E /* AFJSONRequestOperation.m */, + F874B5D613E0AA6500B28E3E /* AFRestClient.h */, + F874B5CE13E0AA6500B28E3E /* AFRestClient.m */, + F874B5D313E0AA6500B28E3E /* AFImageRequestOperation.h */, + F874B5CB13E0AA6500B28E3E /* AFImageRequestOperation.m */, + F874B5D213E0AA6500B28E3E /* AFImageCache.h */, + F874B5CA13E0AA6500B28E3E /* AFImageCache.m */, + F874B5D713E0AA6500B28E3E /* UIImage+AFNetworking.h */, + F874B5CF13E0AA6500B28E3E /* UIImage+AFNetworking.m */, + F874B5D813E0AA6500B28E3E /* UIImageView+AFNetworking.h */, + F874B5D013E0AA6500B28E3E /* UIImageView+AFNetworking.m */, + F874B5D513E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.h */, + F874B5CD13E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.m */, ); - name = Alamofire; + name = AFNetworking; sourceTree = ""; }; F8E469B71395759C00DB05C8 /* Networking Extensions */ = { @@ -245,8 +238,6 @@ children = ( F8D25D1B1396A9DE00CF3BD6 /* AFGowallaAPIClient.h */, F8D25D1D1396A9DE00CF3BD6 /* AFGowallaAPIClient.m */, - F8D25D1C1396A9DE00CF3BD6 /* AFImageRequest.h */, - F8D25D1E1396A9DE00CF3BD6 /* AFImageRequest.m */, ); name = "Networking Extensions"; sourceTree = ""; @@ -287,6 +278,7 @@ F8E469571395739C00DB05C8 /* Project object */ = { isa = PBXProject; attributes = { + LastUpgradeCheck = 0420; ORGANIZATIONNAME = Gowalla; }; buildConfigurationList = F8E4695A1395739C00DB05C8 /* Build configuration list for PBXProject "AFNetworking Example" */; @@ -324,21 +316,21 @@ buildActionMask = 2147483647; files = ( F8DA09D21396ABED0057D0CC /* AFGowallaAPIClient.m in Sources */, - F8DA09D31396ABED0057D0CC /* AFImageRequest.m in Sources */, F8DA09D41396ABED0057D0CC /* NearbySpotsViewController.m in Sources */, F8DA09D51396ABED0057D0CC /* Spot.m in Sources */, F8DA09D61396ABED0057D0CC /* SpotTableViewCell.m in Sources */, - F8DA09D91396ABED0057D0CC /* AFCallback.m in Sources */, - F8DA09DA1396ABED0057D0CC /* AFHTTPOperation.m in Sources */, - F8DA09DB1396ABED0057D0CC /* AFImageRequestOperation.m in Sources */, - F8DA09DC1396ABED0057D0CC /* AFRestClient.m in Sources */, - F8DA09DE1396ABED0057D0CC /* UIImage+AFNetworking.m in Sources */, - F8DA09DF1396ABED0057D0CC /* QHTTPOperation.m in Sources */, - F8DA09E01396ABED0057D0CC /* QRunLoopOperation.m in Sources */, F8DA09E11396ABED0057D0CC /* JSONKit.m in Sources */, F8DA09E21396ABED0057D0CC /* TTTLocationFormatter.m in Sources */, F8DA09E41396AC040057D0CC /* main.m in Sources */, F8DA09E81396AC220057D0CC /* AppDelegate.m in Sources */, + F874B5D913E0AA6500B28E3E /* AFHTTPRequestOperation.m in Sources */, + F874B5DA13E0AA6500B28E3E /* AFImageCache.m in Sources */, + F874B5DB13E0AA6500B28E3E /* AFImageRequestOperation.m in Sources */, + F874B5DC13E0AA6500B28E3E /* AFJSONRequestOperation.m in Sources */, + F874B5DD13E0AA6500B28E3E /* AFNetworkActivityIndicatorManager.m in Sources */, + F874B5DE13E0AA6500B28E3E /* AFRestClient.m in Sources */, + F874B5DF13E0AA6500B28E3E /* UIImage+AFNetworking.m in Sources */, + F874B5E013E0AA6500B28E3E /* UIImageView+AFNetworking.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Example/AFNetworking Example.xcodeproj/project.xcworkspace/xcuserdata/mattt.xcuserdatad/UserInterfaceState.xcuserstate b/Example/AFNetworking Example.xcodeproj/project.xcworkspace/xcuserdata/mattt.xcuserdatad/UserInterfaceState.xcuserstate index 10dd190..200f750 100644 --- a/Example/AFNetworking Example.xcodeproj/project.xcworkspace/xcuserdata/mattt.xcuserdatad/UserInterfaceState.xcuserstate +++ b/Example/AFNetworking Example.xcodeproj/project.xcworkspace/xcuserdata/mattt.xcuserdatad/UserInterfaceState.xcuserstate @@ -11,7 +11,7 @@ $class CF$UID - 52 + 77 NS.keys @@ -32,17 +32,17 @@ CF$UID - 308 + 249 - 38A1FB4D-CFF6-414D-81B8-5577D135BD6D + 3EA85847-A455-495E-A319-B141EC6B5795 IDEWorkspaceDocument $class CF$UID - 43 + 83 NS.keys @@ -70,20 +70,36 @@ CF$UID 10 - - NS.objects - CF$UID 11 CF$UID - 306 + 12 + + + NS.objects + + + CF$UID + 13 CF$UID - 21 + 247 + + + CF$UID + 248 + + + CF$UID + 31 + + + CF$UID + 2 CF$UID @@ -91,36 +107,30 @@ CF$UID - 307 + 116 CF$UID - 2 + 31 - IDEWorkspaceTabController_4477BFCD-C087-4B94-AEA0-FFB3C20C7F0F - IDEOrderedWorkspaceTabControllers - IDEWindowToolbarIsVisible - IDEActiveWorkspaceTabController + IDEWorkspaceTabController_0095BF78-AA5F-4959-B8DF-2B532303659E IDEWindowFrame + IDEOrderedWorkspaceTabControllers + IDEWindowInFullscreenMode IDEWorkspaceWindowControllerUniqueIdentifier + IDEActiveWorkspaceTabController + IDEWindowToolbarIsVisible + IDEWindowTabBarIsVisible $class CF$UID - 43 + 83 NS.keys - - CF$UID - 12 - - - CF$UID - 13 - CF$UID 14 @@ -145,9 +155,6 @@ CF$UID 19 - - NS.objects - CF$UID 20 @@ -156,47 +163,56 @@ CF$UID 21 + + NS.objects + CF$UID 22 CF$UID - 216 + 116 CF$UID - 223 + 139 CF$UID - 297 + 140 CF$UID - 159 + 147 CF$UID - 42 + 238 + + + CF$UID + 31 + + + CF$UID + 63 - IDETabLabel - IDEShowNavigator IDEEditorArea + IDEShowNavigator + IDETabLabel IDEWorkspaceTabControllerUtilityAreaSplitView IDENavigatorArea IDEWorkspaceTabControllerDesignAreaSplitView IDEShowUtilities AssistantEditorsLayout - Build target AFNetworkingExample - $class CF$UID - 43 + 83 NS.keys @@ -232,16 +248,12 @@ CF$UID 30 - - CF$UID - 31 - NS.objects CF$UID - 21 + 31 CF$UID @@ -249,48 +261,44 @@ CF$UID - 66 + 86 CF$UID - 21 + 116 CF$UID - 42 + 63 CF$UID - 102 + 117 CF$UID - 110 + 125 CF$UID - 111 - - - CF$UID - 207 + 126 ShowDebuggerArea - IDEEDitorArea_DebugArea IDEEditorMode_Standard + IDEEDitorArea_DebugArea IDEShowEditor EditorMode DebuggerSplitView DefaultPersistentRepresentations - IDEEditorMode_Genius layoutTree + $class CF$UID - 43 + 83 NS.keys @@ -298,359 +306,13 @@ CF$UID 33 + + NS.objects + CF$UID 34 - - CF$UID - 35 - - - CF$UID - 36 - - - CF$UID - 37 - - - CF$UID - 38 - - - NS.objects - - - CF$UID - 39 - - - CF$UID - 40 - - - CF$UID - 44 - - - CF$UID - 39 - - - CF$UID - 57 - - - CF$UID - 63 - - - - LayoutFocusMode - console - IDEDebugArea_SplitView - LayoutMode - IDEDebuggerAreaSplitView - variables - 1 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 41 - - - NS.objects - - - CF$UID - 42 - - - - ConsoleFilterMode - 0 - - $classes - - NSMutableDictionary - NSDictionary - NSObject - - $classname - NSMutableDictionary - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 45 - - - NS.objects - - - CF$UID - 46 - - - - DVTSplitViewItems - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 47 - - - CF$UID - 53 - - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 50 - - - CF$UID - 51 - - - - DVTIdentifier - DVTViewMagnitude - VariablesView - 320 - - $classes - - NSDictionary - NSObject - - $classname - NSDictionary - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 54 - - - CF$UID - 55 - - - - ConsoleArea - 1259 - - $classes - - NSMutableArray - NSArray - NSObject - - $classname - NSMutableArray - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 45 - - - NS.objects - - - CF$UID - 58 - - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 59 - - - CF$UID - 61 - - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 50 - - - CF$UID - 60 - - - - 320 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 54 - - - CF$UID - 62 - - - - 1259 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 64 - - - NS.objects - - - CF$UID - 65 - - - - DBGVariablesViewFilterMode - 2 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 67 - - - NS.objects - - - CF$UID - 68 - EditorLayout_PersistentRepresentation @@ -658,20 +320,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 69 + 35 NS.objects CF$UID - 70 + 36 @@ -680,36 +342,36 @@ $class CF$UID - 52 + 77 NS.keys CF$UID - 71 + 37 CF$UID - 72 + 38 CF$UID - 73 + 39 NS.objects CF$UID - 74 + 40 CF$UID - 42 + 63 CF$UID - 100 + 84 @@ -720,13 +382,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 75 + 41 @@ -734,22 +396,61 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 76 + 42 CF$UID - 77 + 43 + + + CF$UID + 44 + + + CF$UID + 45 + + + CF$UID + 46 + + + CF$UID + 47 + + + CF$UID + 48 + + + NS.objects + + + CF$UID + 49 + + + CF$UID + 50 + + + CF$UID + 69 CF$UID 78 + + CF$UID + 54 + CF$UID 79 @@ -758,45 +459,6 @@ CF$UID 80 - - CF$UID - 81 - - - CF$UID - 82 - - - NS.objects - - - CF$UID - 83 - - - CF$UID - 84 - - - CF$UID - 92 - - - CF$UID - 95 - - - CF$UID - 96 - - - CF$UID - 97 - - - CF$UID - 98 - FileDataType @@ -806,43 +468,122 @@ DocumentNavigableItemName DocumentExtensionIdentifier DocumentURL - com.apple.dt.IDE.BuildLogContentType + public.objective-c-source $class CF$UID - 91 + 68 DocumentLocation CF$UID - 88 + 64 DomainIdentifier CF$UID - 0 + 51 IdentifierPath CF$UID - 85 + 52 IndexOfDocumentIdentifier CF$UID - 87 + 63 + Xcode.IDENavigableItemDomain.WorkspaceStructure + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 53 + + + CF$UID + 56 + + + CF$UID + 58 + + + CF$UID + 60 + + + $class CF$UID - 86 + 55 + + Identifier + + CF$UID + 54 - NS.objects - + NearbySpotsViewController.m + + $classes + + IDEArchivableStringIndexPair + NSObject + + $classname + IDEArchivableStringIndexPair + + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 57 + + + Controllers + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 59 + + + Classes + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 61 + + + AFNetworkingExample $classes @@ -852,17 +593,17 @@ $classname NSArray - 9223372036854775807 + 0 $class CF$UID - 90 + 67 documentURL CF$UID - 89 + 65 timestamp @@ -870,7 +611,25 @@ 0 - x-xcode-log://CEB352F9-1C85-4BD4-BA9F-87C4EFFED35A + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Controllers/NearbySpotsViewController.m + + + $classes + + NSMutableString + NSString + NSObject + + $classname + NSMutableString + $classes @@ -893,41 +652,70 @@ $class CF$UID - 52 + 77 NS.keys CF$UID - 93 + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 NS.objects CF$UID - 94 + 74 + + + CF$UID + 75 + + + CF$UID + 31 + + + CF$UID + 76 - SelectedDocumentLocations + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + HideAllIssues + PrimaryDocumentSelectedCharacterRange + 334081692.98871702 + {0, 1904} + {6220, 0} - $class - - CF$UID - 86 - - NS.objects - + $classes + + NSDictionary + NSObject + + $classname + NSDictionary - - - Xcode.IDEKit.EditorDocument.LogDocument + -tableView:cellForRowAtIndexPath: + Xcode.IDEKit.EditorDocument.SourceCode $class CF$UID - 99 + 82 NS.base @@ -937,9 +725,10 @@ NS.relative CF$UID - 89 + 81 + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Controllers/NearbySpotsViewController.m $classes @@ -949,75 +738,209 @@ $classname NSURL + + $classes + + NSMutableDictionary + NSDictionary + NSObject + + $classname + NSMutableDictionary + $class CF$UID - 86 + 62 NS.objects CF$UID - 101 + 85 - {{0, 0}, {1580, 894}} + {{0, 0}, {1580, 1008}} $class CF$UID - 43 + 83 NS.keys CF$UID - 45 + 87 + + + CF$UID + 88 + + + CF$UID + 89 + + + CF$UID + 90 + + + CF$UID + 91 + + + CF$UID + 92 NS.objects + + CF$UID + 93 + + + CF$UID + 94 + + + CF$UID + 96 + + + CF$UID + 93 + + + CF$UID + 108 + + + CF$UID + 114 + + + + LayoutFocusMode + console + IDEDebuggerAreaSplitView + LayoutMode + IDEDebugArea_SplitView + variables + 1 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 95 + + + NS.objects + + + CF$UID + 63 + + + + ConsoleFilterMode + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 97 + + + NS.objects + + + CF$UID + 98 + + + + DVTSplitViewItems + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 99 + + + CF$UID + 104 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 102 + CF$UID 103 + DVTIdentifier + DVTViewMagnitude + VariablesView + 790 $class CF$UID - 56 - - NS.objects - - - CF$UID - 104 - - - CF$UID - 107 - - - - - $class - - CF$UID - 52 + 77 NS.keys CF$UID - 48 + 100 CF$UID - 49 + 101 NS.objects @@ -1032,97 +955,151 @@ - IDEEditor - 916 + ConsoleArea + 789 + + $classes + + NSMutableArray + NSArray + NSObject + + $classname + NSMutableArray + $class CF$UID - 52 + 83 NS.keys CF$UID - 48 - - - CF$UID - 49 + 97 NS.objects - - CF$UID - 108 - CF$UID 109 - IDEDebuggerArea - 100 $class CF$UID - 43 + 107 - NS.keys - NS.objects - + + + CF$UID + 110 + + + CF$UID + 112 + + $class CF$UID - 43 + 77 NS.keys CF$UID - 112 + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 102 + + + CF$UID + 111 + + + + 790 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 105 CF$UID 113 - NS.objects - - - CF$UID - 114 - - - CF$UID - 115 - - - SplitPosition - EditorLayout_PersistentRepresentation - 0.5 + 789 $class CF$UID - 43 + 83 NS.keys CF$UID - 116 + 115 + + NS.objects + CF$UID - 117 + 93 + + + + VariablesViewSelectedScope + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 97 NS.objects @@ -1131,26 +1108,45 @@ CF$UID 118 - - CF$UID - 166 - - Alternate - Main $class CF$UID - 52 + 107 - NS.keys + NS.objects CF$UID 119 + + CF$UID + 122 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + CF$UID 120 @@ -1160,893 +1156,57 @@ 121 - NS.objects - - - CF$UID - 122 - - - CF$UID - 42 - - - CF$UID - 164 - - - EditorLayout_StateSavingStateDictionaries - EditorLayout_Selected - EditorLayout_Geometry + IDEEditor + 792 $class CF$UID - 56 + 77 + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + NS.objects CF$UID 123 - - - - $class - - CF$UID - 43 - - NS.keys - CF$UID 124 - - CF$UID - 125 - - - CF$UID - 126 - - - CF$UID - 127 - - - CF$UID - 128 - - - CF$UID - 129 - - - CF$UID - 130 - + + IDEDebuggerArea + 216 + + $class + + CF$UID + 83 + + NS.keys + NS.objects - - - CF$UID - 131 - - - CF$UID - 132 - - - CF$UID - 152 - - - CF$UID - 135 - - - CF$UID - 135 - - - CF$UID - 161 - - - CF$UID - 162 - - - - FileDataType - ArchivableRepresentation - EditorState - NavigableItemName - DocumentNavigableItemName - DocumentExtensionIdentifier - DocumentURL - public.precompiled-c-header - - $class - - CF$UID - 91 - - DocumentLocation - - CF$UID - 149 - - DomainIdentifier - - CF$UID - 0 - - IdentifierPath - - CF$UID - 133 - - IndexOfDocumentIdentifier - - CF$UID - 42 - + $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 134 - - - CF$UID - 137 - - - CF$UID - 139 - - - CF$UID - 141 - - - CF$UID - 146 - - - - - $class - - CF$UID - 136 - - Identifier - - CF$UID - 135 - - - Prefix.pch - - $classes - - IDEArchivableStringIndexPair - NSObject - - $classname - IDEArchivableStringIndexPair - - - $class - - CF$UID - 136 - - Identifier CF$UID 138 - - Supporting Files - - $class - - CF$UID - 136 - - Identifier - - CF$UID - 140 - - - Classes - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 142 - - - CF$UID - 143 - - - NS.objects - - - CF$UID - 144 - - - CF$UID - 145 - - - - manualDomainIdentifier - navigableItem_name - Xcode.IDENavigableItemDomain.WorkspaceStructure - AFNetworkingExample - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 147 - - - NS.objects - - - CF$UID - 148 - - - - identifier - Xcode.IDEKit.GeniusCategory.Manual - - $class - - CF$UID - 90 - - documentURL - - CF$UID - 150 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Prefix.pch - - - $classes - - NSMutableString - NSString - NSObject - - $classname - NSMutableString - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 157 - - - CF$UID - 158 - - - CF$UID - 159 - - - CF$UID - 160 - - - - PrimaryDocumentTimestamp - PrimaryDocumentVisibleCharacterRange - HideAllIssues - PrimaryDocumentSelectedCharacterRange - 328564090.93231797 - {0, 344} - - {0, 0} - Xcode.IDEKit.EditorDocument.SourceCode - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 163 - - - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Prefix.pch - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 165 - - - - {{0, 0}, {1109, 1364}} - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 119 - - - CF$UID - 120 - - - CF$UID - 121 - - - NS.objects - - - CF$UID - 167 - - - CF$UID - 42 - - - CF$UID - 205 - - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 168 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 124 - - - CF$UID - 125 - - - CF$UID - 126 - - - CF$UID - 127 - - - CF$UID - 128 - - - CF$UID - 129 - - - CF$UID - 130 - - - NS.objects - - - CF$UID - 169 - - - CF$UID - 170 - - - CF$UID - 176 - - - CF$UID - 145 - - - CF$UID - 145 - - - CF$UID - 203 - - - CF$UID - 204 - - - - com.apple.xcode.project - - $class - - CF$UID - 91 - - DocumentLocation - - CF$UID - 174 - - DomainIdentifier - - CF$UID - 144 - - IdentifierPath - - CF$UID - 171 - - IndexOfDocumentIdentifier - - CF$UID - 173 - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 172 - - - - - $class - - CF$UID - 136 - - Identifier - - CF$UID - 145 - - - 9223372036854775807 - - $class - - CF$UID - 90 - - documentURL - - CF$UID - 175 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample.xcodeproj/ - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 177 - - - CF$UID - 178 - - - CF$UID - 179 - - - CF$UID - 180 - - - CF$UID - 181 - - - NS.objects - - - CF$UID - 182 - - - CF$UID - 183 - - - CF$UID - 193 - - - CF$UID - 194 - - - CF$UID - 202 - - - - Xcode3ProjectEditorPreviousProjectEditorClass - Xcode3ProjectEditor.sourceList.splitview - Xcode3ProjectEditorPreviousTargetEditorClass - Xcode3ProjectEditorSelectedDocumentLocations - Xcode3ProjectEditor_Xcode3TargetEditor - Xcode3ProjectInfoEditor - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 184 - - - NS.objects - - - CF$UID - 185 - - - - DVTSplitViewItems - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 186 - - - CF$UID - 191 - - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - - - CF$UID - 190 - - - - DVTIdentifier - DVTViewMagnitude - - 170 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - - - CF$UID - 192 - - - - 940 - Xcode3TargetEditor - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 195 - - - - - $class - - CF$UID - 201 - - documentURL - - CF$UID - 196 - - selection - - CF$UID - 198 - - timestamp - - CF$UID - 197 - - - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample.xcodeproj/ - 328564090.93203801 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 199 - - - CF$UID - 200 - - - NS.objects - - - CF$UID - 193 - - - CF$UID - 145 - - - - Editor - Target - - $classes - - Xcode3ProjectDocumentLocation - DVTDocumentLocation - NSObject - - $classname - Xcode3ProjectDocumentLocation - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 196 - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 206 - - - - {{0, 0}, {2220, 1364}} - - $class - - CF$UID - 215 - geniusEditorContextNode CF$UID @@ -2055,19 +1215,19 @@ primaryEditorContextNode CF$UID - 208 + 127 rootLayoutTreeNode CF$UID - 212 + 135 $class CF$UID - 214 + 137 children @@ -2079,63 +1239,128 @@ documentArchivableRepresentation CF$UID - 209 + 128 orientation 0 parent CF$UID - 212 + 135 $class CF$UID - 91 + 68 DocumentLocation CF$UID - 88 + 64 DomainIdentifier CF$UID - 0 + 51 IdentifierPath CF$UID - 210 + 129 IndexOfDocumentIdentifier CF$UID - 211 + 63 $class CF$UID - 86 + 62 NS.objects - + + + CF$UID + 130 + + + CF$UID + 131 + + + CF$UID + 132 + + + CF$UID + 133 + + - 9223372036854775807 $class CF$UID - 214 + 55 + + Identifier + + CF$UID + 54 + + + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 57 + + + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 59 + + + + $class + + CF$UID + 55 + + Identifier + + CF$UID + 134 + + + AFNetworkingExample + + $class + + CF$UID + 137 children CF$UID - 213 + 136 contentType 0 @@ -2156,13 +1381,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 208 + 127 @@ -2184,24 +1409,25 @@ $classname IDEWorkspaceTabControllerLayoutTree + NearbySpotsViewController.m $class CF$UID - 43 + 83 NS.keys CF$UID - 45 + 97 NS.objects CF$UID - 217 + 141 @@ -2209,17 +1435,17 @@ $class CF$UID - 56 + 107 NS.objects CF$UID - 218 + 142 CF$UID - 221 + 145 @@ -2227,187 +1453,187 @@ $class CF$UID - 52 + 77 NS.keys CF$UID - 48 + 100 CF$UID - 49 + 101 NS.objects CF$UID - 219 + 143 CF$UID - 220 + 144 - 792 + 986 $class CF$UID - 52 + 77 NS.keys CF$UID - 48 + 100 CF$UID - 49 + 101 NS.objects CF$UID - 219 + 143 CF$UID - 222 + 146 - 224 + 22 $class CF$UID - 43 + 83 NS.keys CF$UID - 224 + 148 CF$UID - 225 + 149 CF$UID - 226 + 150 CF$UID - 227 + 151 CF$UID - 228 + 152 NS.objects CF$UID - 229 + 153 CF$UID - 262 + 177 CF$UID - 266 + 192 CF$UID - 228 + 149 CF$UID - 279 + 197 Xcode.IDEKit.Navigator.Structure - Xcode.DebuggerKit.ThreadsStacksNavigator Xcode.IDEKit.Navigator.BatchFind + Xcode.IDEKit.Navigator.Debug SelectedNavigator Xcode.IDEKit.Navigator.Issues $class CF$UID - 43 + 83 NS.keys CF$UID - 230 + 154 CF$UID - 231 + 155 CF$UID - 232 + 156 CF$UID - 233 + 157 CF$UID - 234 + 158 CF$UID - 235 + 159 CF$UID - 236 + 160 NS.objects CF$UID - 237 + 161 CF$UID - 159 + 31 CF$UID - 238 + 162 CF$UID - 159 + 31 CF$UID - 159 + 31 CF$UID - 240 + 164 CF$UID - 246 + 167 @@ -2418,12 +1644,12 @@ IDESCMStatusFilteringEnabled IDESelectedObjects IDEExpandedItemsSet - {{0, 0}, {339, 972}} + {{0, 0}, {339, 964}} $class CF$UID - 239 + 163 NS.objects @@ -2441,13 +1667,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 241 + 165 @@ -2455,75 +1681,179 @@ $class CF$UID - 56 + 107 NS.objects CF$UID - 242 + 166 CF$UID - 243 + 59 CF$UID - 244 + 57 CF$UID - 245 + 54 AFNetworkingExample + + $class + + CF$UID + 163 + + NS.objects + + + CF$UID + 168 + + + CF$UID + 169 + + + CF$UID + 170 + + + CF$UID + 171 + + + CF$UID + 173 + + + CF$UID + 176 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 166 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 166 + + + CF$UID + 59 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 166 + + + CF$UID + 59 + + + CF$UID + 57 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 166 + + + CF$UID + 59 + + + CF$UID + 172 + + + + Models + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 166 + + + CF$UID + 174 + + + CF$UID + 175 + + + Vendor - Alamofire - AFImageRequestOperation.m + AFNetworking $class CF$UID - 239 + 107 NS.objects CF$UID - 247 + 166 CF$UID - 248 - - - CF$UID - 250 - - - CF$UID - 252 - - - CF$UID - 255 - - - CF$UID - 257 - - - CF$UID - 258 - - - CF$UID - 260 - - - CF$UID - 261 + 174 @@ -2531,268 +1861,60 @@ $class CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 249 - - - - Images - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 243 - - - CF$UID - 251 - - - - TTT - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 253 - - - CF$UID - 254 - - - - Classes - Supporting Files - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 243 - - - CF$UID - 256 - - - - QHTTPOperation - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 253 - - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 259 - - - - Networking Extensions - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 243 - - - CF$UID - 244 - - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 242 - - - CF$UID - 243 - - - - - $class - - CF$UID - 43 + 83 NS.keys CF$UID - 263 + 178 CF$UID - 264 + 179 CF$UID - 265 + 180 + + + CF$UID + 181 + + + CF$UID + 182 + + + CF$UID + 183 + + + CF$UID + 184 NS.objects CF$UID - 65 + 63 CF$UID - 42 + 31 CF$UID - 159 - - - - IDEStackCompressionValue - IDEThreadsOrQueuesMode - IDEHideAncestorForNonInterestingFrames - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 267 + 185 CF$UID - 268 + 186 CF$UID - 269 - - - CF$UID - 270 - - - CF$UID - 271 - - - CF$UID - 272 - - - CF$UID - 273 - - - NS.objects - - - CF$UID - 42 - - - CF$UID - 159 + 187 CF$UID @@ -2800,19 +1922,7 @@ CF$UID - 274 - - - CF$UID - 275 - - - CF$UID - 42 - - - CF$UID - 277 + 190 @@ -2823,12 +1933,13 @@ IDEBatchFindNavigatorSelectedRowIndexes IDEBatchFindNavigatorFindMode IDEBatchFindNavigatorCollapsedGroups - QReachabilityOperation + id response + NSLog $class CF$UID - 276 + 188 NSRangeCount 0 @@ -2842,11 +1953,12 @@ $classname NSIndexSet + 0 $class CF$UID - 278 + 191 NSRangeCount 0 @@ -2865,92 +1977,125 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 280 + 193 CF$UID - 281 + 194 CF$UID - 282 - - - CF$UID - 283 - - - CF$UID - 284 - - - CF$UID - 285 - - - CF$UID - 286 - - - CF$UID - 287 - - - CF$UID - 288 - - - CF$UID - 289 + 195 NS.objects CF$UID - 159 + 196 CF$UID - 290 + 63 CF$UID - 291 + 31 + + + + IDEStackCompressionValue + IDEThreadOrQueueMode + IDEShowOnlyInterestingContent + 2 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 198 CF$UID - 293 + 199 CF$UID - 294 + 200 CF$UID - 159 + 201 CF$UID - 159 + 202 CF$UID - 295 + 203 CF$UID - 159 + 204 CF$UID - 296 + 205 + + + CF$UID + 206 + + + NS.objects + + + CF$UID + 31 + + + CF$UID + 207 + + + CF$UID + 208 + + + CF$UID + 210 + + + CF$UID + 211 + + + CF$UID + 31 + + + CF$UID + 236 + + + CF$UID + 31 + + + CF$UID + 237 @@ -2960,16 +2105,15 @@ IDEExpandedIssues IDESelectedNavigables IDEShowsByType - IDESchemeFilteringEnabled IDECollapsedTypes IDERecentFilteringEnabled IDECollapsedGroups - {{0, 0}, {339, 950}} + {{0, 0}, {339, 942}} $class CF$UID - 292 + 209 NS.objects @@ -2988,7 +2132,7 @@ $class CF$UID - 292 + 209 NS.objects @@ -2997,47 +2141,128 @@ $class CF$UID - 56 + 107 NS.objects - + + + CF$UID + 212 + + $class CF$UID - 292 + 107 NS.objects - + + + CF$UID + 213 + + + CF$UID + 218 + + + CF$UID + 221 + + $class CF$UID - 292 - - NS.objects - - - - $class - - CF$UID - 43 + 77 NS.keys CF$UID - 45 + 214 + + + CF$UID + 215 NS.objects CF$UID - 298 + 216 + + + CF$UID + 217 + + + + id + ty + AFNetworkingExample + g + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 214 + + + CF$UID + 215 + + + NS.objects + + + CF$UID + 219 + + + CF$UID + 220 + + + + AFNetworkingExample/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.m + f + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 214 + + + CF$UID + 215 + + + NS.objects + + + CF$UID + 222 + + + CF$UID + 235 @@ -3045,10 +2270,825 @@ $class CF$UID - 56 + 83 + + NS.keys + + + CF$UID + 223 + + + CF$UID + 224 + + + CF$UID + 225 + + + CF$UID + 226 + + + CF$UID + 227 + + + NS.objects + + + CF$UID + 228 + + + CF$UID + 232 + + + CF$UID + 233 + + + CF$UID + 234 + + + CF$UID + 232 + + + + documentLocations + fullMessage + subissues + type + shortMessage + + $class + + CF$UID + 62 NS.objects + + CF$UID + 229 + + + + + $class + + CF$UID + 231 + + characterRangeLen + 0 + characterRangeLoc + -1 + documentURL + + CF$UID + 230 + + endingColumnNumber + -1 + endingLineNumber + 135 + startingColumnNumber + -1 + startingLineNumber + 135 + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.m + + + $classes + + DVTTextDocumentLocation + DVTDocumentLocation + NSObject + + $classname + DVTTextDocumentLocation + + Incompatible block pointer types initializing 'void (^)(struct NSDictionary *)', expected 'void (^)(struct objc_object *)' + + $class + + CF$UID + 107 + + NS.objects + + + Incompatible block pointer types initializing '*', expected '*' + i + + $class + + CF$UID + 209 + + NS.objects + + + + $class + + CF$UID + 209 + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 97 + + + NS.objects + + + CF$UID + 239 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 240 + + + CF$UID + 242 + + + CF$UID + 244 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 18 + + + CF$UID + 241 + + + + 340 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 14 + + + CF$UID + 243 + + + + 1580 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 245 + + + CF$UID + 246 + + + + IDEUtilitiesArea + 260 + {{0, 94}, {1920, 1084}} + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 5 + + + + + $class + + CF$UID + 83 + + NS.keys + + + 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 + + + NS.objects + + + CF$UID + 116 + + + CF$UID + 261 + + + CF$UID + 63 + + + CF$UID + 1275 + + + CF$UID + 1280 + + + CF$UID + 1283 + + + CF$UID + 1313 + + + CF$UID + 1314 + + + CF$UID + 1322 + + + CF$UID + 31 + + + CF$UID + 31 + + + + BreakpointsActivated + DefaultEditorStatesForURLs + DebuggingWindowBehavior + ActiveRunDestination + ActiveScheme + LastCompletedPersistentSchemeBasedActivityReport + DocumentWindows + DefaultEditorFrameSizeForURLs + RecentEditorDocumentURLs + AppFocusInMiniDebugging + MiniDebuggingConsole + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 262 + + + CF$UID + 263 + + + CF$UID + 264 + + + CF$UID + 265 + + + CF$UID + 266 + + + CF$UID + 267 + + + CF$UID + 268 + + + NS.objects + + + CF$UID + 269 + + + CF$UID + 279 + + + CF$UID + 296 + + + CF$UID + 1030 + + + CF$UID + 1056 + + + CF$UID + 1059 + + + CF$UID + 1177 + + + + IDEQuickLookEditor.Editor + Xcode.IDEKit.EditorDocument.PlistEditor + Xcode.IDEKit.EditorDocument.SourceCode + Xcode.IDEKit.CocoaTouchIntegration.EditorDocument.CocoaTouch + Xcode.IDEKit.EditorDocument.SourceCodeComparisonEditor + Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project + Xcode.IDEKit.EditorDocument.LogDocument + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 270 + + + NS.objects + + + CF$UID + 272 + + + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 271 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Images/placeholder-stamp@2x.png + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 273 + + + NS.objects + + + CF$UID + 274 + + + + SelectedDocumentLocations + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 275 + + + + + $class + + CF$UID + 278 + + IDEQuickLookPageNumber + + CF$UID + 63 + + documentURL + + CF$UID + 276 + + timestamp + + CF$UID + 277 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Images/placeholder-stamp@2x.png + 334081674.22411501 + + $classes + + IDEQuickLookDocumentLocation + DVTDocumentLocation + NSObject + + $classname + IDEQuickLookDocumentLocation + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 280 + + + CF$UID + 282 + + + NS.objects + + + CF$UID + 284 + + + CF$UID + 291 + + + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 281 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Info.plist + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 283 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Info.plist + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 285 + + + CF$UID + 286 + + + CF$UID + 287 + + + NS.objects + + + CF$UID + 288 + + + CF$UID + 289 + + + CF$UID + 290 + + + + IDE_PLIST_EDITOR_SELECTION_KEY + IDE_PLIST_EDITOR_EXPANSION_KEY + IDE_PLIST_EDITOR_VISIBLERECT_KEY + + $class + + CF$UID + 62 + + NS.objects + + + + $class + + CF$UID + 209 + + NS.objects + + + {{0, 0}, {2220, 1188}} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 285 + + + CF$UID + 287 + + + CF$UID + 286 + + + NS.objects + + + CF$UID + 288 + + + CF$UID + 292 + + + CF$UID + 293 + + + + {{0, 0}, {2220, 1325}} + + $class + + CF$UID + 209 + + NS.objects + + + CF$UID + 294 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 295 + + + + UISupportedInterfaceOrientations + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 297 + CF$UID 299 @@ -3061,290 +3101,46 @@ CF$UID 303 - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 16 - - - CF$UID - 300 - - - - 340 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 14 - - - CF$UID - 302 - - - - 1580 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 48 - - - CF$UID - 49 - - - NS.objects - - - CF$UID - 304 - CF$UID 305 - - - IDEUtilitiesArea - 260 - - $class - - CF$UID - 86 - - NS.objects - CF$UID - 5 + 307 - - - {{0, 86}, {1920, 1092}} - - $class - - CF$UID - 43 - - NS.keys - 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 - - - NS.objects - - - CF$UID - 21 - CF$UID 319 - - CF$UID - 42 - - - CF$UID - 993 - - - CF$UID - 998 - - - CF$UID - 1001 - - - CF$UID - 1031 - - - CF$UID - 1032 - - - CF$UID - 159 - - - CF$UID - 159 - - - - BreakpointsActivated - DefaultEditorStatesForURLs - DebuggingWindowBehavior - ActiveRunDestination - ActiveScheme - LastCompletedPersistentSchemeBasedActivityReport - DocumentWindows - RecentEditorDocumentURLs - AppFocusInMiniDebugging - MiniDebuggingConsole - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 320 - CF$UID 321 - - CF$UID - 203 - - - CF$UID - 161 - - - CF$UID - 322 - CF$UID 323 - - NS.objects - - - CF$UID - 324 - - - CF$UID - 350 - - - CF$UID - 367 - - - CF$UID - 451 - - - CF$UID - 907 - - - CF$UID - 990 - - - - Xcode.IDEKit.CocoaTouchIntegration.EditorDocument.CocoaTouch - Xcode.IDEKit.EditorDocument.PlistEditor - Xcode.IDEKit.EditorDocument.LogDocument - Xcode.IDEKit.EditorDocument.SourceCodeComparisonEditor - - $class - - CF$UID - 43 - - NS.keys - CF$UID 325 @@ -3353,356 +3149,50 @@ CF$UID 327 - - NS.objects - CF$UID 329 - - CF$UID - 343 - - - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 326 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/MainWindow.xib - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 328 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/RootViewController.xib - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 330 - CF$UID 331 - - CF$UID - 332 - CF$UID 333 - - NS.objects - CF$UID - 334 + 335 CF$UID 337 - - CF$UID - 333 - - - CF$UID - 338 - - - - IBDockViewController - SelectedObjectIDs - SelectionProvider - IBCanvasViewController - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 335 - - - NS.objects - - - CF$UID - 336 - - - - LastKnownOutlineViewWidth - 270 - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 65 - - - - - $class - - CF$UID - 43 - - NS.keys - CF$UID 339 - - CF$UID - 340 - - - NS.objects - CF$UID 341 CF$UID - 342 - - - - ObjectIDToLastKnownCanvasPositionMap - EditedTopLevelObjectIDs - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 65 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 330 + 343 CF$UID - 331 - - - CF$UID - 332 - - - CF$UID - 333 - - - NS.objects - - - CF$UID - 344 - - - CF$UID - 346 - - - CF$UID - 333 + 345 CF$UID 347 - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 335 - - - NS.objects - - - CF$UID - 345 - - - - 270 - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 65 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 339 - - - CF$UID - 340 - - - NS.objects - - - CF$UID - 348 - CF$UID 349 - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 65 - - - - - $class - - CF$UID - 43 - - NS.keys - CF$UID 351 @@ -3711,396 +3201,54 @@ CF$UID 353 - - NS.objects - CF$UID 355 - - CF$UID - 362 - - - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 352 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Info.plist - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 354 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Info.plist - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 356 - CF$UID 357 - - CF$UID - 358 - - - NS.objects - CF$UID 359 - - CF$UID - 360 - CF$UID 361 - - - IDE_PLIST_EDITOR_SELECTION_KEY - IDE_PLIST_EDITOR_EXPANSION_KEY - IDE_PLIST_EDITOR_VISIBLERECT_KEY - - $class - - CF$UID - 86 - - NS.objects - - - - $class - - CF$UID - 292 - - NS.objects - - - {{0, 0}, {2220, 1188}} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 356 - - - CF$UID - 358 - - - CF$UID - 357 - - - NS.objects - - - CF$UID - 359 - CF$UID 363 - - CF$UID - 364 - - - - {{0, 0}, {2220, 1325}} - - $class - - CF$UID - 292 - - NS.objects - CF$UID 365 - - - - $class - - CF$UID - 56 - - NS.objects - CF$UID - 366 - - - - UISupportedInterfaceOrientations - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 368 + 367 CF$UID - 370 + 369 CF$UID - 372 - - - NS.objects - - - CF$UID - 374 + 371 CF$UID - 407 - - - CF$UID - 429 - - - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 369 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample.xcodeproj - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 371 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworking%20Example.xcodeproj/ - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 373 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample.xcodeproj - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 177 - - - CF$UID - 178 - - - CF$UID - 179 - - - CF$UID - 180 + 373 CF$UID 375 - - NS.objects - - - CF$UID - 376 - CF$UID 377 - - CF$UID - 383 - - - CF$UID - 384 - - - CF$UID - 394 - - - - Xcode3ProjectEditor_Xcode3BuildPhasesEditor - Xcode3BuildSettingsEditor - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 184 - - - NS.objects - - - CF$UID - 378 - - - - - $class - - CF$UID - 56 - - NS.objects - CF$UID 379 @@ -4109,1680 +3257,440 @@ CF$UID 381 - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - - - CF$UID - 380 - - - - 170 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - - - CF$UID - 382 - - - - 2050 - Xcode3BuildPhasesEditor - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 385 - - - - - $class - - CF$UID - 201 - - documentURL - - CF$UID - 196 - - selection - - CF$UID - 387 - - timestamp - - CF$UID - 386 - - - 328564319.53072202 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 199 - - - CF$UID - 200 - - - CF$UID - 388 - - - NS.objects - CF$UID 383 CF$UID - 145 + 385 + + + CF$UID + 387 CF$UID 389 - - - Xcode3BuildPhasesEditorLocations - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 390 - - - - - $class - - CF$UID - 43 - - NS.keys - CF$UID 391 - - NS.objects - - - CF$UID - 392 - - - - Link Binary With Libraries - - $class - - CF$UID - 86 - - NS.objects - CF$UID 393 - - - - $class - - CF$UID - 276 - - NSLength - 2 - NSLocation - 4 - NSRangeCount - 1 - - - $class - - CF$UID - 43 - - NS.keys - CF$UID 395 - - CF$UID - 396 - CF$UID 397 - - CF$UID - 398 - CF$UID 399 - - CF$UID - 400 - CF$UID 401 - - NS.objects - - - CF$UID - 402 - - - CF$UID - 189 - CF$UID 403 - - CF$UID - 404 - CF$UID 405 CF$UID - 160 + 407 - - CF$UID - 406 - - - - F8E4695D1395739C00DB05C8 - Xcode3BuildPhasesEditorFilterKey - F8E4695E1395739C00DB05C8 - F8E4695C1395739C00DB05C8 - Xcode3BuildPhasesEditorDisclosedNamesKey - kXcode3BuildPhasesEditorScrollPointKey - F8E4695F1395739C00DB05C8 - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - CF$UID - 391 - - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 177 - - - CF$UID - 178 - - - CF$UID - 179 - - - CF$UID - 180 - - - CF$UID - 375 - - - NS.objects - - - CF$UID - 376 - - - CF$UID - 408 - - - CF$UID - 383 - - - CF$UID - 414 - - - CF$UID - 421 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 184 - - - NS.objects - CF$UID 409 - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 410 - - - CF$UID - 412 - - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - CF$UID 411 - - - 170 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - CF$UID 413 - - - 2050 - - $class - - CF$UID - 86 - - NS.objects - CF$UID 415 - - - - $class - - CF$UID - 201 - - documentURL - - CF$UID - 416 - - selection - - CF$UID - 418 - - timestamp - - CF$UID - 417 - - - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworking%20Example.xcodeproj/ - 328649247.27205497 - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 199 - - - CF$UID - 200 - - - CF$UID - 388 - - - NS.objects - - - CF$UID - 383 - - - CF$UID - 145 + 417 CF$UID 419 - - - - $class - - CF$UID - 86 - - NS.objects - CF$UID - 420 - - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 395 - - - CF$UID - 396 - - - CF$UID - 398 - - - CF$UID - 397 - - - CF$UID - 399 - - - CF$UID - 400 - - - CF$UID - 401 - - - NS.objects - - - CF$UID - 422 - - - CF$UID - 189 + 421 CF$UID 423 - - CF$UID - 424 - CF$UID 425 - - CF$UID - 160 - - - CF$UID - 428 - - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 426 - CF$UID 427 CF$UID - 391 + 429 - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - CF$UID - 426 - - - - Compile Sources - Copy Bundle Resources - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 177 - - - CF$UID - 178 - - - CF$UID - 179 - - - CF$UID - 180 - - - CF$UID - 375 - - - NS.objects - - - CF$UID - 182 - - - CF$UID - 430 - - - CF$UID - 383 - - - CF$UID - 436 - - - CF$UID - 445 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 184 - - - NS.objects - CF$UID 431 - - - - $class - - CF$UID - 56 - - NS.objects - - - CF$UID - 432 - - - CF$UID - 434 - - - - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - CF$UID 433 - - - 170 - - $class - - CF$UID - 52 - - NS.keys - - - CF$UID - 187 - - - CF$UID - 188 - - - NS.objects - - - CF$UID - 189 - CF$UID 435 - - - 2050 - - $class - - CF$UID - 86 - - NS.objects - CF$UID 437 - - - - $class - - CF$UID - 201 - - documentURL - - CF$UID - 438 - - selection - - CF$UID - 440 - - timestamp - - CF$UID - 439 - - - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample.xcodeproj/ - 328635390.22503901 - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 199 - - - CF$UID - 200 - - - CF$UID - 388 - - - NS.objects - - - CF$UID - 383 - - - CF$UID - 145 + 439 CF$UID 441 - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 442 - - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 391 - - - NS.objects - CF$UID 443 - - - - $class - - CF$UID - 86 - - NS.objects - CF$UID - 444 - - - - - $class - - CF$UID - 276 - - NSLength - 1 - NSLocation - 3 - NSRangeCount - 1 - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 400 - - - CF$UID - 399 - - - CF$UID - 401 - - - CF$UID - 395 - - - CF$UID - 398 - - - CF$UID - 397 - - - NS.objects - - - CF$UID - 160 - - - CF$UID - 446 + 445 CF$UID 447 - - CF$UID - 448 - CF$UID 449 CF$UID - 450 + 451 + + + CF$UID + 453 + + + CF$UID + 455 + + + CF$UID + 457 + + + CF$UID + 459 + + + CF$UID + 461 + + + CF$UID + 463 + + + CF$UID + 465 + + + CF$UID + 467 + + + CF$UID + 469 + + + CF$UID + 471 + + + CF$UID + 473 + + + CF$UID + 475 + + + CF$UID + 477 + + + CF$UID + 479 + + + CF$UID + 481 + + + CF$UID + 483 + + + CF$UID + 485 + + + CF$UID + 487 + + + CF$UID + 489 + + + CF$UID + 491 + + + CF$UID + 493 + + + CF$UID + 495 + + + CF$UID + 497 + + + CF$UID + 499 + + + CF$UID + 501 + + + CF$UID + 503 + + + CF$UID + 505 + + + CF$UID + 507 + + + CF$UID + 509 + + + CF$UID + 511 + + + CF$UID + 513 + + + CF$UID + 515 + + + CF$UID + 517 + + + CF$UID + 519 + + + CF$UID + 521 + + + CF$UID + 523 + + + CF$UID + 525 + + + CF$UID + 527 + + + CF$UID + 529 + + + CF$UID + 531 + + + CF$UID + 533 + + + CF$UID + 535 + + + CF$UID + 537 + + + CF$UID + 539 + + + CF$UID + 541 + + + CF$UID + 543 + + + CF$UID + 545 + + + CF$UID + 547 + + + CF$UID + 549 + + + CF$UID + 551 + + + CF$UID + 553 - - - $class - - CF$UID - 56 - NS.objects CF$UID - 391 + 555 - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - - NS.objects - - - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 452 + 563 CF$UID - 454 + 567 CF$UID - 456 + 571 CF$UID - 458 + 575 CF$UID - 460 + 579 CF$UID - 462 + 583 CF$UID - 464 + 587 CF$UID - 466 + 591 CF$UID - 468 + 595 CF$UID - 470 + 599 CF$UID - 472 + 603 CF$UID - 474 - - - CF$UID - 476 - - - CF$UID - 478 - - - CF$UID - 480 - - - CF$UID - 482 - - - CF$UID - 484 - - - CF$UID - 486 - - - CF$UID - 488 - - - CF$UID - 490 - - - CF$UID - 492 - - - CF$UID - 494 - - - CF$UID - 496 - - - CF$UID - 498 - - - CF$UID - 500 - - - CF$UID - 502 - - - CF$UID - 504 - - - CF$UID - 506 - - - CF$UID - 508 - - - CF$UID - 510 - - - CF$UID - 512 - - - CF$UID - 514 - - - CF$UID - 516 - - - CF$UID - 518 - - - CF$UID - 520 - - - CF$UID - 522 - - - CF$UID - 524 - - - CF$UID - 526 - - - CF$UID - 528 - - - CF$UID - 530 - - - CF$UID - 532 - - - CF$UID - 534 - - - CF$UID - 536 - - - CF$UID - 538 - - - CF$UID - 540 - - - CF$UID - 542 - - - CF$UID - 544 - - - CF$UID - 546 - - - CF$UID - 548 - - - CF$UID - 550 - - - CF$UID - 552 - - - CF$UID - 554 - - - CF$UID - 556 - - - CF$UID - 558 - - - CF$UID - 560 - - - CF$UID - 562 - - - CF$UID - 564 - - - CF$UID - 566 - - - CF$UID - 568 - - - CF$UID - 570 - - - CF$UID - 572 - - - CF$UID - 574 - - - CF$UID - 576 - - - CF$UID - 578 - - - CF$UID - 580 - - - CF$UID - 582 - - - CF$UID - 584 - - - CF$UID - 586 - - - CF$UID - 588 - - - CF$UID - 590 - - - CF$UID - 592 - - - CF$UID - 594 - - - CF$UID - 596 - - - CF$UID - 598 - - - CF$UID - 600 - - - CF$UID - 602 - - - CF$UID - 604 - - - CF$UID - 606 - - - CF$UID - 608 + 607 CF$UID 610 - - CF$UID - 612 - - - NS.objects - CF$UID 614 CF$UID - 617 + 618 CF$UID - 621 + 622 CF$UID - 625 + 626 CF$UID - 627 + 629 CF$UID - 630 + 633 CF$UID - 638 + 636 + + + CF$UID + 639 CF$UID @@ -5798,7 +3706,11 @@ CF$UID - 653 + 651 + + + CF$UID + 654 CF$UID @@ -5830,67 +3742,59 @@ CF$UID - 683 + 685 CF$UID - 686 + 689 CF$UID - 688 + 693 CF$UID - 692 + 697 CF$UID - 696 + 701 CF$UID - 700 + 705 CF$UID - 704 + 709 CF$UID - 708 + 713 CF$UID - 712 + 717 CF$UID - 715 + 721 CF$UID - 719 + 725 CF$UID - 723 + 729 CF$UID - 727 + 733 CF$UID - 731 - - - CF$UID - 734 - - - CF$UID - 738 + 737 CF$UID @@ -5906,15 +3810,15 @@ CF$UID - 751 + 753 CF$UID - 755 + 757 CF$UID - 759 + 760 CF$UID @@ -5930,64 +3834,60 @@ CF$UID - 773 + 775 CF$UID - 777 + 779 CF$UID - 781 + 783 CF$UID - 785 + 787 CF$UID - 789 + 791 CF$UID - 793 + 795 CF$UID - 797 + 799 CF$UID - 801 + 802 CF$UID - 804 + 805 CF$UID - 807 + 808 CF$UID - 811 + 812 CF$UID - 815 + 816 CF$UID - 819 + 818 CF$UID 822 - - CF$UID - 824 - CF$UID 826 @@ -5996,6 +3896,10 @@ CF$UID 830 + + CF$UID + 832 + CF$UID 834 @@ -6006,7 +3910,7 @@ CF$UID - 841 + 842 CF$UID @@ -6014,31 +3918,27 @@ CF$UID - 847 + 848 CF$UID - 851 + 852 CF$UID - 855 + 856 CF$UID - 859 + 860 CF$UID - 863 + 864 CF$UID - 865 - - - CF$UID - 869 + 868 CF$UID @@ -6046,11 +3946,11 @@ CF$UID - 876 + 875 CF$UID - 880 + 879 CF$UID @@ -6066,19 +3966,159 @@ CF$UID - 895 + 894 CF$UID - 897 + 898 CF$UID - 899 + 901 CF$UID - 903 + 905 + + + CF$UID + 909 + + + CF$UID + 913 + + + CF$UID + 917 + + + CF$UID + 919 + + + CF$UID + 923 + + + CF$UID + 927 + + + CF$UID + 931 + + + CF$UID + 935 + + + CF$UID + 939 + + + CF$UID + 943 + + + CF$UID + 947 + + + CF$UID + 951 + + + CF$UID + 953 + + + CF$UID + 956 + + + CF$UID + 960 + + + CF$UID + 964 + + + CF$UID + 968 + + + CF$UID + 972 + + + CF$UID + 976 + + + CF$UID + 980 + + + CF$UID + 982 + + + CF$UID + 985 + + + CF$UID + 989 + + + CF$UID + 992 + + + CF$UID + 995 + + + CF$UID + 999 + + + CF$UID + 1002 + + + CF$UID + 1004 + + + CF$UID + 1008 + + + CF$UID + 1012 + + + CF$UID + 1016 + + + CF$UID + 1018 + + + CF$UID + 1021 + + + CF$UID + 1024 + + + CF$UID + 1026 @@ -6086,7 +4126,7 @@ $class CF$UID - 99 + 82 NS.base @@ -6096,1600 +4136,14 @@ NS.relative CF$UID - 453 + 298 $class CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/main.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 455 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QHTTPOperation.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 457 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Vendor/TTT/TTTArrayFormatter.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 459 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExample-Prefix.pch - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 461 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AppDelegate.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 463 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AppDelegate.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 465 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFImageRequest.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 467 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequest.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 469 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QHTTPOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 471 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFImageRequest.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 473 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequest.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 475 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExampleAppDelegate.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 477 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/NearbySpotsViewController.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 479 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Controllers/NearbySpotsViewController.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 481 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QRunLoopOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 483 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequest.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 485 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequest.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 487 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFImageRequest.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 489 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AppDelegate.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 491 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AppDelegate.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 493 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFGowallaAPIClient.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 495 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFURLCache.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 497 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFURLCache.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 499 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Models/Spot.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 501 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Models/Spot.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 503 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSThread.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 505 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFGowallaAPI.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 507 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFGowallaAPI.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 509 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/SpotsViewController.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 511 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPI.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 513 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/SpotsViewController.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 515 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFCallback.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 517 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFCallback.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 519 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/InfoPlist.strings - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 521 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFURLCache.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 523 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/RootViewController.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 525 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/RootViewController.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 527 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QReachabilityOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 529 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExampleAppDelegate.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 531 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequestOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 533 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequestOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 535 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFURLCache.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 537 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFURLCache.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 539 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFHTTPOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 541 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFHTTPOperation.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 543 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFHTTPOperation.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 545 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFHTTPOperation.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 547 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Views/SpotTableViewCell.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 549 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Views/SpotTableViewCell.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 551 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/UIImage+AFNetworking.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 553 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/UIImage+AFNetworking.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 555 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/UIImage+AFNetworking.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 557 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPI.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 559 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFGowallaAPI.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 561 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFCallback.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 563 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFCallback.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 565 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/UIImage+AFNetworking.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 567 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFGowallaAPI.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 569 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFRestClient.m - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 571 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFRestClient.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 573 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 575 - - - - $class - - CF$UID - 151 + 66 NS.string file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Views/SpotTableViewCell.m @@ -7698,7 +4152,7 @@ $class CF$UID - 99 + 82 NS.base @@ -7708,23 +4162,23 @@ NS.relative CF$UID - 577 + 300 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/UIImage+AFNetworking.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Views/SpotTableViewCell.m $class CF$UID - 99 + 82 NS.base @@ -7734,23 +4188,23 @@ NS.relative CF$UID - 579 + 302 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFURLCache.h + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFURLCache.m $class CF$UID - 99 + 82 NS.base @@ -7760,23 +4214,23 @@ NS.relative CF$UID - 581 + 304 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFURLCache.m $class CF$UID - 99 + 82 NS.base @@ -7786,23 +4240,23 @@ NS.relative CF$UID - 583 + 306 $class CF$UID - 151 + 66 NS.string - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSPathUtilities.h + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFURLCache.m $class CF$UID - 99 + 82 NS.base @@ -7812,23 +4266,23 @@ NS.relative CF$UID - 585 + 308 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Views/SpotTableViewCell.h + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Views/SpotTableViewCell.m $class CF$UID - 99 + 82 NS.base @@ -7838,66 +4292,14 @@ NS.relative CF$UID - 587 + 310 $class CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Models/Spot.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 589 - - - - $class - - CF$UID - 151 - - NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Models/Spot.h - - - $class - - CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 591 - - - - $class - - CF$UID - 151 + 66 NS.string file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/NearbySpotsViewController.h @@ -7906,7 +4308,7 @@ $class CF$UID - 99 + 82 NS.base @@ -7916,23 +4318,23 @@ NS.relative CF$UID - 593 + 312 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Vendor/TTT/TTTArrayFormatter.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Controllers/NearbySpotsViewController.h $class CF$UID - 99 + 82 NS.base @@ -7942,23 +4344,23 @@ NS.relative CF$UID - 595 + 314 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPIClient.h + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSJSONSerialization.h $class CF$UID - 99 + 82 NS.base @@ -7968,23 +4370,23 @@ NS.relative CF$UID - 597 + 316 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFGowallaAPIClient.h + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSThread.h $class CF$UID - 99 + 82 NS.base @@ -7994,23 +4396,23 @@ NS.relative CF$UID - 599 + 318 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Prefix.pch + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExampleAppDelegate.h $class CF$UID - 99 + 82 NS.base @@ -8020,23 +4422,23 @@ NS.relative CF$UID - 601 + 320 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFCallback.m $class CF$UID - 99 + 82 NS.base @@ -8046,23 +4448,23 @@ NS.relative CF$UID - 603 + 322 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequestOperation.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFCallback.m $class CF$UID - 99 + 82 NS.base @@ -8072,23 +4474,23 @@ NS.relative CF$UID - 605 + 324 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequestOperation.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFCallback.m $class CF$UID - 99 + 82 NS.base @@ -8098,23 +4500,23 @@ NS.relative CF$UID - 607 + 326 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/main.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/UIImageView+AFNetworking.m $class CF$UID - 99 + 82 NS.base @@ -8124,23 +4526,23 @@ NS.relative CF$UID - 609 + 328 $class CF$UID - 151 + 66 NS.string - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/main.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/UIImageView+AFNetworking.m $class CF$UID - 99 + 82 NS.base @@ -8150,14 +4552,924 @@ NS.relative CF$UID - 611 + 330 $class CF$UID - 151 + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/UIImageView+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 332 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/UIImageView+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 334 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/UIImage+AFNetworking.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 336 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/UIImage+AFNetworking.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 338 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/UIImage+AFNetworking.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 340 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/UIImage+AFNetworking.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 342 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Vendor/TTT/TTTArrayFormatter.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 344 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AppDelegate.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 346 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AppDelegate.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 348 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QHTTPOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 350 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/QHTTPOperation/QHTTPOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 352 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFImageCache.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 354 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageCache.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 356 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFJSONRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 358 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequest.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 360 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFImageRequest.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 362 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequest.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 364 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFImageRequest.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 366 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFJSONRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 368 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExampleAppDelegate.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 370 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/SpotsViewController.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 372 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/SpotsViewController.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 374 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFRestClient.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 376 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 378 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFHTTPOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 380 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFHTTPOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 382 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 384 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFRestClient.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 386 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFGowallaAPI.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 388 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFGowallaAPI.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 390 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPI.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 392 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QReachabilityOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 394 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFHTTPRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 396 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSPathUtilities.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 398 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/QHTTPOperation/QRunLoopOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 400 + + + + $class + + CF$UID + 66 NS.string file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QRunLoopOperation.m @@ -8166,7 +5478,7 @@ $class CF$UID - 99 + 82 NS.base @@ -8176,14 +5488,274 @@ NS.relative CF$UID - 613 + 402 $class CF$UID - 151 + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 404 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AppDelegate.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 406 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AppDelegate.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 408 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworkActivityIndicatorManager.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 410 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 412 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Controllers/NearbySpotsViewController.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 414 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/NearbySpotsViewController.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 416 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Controllers/NearbySpotsViewController.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 418 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworkActivityIndicatorManager.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 420 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 422 + + + + $class + + CF$UID + 66 NS.string file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Vendor/TTT/TTTLocationFormatter.h @@ -8192,25 +5764,2384 @@ $class CF$UID - 43 + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 424 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFImageCache.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 426 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageCache.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 428 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Prefix.pch + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 430 + + + x-xcode-disassembly://stack_frame?threadID=2&stackFrameNumber=0&lineNumber=0&instructionPointer=0x373e119e + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 432 + + + x-xcode-disassembly://stack_frame?threadID=2&stackFrameNumber=0&lineNumber=0&instructionPointer=0x351aec98 + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 434 + + + x-xcode-disassembly://stack_frame?threadID=2&stackFrameNumber=0&lineNumber=0&instructionPointer=0x373e1798 + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 436 + + + x-xcode-disassembly://stack_frame?threadID=2&stackFrameNumber=0&lineNumber=0&instructionPointer=0x34f452a0 + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 438 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSURLResponse.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 440 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFURLCache.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 442 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFURLCache.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 444 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFURLCache.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 446 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/main.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 448 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/main.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 450 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/main.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 452 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 454 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 456 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 458 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFImageRequestOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 460 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 462 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFImageRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 464 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QHTTPOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 466 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/QHTTPOperation/QHTTPOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 468 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 470 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 472 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFJSONRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 474 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFJSONRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 476 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/AFNetworkingExample-Prefix.pch + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 478 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Vendor/JSONKit/JSONKit.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 480 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFImageRequest.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 482 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/QHTTPOperation/QRunLoopOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 484 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFImageRequest.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 486 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFHTTPRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 488 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPRequestOperation.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 490 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFImageRequest.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 492 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFHTTPOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 494 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFHTTPOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 496 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPOperation.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 498 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPIClient.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 500 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFGowallaAPIClient.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 502 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 504 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/AFGowallaAPI.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 506 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFGowallaAPI.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 508 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFGowallaAPI.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 510 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Vendor/TTT/TTTArrayFormatter.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 512 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Models/Spot.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 514 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Models/Spot.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 516 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Models/Spot.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 518 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Views/SpotTableViewCell.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 520 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Views/SpotTableViewCell.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 522 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Controllers/RootViewController.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 524 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/RootViewController.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 526 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/InfoPlist.strings + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 528 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFCallback.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 530 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFCallback.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 532 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFCallback.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 534 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFGowallaAPIClient.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 536 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/UIImage+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 538 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/UIImage+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 540 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFRestClient.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 542 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 544 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFRestClient.m + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 546 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/UIImage+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 548 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/UIImage+AFNetworking.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 550 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/Classes/Models/Spot.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 552 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/Classes/Models/Spot.h + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 554 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Models/Spot.h + + + $class + + CF$UID + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 + + + NS.objects + + + CF$UID + 560 + + + CF$UID + 561 + + + CF$UID + 31 + + + CF$UID + 562 + + + + PrimaryDocumentTimestamp + PrimaryDocumentVisibleCharacterRange + HideAllIssues + PrimaryDocumentSelectedCharacterRange + 333488056.91049099 + {1139, 1261} + {1520, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 564 + + + CF$UID + 565 + + + CF$UID + 31 + + + CF$UID + 566 + + + + 328568945.21344799 + {0, 2160} + {1894, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 568 + + + CF$UID + 569 + + + CF$UID + 31 + + + CF$UID + 570 + + + + 328636539.616377 + {0, 2936} + {1211, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 572 + + + CF$UID + 573 + + + CF$UID + 31 + + + CF$UID + 574 + + + + 328738267.78939998 + {5369, 1514} + {2846, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 576 + + + CF$UID + 577 + + + CF$UID + 31 + + + CF$UID + 578 + + + + 328569504.05768299 + {0, 2770} + {1491, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 580 + + + CF$UID + 581 + + + CF$UID + 31 + + + CF$UID + 582 + + + + 328631014.645944 + {0, 2313} + {2415, 14} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 584 + + + CF$UID + 585 + + + CF$UID + 31 + + + CF$UID + 586 + + + + 328568942.82172298 + {0, 1519} + {1375, 138} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 588 + + + CF$UID + 589 + + + CF$UID + 31 + + + CF$UID + 590 + + + + 334081429.09752297 + {0, 1448} + {1429, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 592 + + + CF$UID + 593 + + + CF$UID + 31 + + + CF$UID + 594 + + + + 334080586.719908 + {967, 2567} + {2862, 99} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 596 + + + CF$UID + 597 + + + CF$UID + 31 + + + CF$UID + 598 + + + + 328629655.52122098 + {840, 908} + {1410, 6} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 600 + + + CF$UID + 601 + + + CF$UID + 31 + + + CF$UID + 602 + + + + 328563929.35566801 + {0, 420} + {199, 30} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 604 + + + CF$UID + 605 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 329551845.86902702 + {900, 1123} + {0, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 608 + + + CF$UID + 609 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328569462.49987203 + {0, 2022} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 611 + + + CF$UID + 612 + + + CF$UID + 31 + + + CF$UID + 613 + + + + 328638425.23551297 + {0, 2027} + {1733, 197} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 NS.objects @@ -8225,328 +8156,372 @@ CF$UID - 159 + 31 CF$UID - 160 + 617 - 328641535.94684303 - {0, 1391} + 334081603.43546897 + {0, 1939} + {3194, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 618 - CF$UID 619 CF$UID - 159 + 620 CF$UID - 620 + 31 + + + CF$UID + 621 - 328634329.19562602 - {5924, 1875} - {3623, 31} + 333490281.45101601 + {2146, 1708} + {1441, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 622 - CF$UID 623 - - CF$UID - 159 - CF$UID 624 + + CF$UID + 31 + + + CF$UID + 625 + - 328564633.34488499 - {0, 2360} - {539, 0} + 333490344.00552398 + {0, 1541} + {693, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects CF$UID - 626 + 627 - - CF$UID - 158 - - - CF$UID - 159 - - - CF$UID - 160 - - - - 328564080.43520099 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 628 CF$UID - 629 + 31 CF$UID - 159 - - - CF$UID - 160 + 606 - 328568917.82865 - {0, 2305} + 334081625.93752402 + {0, 1541} $class CF$UID - 43 + 83 NS.keys + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 630 + CF$UID 631 + + CF$UID + 31 + CF$UID 632 + + + 328569476.86600798 + {1160, 2169} + {2087, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 633 + 556 CF$UID - 634 + 557 + + + CF$UID + 558 + + + CF$UID + 559 NS.objects + + CF$UID + 634 + CF$UID 635 CF$UID - 636 + 31 CF$UID - 159 - - - CF$UID - 637 + 606 - PrimaryDocumentTimestamp - PrimaryDocumentVisibleCharacterRange - HideAllIssues - PrimaryDocumentSelectedCharacterRange - 328738287.23037899 - {486, 1771} - {1168, 0} + 328639707.23263699 + {1065, 2269} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 70 CF$UID - 632 + 71 CF$UID - 633 + 72 CF$UID - 634 + 73 NS.objects CF$UID - 639 + 637 + + CF$UID + 638 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 334081626.227476 + {0, 2093} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 640 CF$UID - 159 + 641 CF$UID - 641 + 31 + + + CF$UID + 606 - 328738310.57136297 - {0, 1885} - {2801, 0} + 333490158.02233797 + {1511, 1822} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8561,7 +8536,7 @@ CF$UID - 159 + 31 CF$UID @@ -8569,32 +8544,32 @@ - 328635201.53501302 - {0, 2992} - {3955, 0} + 328564633.34488499 + {0, 2360} + {539, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8609,39 +8584,39 @@ CF$UID - 159 + 31 CF$UID - 160 + 606 - 328635033.90532798 - {8795, 2975} + 328568925.573183 + {0, 1389} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8652,92 +8627,136 @@ CF$UID - 651 + 648 CF$UID - 159 + 31 CF$UID - 652 + 606 - 328640018.72804803 - {320, 2811} - {1971, 0} + 328641204.26085901 $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 654 + 652 + + CF$UID + 653 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328635033.90532798 + {8795, 2975} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 655 CF$UID - 159 + 656 CF$UID - 656 + 31 + + + CF$UID + 606 - 328569433.09656501 - {470, 2550} - {1150, 0} + 329552429.74822003 + {4886, 1636} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8752,7 +8771,7 @@ CF$UID - 159 + 31 CF$UID @@ -8760,32 +8779,32 @@ - 328563929.35566801 - {0, 420} - {199, 30} + 333490226.353791 + {0, 1958} + {1177, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects @@ -8800,7 +8819,7 @@ CF$UID - 159 + 31 CF$UID @@ -8808,32 +8827,32 @@ - 328569441.889938 - {1898, 1930} - {3529, 0} + 334081628.66909599 + {0, 1922} + {1482, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8848,7 +8867,7 @@ CF$UID - 159 + 31 CF$UID @@ -8856,32 +8875,32 @@ - 328631846.80683702 - {2109, 2363} - {3612, 0} + 333490186.41433001 + {0, 1887} + {1257, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8896,7 +8915,7 @@ CF$UID - 159 + 31 CF$UID @@ -8904,32 +8923,32 @@ - 328629720.49516702 - {2904, 1325} - {3197, 39} + 328569433.09656501 + {470, 2550} + {1150, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8944,7 +8963,7 @@ CF$UID - 159 + 31 CF$UID @@ -8952,32 +8971,32 @@ - 328568954.44763798 - {0, 1770} - {17, 0} + 333485031.68864602 + {1136, 1610} + {2031, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -8992,7 +9011,7 @@ CF$UID - 159 + 31 CF$UID @@ -9000,32 +9019,32 @@ - 328634321.92628098 - {0, 1882} - {1836, 41} + 328635201.53501302 + {0, 2992} + {3955, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -9036,537 +9055,159 @@ CF$UID - 679 + 683 CF$UID - 159 + 31 - - CF$UID - 160 - - - - 328637263.87395501 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 684 - - CF$UID - 685 - - - CF$UID - 159 - - - CF$UID - 160 - - 328568925.573183 - {0, 1389} + 328640018.72804803 + {320, 2811} + {1971, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects + + CF$UID + 686 + CF$UID 687 CF$UID - 685 + 31 CF$UID - 159 - - - CF$UID - 160 + 688 - 328641204.26085901 + 334081657.91618598 + {0, 1943} + {1759, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 NS.objects - - CF$UID - 689 - CF$UID 690 CF$UID - 159 + 691 CF$UID - 691 + 31 + + + CF$UID + 692 - 328737419.820023 - {976, 1215} - {1655, 0} + 328562134.45606798 + {0, 1661} + {472, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 693 - CF$UID 694 - - CF$UID - 159 - CF$UID 695 - - - 328569504.05768299 - {0, 2770} - {1491, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 31 CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 697 - - - CF$UID - 698 - - - CF$UID - 159 - - - CF$UID - 699 - - - - 328636539.616377 - {0, 2936} - {1211, 0} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 701 - - - CF$UID - 702 - - - CF$UID - 159 - - - CF$UID - 703 - - - - 328569459.30297899 - {1143, 2029} - {2083, 0} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 705 - - - CF$UID - 706 - - - CF$UID - 159 - - - CF$UID - 707 - - - - 328640229.76242298 - {968, 2219} - {3178, 0} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 709 - - - CF$UID - 710 - - - CF$UID - 159 - - - CF$UID - 711 - - - - 328629655.52122098 - {840, 908} - {1410, 6} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 713 - - - CF$UID - 714 - - - CF$UID - 159 - - - CF$UID - 676 - - - - 328568956.32660103 - {0, 2996} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 716 - - - CF$UID - 717 - - - CF$UID - 159 - - - CF$UID - 718 - - - - 328633204.87030399 - {4827, 2613} - {7270, 0} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 720 - - - CF$UID - 721 - - - CF$UID - 159 - - - CF$UID - 722 + 696 @@ -9577,92 +9218,44 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 724 + 698 CF$UID - 725 + 699 CF$UID - 159 + 31 CF$UID - 726 - - - - 328639741.45060402 - {0, 2036} - {1338, 0} - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - - - CF$UID - 728 - - - CF$UID - 729 - - - CF$UID - 159 - - - CF$UID - 730 + 700 @@ -9673,167 +9266,505 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 732 + 702 CF$UID - 733 + 703 CF$UID - 159 + 31 CF$UID - 160 + 704 - 328569462.49987203 - {0, 2022} + 328639728.49085099 + {0, 2529} + {2529, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects + + CF$UID + 706 + + + CF$UID + 707 + + + CF$UID + 31 + + + CF$UID + 708 + + + + 334081660.31166798 + {1134, 2040} + {2713, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 710 + + + CF$UID + 711 + + + CF$UID + 31 + + + CF$UID + 712 + + + + 328569464.60332 + {2028, 2097} + {3133, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 714 + + + CF$UID + 715 + + + CF$UID + 31 + + + CF$UID + 716 + + + + 328639711.22346902 + {2036, 2223} + {4259, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 718 + + + CF$UID + 719 + + + CF$UID + 31 + + + CF$UID + 720 + + + + 333484898.92139798 + {2338, 839} + {7234, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 722 + + + CF$UID + 723 + + + CF$UID + 31 + + + CF$UID + 724 + + + + 333490189.23406601 + {0, 2216} + {1428, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 726 + + + CF$UID + 727 + + + CF$UID + 31 + + + CF$UID + 728 + + + + 328568956.32660103 + {0, 2996} + {17, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 730 + + + CF$UID + 731 + + + CF$UID + 31 + + + CF$UID + 732 + + + + 328633204.87030399 + {4827, 2613} + {7270, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 734 + CF$UID 735 + + CF$UID + 31 + CF$UID 736 - - CF$UID - 159 - - - CF$UID - 737 - - 328638425.23551297 - {0, 2027} - {1733, 197} + 328639741.45060402 + {0, 2036} + {1338, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects + + CF$UID + 738 + CF$UID 739 + + CF$UID + 31 + CF$UID 740 - - CF$UID - 159 - - - CF$UID - 160 - - 328564054.60792202 - {0, 45} + 328635028.79369003 + {0, 1206} + {95, 22} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 NS.objects @@ -9848,7 +9779,7 @@ CF$UID - 159 + 31 CF$UID @@ -9856,32 +9787,32 @@ - 328738267.78939998 - {5369, 1514} - {2846, 0} + 333490181.51879299 + {398, 1865} + {1646, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -9896,7 +9827,7 @@ CF$UID - 159 + 31 CF$UID @@ -9904,32 +9835,32 @@ - 328562716.033566 - {0, 242} - {187, 18} + 328737474.75504899 + {1773, 3399} + {3277, 100} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -9940,186 +9871,186 @@ CF$UID - 747 + 751 CF$UID - 159 + 31 - - CF$UID - 160 - - - - 328562654.93471301 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 752 + + + 329552386.201837 + {3092, 2044} + {4235, 6} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 753 + 556 CF$UID - 159 + 557 + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 754 - - - 328635028.79369003 - {0, 1206} - {95, 22} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 755 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 756 - - CF$UID - 757 - - - CF$UID - 159 - - - CF$UID - 758 - - 328562134.45606798 - {0, 1661} - {472, 0} + 328629805.99687099 + {12666, 1409} + {10264, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects CF$UID - 760 + 758 + + CF$UID + 759 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 334081655.663876 + {531, 1732} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 761 CF$UID - 159 + 762 CF$UID - 762 + 31 + + + CF$UID + 606 - 328568900.79838699 - {0, 2291} - {2093, 0} + 328568917.82865 + {0, 2305} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -10134,7 +10065,7 @@ CF$UID - 159 + 31 CF$UID @@ -10142,32 +10073,32 @@ - 328639697.255916 - {543, 2465} - {3008, 0} + 328738287.23037899 + {486, 1771} + {1168, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -10182,7 +10113,7 @@ CF$UID - 159 + 31 CF$UID @@ -10190,32 +10121,32 @@ - 328569616.782251 - {0, 1572} - {1320, 0} + 333490238.14058298 + {0, 1414} + {685, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects @@ -10226,631 +10157,630 @@ CF$UID - 769 + 773 CF$UID - 159 + 31 - - CF$UID - 160 - - - - 328639720.65704298 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 774 + + + 334081609.461896 + {0, 1414} + {1305, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 775 + 556 CF$UID - 159 + 557 + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 776 - - - 328568901.80959499 - {160, 2627} - {2619, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 777 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 778 + + + 328631846.80683702 + {2109, 2363} + {3612, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 779 + 556 CF$UID - 159 + 557 + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 780 - - - 328569464.60332 - {2028, 2097} - {3133, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 781 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 782 + + + 328569441.889938 + {1898, 1930} + {3529, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 783 + 70 CF$UID - 159 + 71 + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + CF$UID 784 - - - 328639711.22346902 - {2036, 2223} - {4259, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 785 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 786 + + + 334081692.98797601 + {0, 1904} + {6220, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 787 + 556 CF$UID - 159 + 557 + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 788 - - - 328639702.90566498 - {0, 2662} - {2662, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 789 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 790 + + + 333490247.14434803 + {0, 2003} + {738, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 791 + 70 CF$UID - 159 + 71 + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + CF$UID 792 - - - 328568945.21344799 - {0, 2160} - {1894, 0} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 793 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 794 + + + 334081625.41057402 + {0, 2002} + {1900, 0} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 795 + 556 CF$UID - 159 + 557 + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 796 - - - 328631014.645944 - {0, 2313} - {2415, 14} - - $class - - CF$UID - 43 - - NS.keys - CF$UID - 153 + 797 CF$UID - 154 + 31 - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 798 - - CF$UID - 799 - - - CF$UID - 159 - - - CF$UID - 800 - - 328569476.86600798 - {1160, 2169} - {2087, 0} + 328564689.54627103 + {0, 2259} + {1952, 20} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 802 + 800 + + CF$UID + 801 + + + CF$UID + 31 + + + CF$UID + 668 + + + + 333490229.005265 + {0, 1642} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + CF$UID 803 CF$UID - 159 + 804 CF$UID - 160 + 31 + + + CF$UID + 606 - 328639707.23263699 - {1065, 2269} + 334081632.01286203 + {0, 1642} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 805 - CF$UID 806 CF$UID - 159 + 807 CF$UID - 160 + 31 + + + CF$UID + 606 - 328568899.47802299 - {0, 1398} + 328568931.12116998 + {0, 226} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 808 - CF$UID 809 CF$UID - 159 + 810 CF$UID - 810 + 31 + + + CF$UID + 811 - 328640237.80255002 - {0, 1350} - {1317, 12} + 333501256.58361697 + {1746, 1620} + {2697, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 812 - CF$UID 813 CF$UID - 159 + 814 CF$UID - 814 + 31 + + + CF$UID + 815 - 328568958.07031602 - {0, 2517} - {15, 0} + 333499850.49051797 + {0, 976} + {976, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 816 - CF$UID 817 CF$UID - 159 + 606 CF$UID - 818 + 31 + + + CF$UID + 606 - 328569621.79128498 - {0, 1417} - {16, 1132} + 333501025.17388099 $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects + + CF$UID + 819 + CF$UID 820 CF$UID - 817 - - - CF$UID - 159 + 31 CF$UID @@ -10858,31 +10788,32 @@ - 328638426.72525901 - {942, 0} + 334078790.66908503 + {2254, 1821} + {2889, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -10893,88 +10824,44 @@ CF$UID - 806 + 824 CF$UID - 159 + 31 - - CF$UID - 160 - - - - 328639704.97709 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 825 - - CF$UID - 813 - - - CF$UID - 159 - - - CF$UID - 160 - - 328633198.94233501 + 333497786.68213898 + {1699, 2360} + {2956, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -10989,7 +10876,7 @@ CF$UID - 159 + 31 CF$UID @@ -10997,32 +10884,32 @@ - 328639723.21112299 - {5972, 2273} - {2726, 0} + 328569616.782251 + {0, 1572} + {1320, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -11033,44 +10920,88 @@ CF$UID - 832 + 828 CF$UID - 159 + 31 CF$UID - 833 + 606 - 328639728.49085099 - {0, 2529} - {2529, 0} + 328639720.65704298 $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 + + + NS.objects + + + CF$UID + 833 + + + CF$UID + 828 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328738267.94867897 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 NS.objects @@ -11085,7 +11016,7 @@ CF$UID - 159 + 31 CF$UID @@ -11093,32 +11024,32 @@ - 328737377.86666799 - {0, 2150} - {1304, 0} + 328627593.06353903 + {0, 1391} + {1143, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects @@ -11133,86 +11064,86 @@ CF$UID - 159 + 31 CF$UID - 160 + 841 - 328641378.22269201 - {0, 2355} + 334079535.65650201 + {0, 1391} + {1190, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 842 - CF$UID 843 CF$UID - 159 + 836 CF$UID - 160 + 31 + + + CF$UID + 606 - 328651236.25767601 - {0, 1902} + 328568938.20444399 $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 NS.objects @@ -11227,372 +11158,328 @@ CF$UID - 159 + 31 CF$UID - 160 + 847 - 328738267.94867897 - {0, 1572} + 328568900.79838699 + {0, 2291} + {2093, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 NS.objects - - CF$UID - 848 - CF$UID 849 CF$UID - 159 + 850 CF$UID - 850 + 31 + + + CF$UID + 851 - 328738280.37983203 - {610, 1689} - {1288, 0} + 328639697.255916 + {543, 2465} + {3008, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 70 CF$UID - 632 + 71 CF$UID - 633 + 72 CF$UID - 634 + 73 NS.objects - - CF$UID - 852 - CF$UID 853 CF$UID - 159 + 854 CF$UID - 854 + 31 + + + CF$UID + 855 - 328737474.75504899 - {1773, 3399} - {3277, 100} + 334081637.60667098 + {0, 1805} + {1421, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 856 - CF$UID 857 CF$UID - 159 + 858 CF$UID - 858 + 31 + + + CF$UID + 859 - 328568946.85565799 - {0, 1316} - {0, 1155} + 333490197.44021398 + {0, 1805} + {0, 1161} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects - - CF$UID - 860 - CF$UID 861 - - CF$UID - 159 - CF$UID 862 + + CF$UID + 31 + + + CF$UID + 863 + - 328569452.326361 - {0, 1866} - {1143, 0} + 328569472.30021399 + {3002, 2370} + {4212, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 864 + 865 - - CF$UID - 861 - - - CF$UID - 159 - - - CF$UID - 160 - - - - 328640019.14058203 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 866 + + CF$UID + 31 + CF$UID 867 - - CF$UID - 159 - - - CF$UID - 868 - - 328568942.82172298 - {0, 1519} - {1375, 138} + 333490191.01169401 + {0, 2110} + {2109, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects + + CF$UID + 869 + CF$UID 870 + + CF$UID + 31 + CF$UID 871 - - CF$UID - 159 - - - CF$UID - 160 - - 328564665.45652199 - {0, 2412} + 328634329.19562602 + {5924, 1875} + {3623, 31} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -11607,135 +11494,135 @@ CF$UID - 159 + 31 CF$UID - 875 + 606 - 328640838.63388097 - {0, 1356} - {1255, 0} + 329669736.91211098 + {3655, 1376} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 70 CF$UID - 632 + 71 CF$UID - 633 + 72 CF$UID - 634 + 73 NS.objects + + CF$UID + 876 + CF$UID 877 + + CF$UID + 31 + CF$UID 878 - - CF$UID - 159 - - - CF$UID - 879 - - 328737376.54692 - {0, 1376} - {1370, 0} + 334081635.44528598 + {0, 2108} + {3422, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects + + CF$UID + 880 + CF$UID 881 + + CF$UID + 31 + CF$UID 882 - - CF$UID - 159 - - - CF$UID - 160 - - 328568931.12116998 - {0, 226} + 328639720.18629599 + {0, 2587} + {6076, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 631 + 556 CF$UID - 632 + 557 CF$UID - 633 + 558 CF$UID - 634 + 559 NS.objects @@ -11750,7 +11637,7 @@ CF$UID - 159 + 31 CF$UID @@ -11758,32 +11645,32 @@ - 328738337.61542702 - {4391, 1662} - {5427, 0} + 333490186.98897898 + {0, 2307} + {2202, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects @@ -11798,7 +11685,7 @@ CF$UID - 159 + 31 CF$UID @@ -11806,32 +11693,32 @@ - 328569472.30021399 - {3002, 2370} - {4212, 0} + 334081658.99452901 + {0, 2139} + {3747, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects @@ -11846,240 +11733,379 @@ CF$UID - 159 + 31 CF$UID - 894 + 606 - 328639720.18629599 - {0, 2587} - {6076, 0} + 328564080.43520099 + {0, 344} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 70 CF$UID - 154 + 71 CF$UID - 155 + 72 CF$UID - 156 + 73 NS.objects + + CF$UID + 895 + CF$UID 896 CF$UID - 616 + 31 CF$UID - 159 - - - CF$UID - 160 + 897 - 328568938.20444399 + 334079534.75554901 + {76965, 2622} + {78549, 0} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects CF$UID - 898 + 899 - - CF$UID - 616 - - - CF$UID - 159 - - - CF$UID - 862 - - - - 328627593.06353903 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 153 - - - CF$UID - 154 - - - CF$UID - 155 - - - CF$UID - 156 - - - NS.objects - CF$UID 900 CF$UID - 901 + 31 CF$UID - 159 - - - CF$UID - 902 + 728 - 328629805.99687099 - {12666, 1409} - {10264, 0} + 328568954.44763798 + {0, 1770} $class CF$UID - 43 + 83 NS.keys CF$UID - 153 + 556 CF$UID - 154 + 557 CF$UID - 155 + 558 CF$UID - 156 + 559 NS.objects + + CF$UID + 902 + + + CF$UID + 903 + + + CF$UID + 31 + CF$UID 904 - - CF$UID - 905 - - - CF$UID - 159 - - - CF$UID - 906 - - 328564689.54627103 - {0, 2259} - {1952, 20} + 328629720.49516702 + {2904, 1325} + {3197, 39} $class CF$UID - 43 + 83 NS.keys + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 906 + + + CF$UID + 907 + + + CF$UID + 31 + CF$UID 908 + + + 328634321.92628098 + {0, 1882} + {1836, 41} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 910 + + CF$UID + 911 + + + CF$UID + 31 + CF$UID 912 + + + 333490185.731457 + {0, 2191} + {2382, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + CF$UID 914 + + CF$UID + 915 + + + CF$UID + 31 + CF$UID 916 + + + 334081656.92956299 + {0, 2147} + {1154, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 918 CF$UID - 919 + 907 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328637263.87395501 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 920 CF$UID @@ -12087,7 +12113,47 @@ CF$UID - 923 + 31 + + + CF$UID + 922 + + + + 328568901.80959499 + {160, 2627} + {2619, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 924 CF$UID @@ -12095,7 +12161,47 @@ CF$UID - 927 + 31 + + + CF$UID + 926 + + + + 328639702.90566498 + {0, 2662} + {2662, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 928 CF$UID @@ -12103,62 +12209,1418 @@ CF$UID - 931 + 31 + + + CF$UID + 930 + + + + 332373425.21764898 + {1844, 1121} + {0, 3659} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 NS.objects + + CF$UID + 932 + CF$UID 933 + + CF$UID + 31 + + + CF$UID + 934 + + + + 328640838.63388097 + {0, 1356} + {1255, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 936 + + + CF$UID + 937 + + + CF$UID + 31 + + + CF$UID + 938 + + + + 333484989.27985603 + {0, 1376} + {1375, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 940 + + + CF$UID + 941 + + + CF$UID + 31 + CF$UID 942 + + + 334077037.71717399 + {8199, 1660} + {9263, 28} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 947 + 556 + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 944 + + + CF$UID + 945 + + + CF$UID + 31 + + + CF$UID + 946 + + + + 328640237.80255002 + {0, 1350} + {1317, 12} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 948 + + + CF$UID + 949 + + + CF$UID + 31 + + + CF$UID + 950 + + + + 328568958.07031602 + {0, 2517} + {15, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 952 + + CF$UID + 949 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328633198.94233501 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 954 + + + CF$UID + 955 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328564665.45652199 + {0, 2412} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 957 + + CF$UID + 958 + + + CF$UID + 31 + + + CF$UID + 959 + + + + 328569459.30297899 + {1143, 2029} + {2083, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 961 + CF$UID 962 CF$UID - 963 + 31 CF$UID - 968 + 963 + + + + 328640229.76242298 + {968, 2219} + {3178, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 965 + + + CF$UID + 966 + + + CF$UID + 31 + + + CF$UID + 967 + + + + 334081529.54865998 + {0, 1473} + {620, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 969 + + + CF$UID + 970 + + + CF$UID + 31 CF$UID 971 + + + 328568946.85565799 + {0, 1316} + {0, 1155} + + $class + + CF$UID + 83 + + NS.keys + CF$UID - 976 + 556 + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 973 + + + CF$UID + 974 + + + CF$UID + 31 + + + CF$UID + 975 + + + + 333485333.59824401 + {0, 1235} + {1234, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + CF$UID 977 CF$UID - 980 + 978 CF$UID - 985 + 31 + + + CF$UID + 979 + + + + 328562716.033566 + {0, 242} + {187, 18} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 981 + + + CF$UID + 978 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328562654.93471301 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 983 + + + CF$UID + 984 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328564054.60792202 + {0, 45} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 986 + + + CF$UID + 987 + + + CF$UID + 31 + + + CF$UID + 988 + + + + 328569621.79128498 + {0, 1417} + {16, 1132} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 990 + + + CF$UID + 987 + + + CF$UID + 31 + + + CF$UID + 991 + + + + 328638426.72525901 + {942, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 993 + + + CF$UID + 994 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 333484897.95255202 + {0, 1256} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 996 + + + CF$UID + 997 + + + CF$UID + 31 + + + CF$UID + 998 + + + + 333490149.648996 + {1057, 1222} + {1770, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1000 + + + CF$UID + 1001 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328568899.47802299 + {0, 1398} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1003 + + + CF$UID + 1001 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328639704.97709 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1005 + + + CF$UID + 1006 + + + CF$UID + 31 + + + CF$UID + 1007 + + + + 328639723.21112299 + {5972, 2273} + {2726, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 1009 + + + CF$UID + 1010 + + + CF$UID + 31 + + + CF$UID + 1011 + + + + 334081685.29856199 + {0, 1967} + {2597, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1013 + + + CF$UID + 1014 + + + CF$UID + 31 + + + CF$UID + 1015 + + + + 333490189.84004301 + {0, 1980} + {1669, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1017 + + + CF$UID + 1001 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 333490249.24517697 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 1019 + + + CF$UID + 1020 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 334081626.56328499 + {0, 1398} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1022 + + + CF$UID + 1023 + + + CF$UID + 31 + + + CF$UID + 837 + + + + 328569452.326361 + {0, 1866} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 556 + + + CF$UID + 557 + + + CF$UID + 558 + + + CF$UID + 559 + + + NS.objects + + + CF$UID + 1025 + + + CF$UID + 1023 + + + CF$UID + 31 + + + CF$UID + 606 + + + + 328640019.14058203 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 70 + + + CF$UID + 71 + + + CF$UID + 72 + + + CF$UID + 73 + + + NS.objects + + + CF$UID + 1027 + + + CF$UID + 1028 + + + CF$UID + 31 + + + CF$UID + 1029 + + + + 334081466.17857403 + {520, 1342} + {1411, 0} + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1031 + + + CF$UID + 1033 + + + NS.objects + + + CF$UID + 1035 + + + CF$UID + 1049 @@ -12166,7 +13628,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12176,7 +13638,1986 @@ NS.relative CF$UID - 909 + 1032 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/MainWindow.xib + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1034 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample/en.lproj/RootViewController.xib + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1036 + + + CF$UID + 1037 + + + CF$UID + 1038 + + + CF$UID + 1039 + + + NS.objects + + + CF$UID + 1040 + + + CF$UID + 1043 + + + CF$UID + 1039 + + + CF$UID + 1044 + + + + IBDockViewController + SelectedObjectIDs + SelectionProvider + IBCanvasViewController + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1041 + + + NS.objects + + + CF$UID + 1042 + + + + LastKnownOutlineViewWidth + 270 + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 196 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1045 + + + CF$UID + 1046 + + + NS.objects + + + CF$UID + 1047 + + + CF$UID + 1048 + + + + ObjectIDToLastKnownCanvasPositionMap + EditedTopLevelObjectIDs + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 196 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1036 + + + CF$UID + 1037 + + + CF$UID + 1038 + + + CF$UID + 1039 + + + NS.objects + + + CF$UID + 1050 + + + CF$UID + 1052 + + + CF$UID + 1039 + + + CF$UID + 1053 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1041 + + + NS.objects + + + CF$UID + 1051 + + + + 270 + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 196 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1045 + + + CF$UID + 1046 + + + NS.objects + + + CF$UID + 1054 + + + CF$UID + 1055 + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 196 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 503 + + + NS.objects + + + CF$UID + 1057 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 559 + + + CF$UID + 557 + + + CF$UID + 556 + + + NS.objects + + + CF$UID + 606 + + + CF$UID + 933 + + + CF$UID + 1058 + + + + 328640247.68049502 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1060 + + + CF$UID + 1062 + + + CF$UID + 1064 + + + NS.objects + + + CF$UID + 1066 + + + CF$UID + 1112 + + + CF$UID + 1154 + + + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1061 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample.xcodeproj + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1063 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworking%20Example.xcodeproj/ + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1065 + + + + $class + + CF$UID + 66 + + NS.string + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample.xcodeproj + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1067 + + + CF$UID + 1068 + + + CF$UID + 1069 + + + CF$UID + 1070 + + + CF$UID + 1071 + + + NS.objects + + + CF$UID + 1072 + + + CF$UID + 1073 + + + CF$UID + 1083 + + + CF$UID + 1084 + + + CF$UID + 1099 + + + + Xcode3ProjectEditorPreviousProjectEditorClass + Xcode3ProjectEditor.sourceList.splitview + Xcode3ProjectEditorPreviousTargetEditorClass + Xcode3ProjectEditorSelectedDocumentLocations + Xcode3ProjectEditor_Xcode3BuildPhasesEditor + Xcode3BuildSettingsEditor + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1074 + + + NS.objects + + + CF$UID + 1075 + + + + DVTSplitViewItems + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 1076 + + + CF$UID + 1081 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 1077 + + + CF$UID + 1078 + + + NS.objects + + + CF$UID + 1079 + + + CF$UID + 1080 + + + + DVTIdentifier + DVTViewMagnitude + + 170 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 1077 + + + CF$UID + 1078 + + + NS.objects + + + CF$UID + 1079 + + + CF$UID + 1082 + + + + 2050 + Xcode3BuildPhasesEditor + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1085 + + + + + $class + + CF$UID + 1098 + + documentURL + + CF$UID + 1086 + + selection + + CF$UID + 1088 + + timestamp + + CF$UID + 1087 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample/AFNetworkingExample.xcodeproj/ + 328564319.53072202 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1089 + + + CF$UID + 1090 + + + CF$UID + 1091 + + + NS.objects + + + CF$UID + 1083 + + + CF$UID + 1092 + + + CF$UID + 1093 + + + + Editor + Target + Xcode3BuildPhasesEditorLocations + AFNetworkingExample + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1094 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1095 + + + NS.objects + + + CF$UID + 1096 + + + + Link Binary With Libraries + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1097 + + + + + $class + + CF$UID + 188 + + NSLength + 2 + NSLocation + 4 + NSRangeCount + 1 + + + $classes + + Xcode3ProjectDocumentLocation + DVTDocumentLocation + NSObject + + $classname + Xcode3ProjectDocumentLocation + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1100 + + + CF$UID + 1101 + + + CF$UID + 1102 + + + CF$UID + 1103 + + + CF$UID + 1104 + + + CF$UID + 1105 + + + CF$UID + 1106 + + + NS.objects + + + CF$UID + 1107 + + + CF$UID + 1079 + + + CF$UID + 1108 + + + CF$UID + 1109 + + + CF$UID + 1110 + + + CF$UID + 606 + + + CF$UID + 1111 + + + + F8E4695D1395739C00DB05C8 + Xcode3BuildPhasesEditorFilterKey + F8E4695E1395739C00DB05C8 + F8E4695C1395739C00DB05C8 + Xcode3BuildPhasesEditorDisclosedNamesKey + kXcode3BuildPhasesEditorScrollPointKey + F8E4695F1395739C00DB05C8 + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + CF$UID + 1095 + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1113 + + + CF$UID + 1114 + + + CF$UID + 1115 + + + CF$UID + 1116 + + + CF$UID + 1117 + + + CF$UID + 1118 + + + NS.objects + + + CF$UID + 1119 + + + CF$UID + 1120 + + + CF$UID + 1126 + + + CF$UID + 1127 + + + CF$UID + 1138 + + + CF$UID + 1153 + + + + Xcode3ProjectEditorPreviousProjectEditorClass + Xcode3ProjectEditor.sourceList.splitview + Xcode3ProjectEditorPreviousTargetEditorClass + Xcode3ProjectEditorSelectedDocumentLocations + Xcode3ProjectEditor_Xcode3BuildPhasesEditor + Xcode3ProjectEditor_Xcode3BuildSettingsEditor + Xcode3ProjectInfoEditor + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 97 + + + NS.objects + + + CF$UID + 1121 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 1122 + + + CF$UID + 1124 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 143 + + + CF$UID + 1123 + + + + 170 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 100 + + + CF$UID + 101 + + + NS.objects + + + CF$UID + 143 + + + CF$UID + 1125 + + + + 1410 + Xcode3BuildPhasesEditor + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1128 + + + + + $class + + CF$UID + 1098 + + documentURL + + CF$UID + 1129 + + selection + + CF$UID + 1131 + + timestamp + + CF$UID + 1130 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AFNetworking%20Example.xcodeproj/ + 334081179.35282099 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1132 + + + CF$UID + 1133 + + + CF$UID + 1134 + + + NS.objects + + + CF$UID + 1135 + + + CF$UID + 216 + + + CF$UID + 1136 + + + + Editor + Target + Xcode3BuildPhasesEditorLocations + Xcode3BuildPhasesEditor + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1137 + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1139 + + + CF$UID + 1140 + + + CF$UID + 1141 + + + CF$UID + 1142 + + + CF$UID + 1143 + + + CF$UID + 1144 + + + CF$UID + 1145 + + + NS.objects + + + CF$UID + 1146 + + + CF$UID + 1147 + + + CF$UID + 1148 + + + CF$UID + 1149 + + + CF$UID + 1151 + + + CF$UID + 606 + + + CF$UID + 1152 + + + + F8E4695D1395739C00DB05C8 + Xcode3BuildPhasesEditorFilterKey + F8E4695C1395739C00DB05C8 + Xcode3BuildPhasesEditorDisclosedNamesKey2.0 + F8E4695E1395739C00DB05C8 + kXcode3BuildPhasesEditorScrollPointKey + F8E4695F1395739C00DB05C8 + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 209 + + NS.objects + + + CF$UID + 1150 + + + + Link Binary With Libraries + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1067 + + + CF$UID + 1068 + + + CF$UID + 1069 + + + CF$UID + 1070 + + + CF$UID + 1071 + + + NS.objects + + + CF$UID + 1155 + + + CF$UID + 1156 + + + CF$UID + 1083 + + + CF$UID + 1162 + + + CF$UID + 1171 + + + + Xcode3ProjectInfoEditor + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1074 + + + NS.objects + + + CF$UID + 1157 + + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 1158 + + + CF$UID + 1160 + + + + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 1077 + + + CF$UID + 1078 + + + NS.objects + + + CF$UID + 1079 + + + CF$UID + 1159 + + + + 170 + + $class + + CF$UID + 77 + + NS.keys + + + CF$UID + 1077 + + + CF$UID + 1078 + + + NS.objects + + + CF$UID + 1079 + + + CF$UID + 1161 + + + + 2050 + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1163 + + + + + $class + + CF$UID + 1098 + + documentURL + + CF$UID + 1164 + + selection + + CF$UID + 1166 + + timestamp + + CF$UID + 1165 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworkingExample.xcodeproj/ + 328635390.22503901 + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1089 + + + CF$UID + 1090 + + + CF$UID + 1091 + + + NS.objects + + + CF$UID + 1083 + + + CF$UID + 1092 + + + CF$UID + 1167 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1168 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1095 + + + NS.objects + + + CF$UID + 1169 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1170 + + + + + $class + + CF$UID + 188 + + NSLength + 1 + NSLocation + 3 + NSRangeCount + 1 + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1105 + + + CF$UID + 1100 + + + CF$UID + 1104 + + + CF$UID + 1103 + + + CF$UID + 1106 + + + CF$UID + 1102 + + + NS.objects + + + CF$UID + 606 + + + CF$UID + 1172 + + + CF$UID + 1173 + + + CF$UID + 1174 + + + CF$UID + 1175 + + + CF$UID + 1176 + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 107 + + NS.objects + + + CF$UID + 1095 + + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + NS.objects + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1178 + + + CF$UID + 1180 + + + CF$UID + 1182 + + + CF$UID + 1184 + + + CF$UID + 1186 + + + CF$UID + 1188 + + + CF$UID + 1190 + + + CF$UID + 1192 + + + CF$UID + 1194 + + + CF$UID + 1196 + + + CF$UID + 1198 + + + CF$UID + 1200 + + + CF$UID + 1202 + + + CF$UID + 1204 + + + CF$UID + 1206 + + + CF$UID + 1208 + + + NS.objects + + + CF$UID + 1210 + + + CF$UID + 1217 + + + CF$UID + 1223 + + + CF$UID + 1228 + + + CF$UID + 1233 + + + CF$UID + 1238 + + + CF$UID + 1243 + + + CF$UID + 1248 + + + CF$UID + 1249 + + + CF$UID + 1254 + + + CF$UID + 1257 + + + CF$UID + 1260 + + + CF$UID + 1261 + + + CF$UID + 1264 + + + CF$UID + 1269 + + + CF$UID + 1274 + + + + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1179 + + + x-xcode-log://2550D4E8-EB03-4E16-B1AC-3F5AD67FF86E + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1181 x-xcode-log://03813013-719D-479A-8136-7272BFDF4A69 @@ -12184,7 +15625,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12194,7 +15635,7 @@ NS.relative CF$UID - 911 + 1183 x-xcode-log://A80D8CBF-3921-4FD6-9A91-F26DA3430A17 @@ -12202,7 +15643,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12212,7 +15653,7 @@ NS.relative CF$UID - 913 + 1185 x-xcode-log://60DD6657-65FC-4D91-BD31-231DAA49339D @@ -12220,7 +15661,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12230,7 +15671,7 @@ NS.relative CF$UID - 915 + 1187 x-xcode-log://DC803908-D7CE-42AE-AC67-87C6CD0918EF @@ -12238,7 +15679,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12248,7 +15689,7 @@ NS.relative CF$UID - 917 + 1189 x-xcode-log://4A9EC972-4209-4C15-B25D-2EAA5FD8FF68 @@ -12256,7 +15697,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12266,14 +15707,15 @@ NS.relative CF$UID - 89 + 1191 + x-xcode-log://140885A1-2936-4C3F-8492-0E7E9F69D924 $class CF$UID - 99 + 82 NS.base @@ -12283,7 +15725,25 @@ NS.relative CF$UID - 920 + 1193 + + + x-xcode-log://CEB352F9-1C85-4BD4-BA9F-87C4EFFED35A + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1195 x-xcode-log://E5CA60D6-2D4A-43DF-82C4-144BDA826E3F @@ -12291,7 +15751,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12301,7 +15761,7 @@ NS.relative CF$UID - 922 + 1197 x-xcode-log://172F2581-B75E-46AE-977B-15FBF67D56DF @@ -12309,7 +15769,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12319,7 +15779,7 @@ NS.relative CF$UID - 924 + 1199 x-xcode-log://AC42E47F-2C7F-419E-9081-940F38443D2C @@ -12327,7 +15787,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12337,7 +15797,7 @@ NS.relative CF$UID - 926 + 1201 x-xcode-log://32AE9614-23BA-4F4F-A769-69E3EE7FEAE7 @@ -12345,7 +15805,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12355,7 +15815,7 @@ NS.relative CF$UID - 928 + 1203 x-xcode-log://1A2CE66F-E44B-4EE6-9253-3CF03B039DB6 @@ -12363,7 +15823,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12373,7 +15833,7 @@ NS.relative CF$UID - 930 + 1205 x-xcode-log://C6B8D3DD-C212-4E7D-BBB2-F4EFFBB59B9A @@ -12381,7 +15841,7 @@ $class CF$UID - 99 + 82 NS.base @@ -12391,7 +15851,7 @@ NS.relative CF$UID - 932 + 1207 x-xcode-log://023ABC51-7C79-476F-B5F8-63C20F2CB931 @@ -12399,20 +15859,38 @@ $class CF$UID - 43 + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1209 + + + x-xcode-log://1D3F82F2-B3E4-4045-9D19-BBD653E470B5 + + $class + + CF$UID + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 935 + 1212 @@ -12421,13 +15899,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 936 + 1213 @@ -12435,19 +15913,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 909 + 1179 expandTranscript indexPath CF$UID - 937 + 1214 timestamp @@ -12459,36 +15937,12 @@ $class CF$UID - 940 - - NSIndexPathData - - CF$UID - 938 + 1215 NSIndexPathLength - 2 - - - $class - - CF$UID - 939 - - NS.data - - ABM= - - - - $classes - - NSMutableData - NSData - NSObject - - $classname - NSMutableData + 1 + NSIndexPathValue + 0 $classes @@ -12513,20 +15967,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 943 + 1218 @@ -12534,13 +15988,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 944 + 1219 @@ -12548,19 +16002,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 911 + 1181 expandTranscript indexPath CF$UID - 945 + 1220 timestamp @@ -12572,12 +16026,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 946 + 1221 NSIndexPathLength 2 @@ -12586,7 +16040,101 @@ $class CF$UID - 939 + 1222 + + NS.data + + ABM= + + + + $classes + + NSMutableData + NSData + NSObject + + $classname + NSMutableData + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 1224 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1225 + + + + + $class + + CF$UID + 1216 + + documentURL + + CF$UID + 1183 + + expandTranscript + + indexPath + + CF$UID + 1226 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 1215 + + NSIndexPathData + + CF$UID + 1227 + + NSIndexPathLength + 2 + + + $class + + CF$UID + 1222 NS.data @@ -12597,20 +16145,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 93 + 1211 NS.objects CF$UID - 948 + 1229 @@ -12618,13 +16166,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 949 + 1230 @@ -12632,19 +16180,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 913 + 1185 expandTranscript indexPath CF$UID - 950 + 1231 timestamp @@ -12656,12 +16204,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 951 + 1232 NSIndexPathLength 2 @@ -12670,7 +16218,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -12681,20 +16229,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 953 + 1234 @@ -12702,13 +16250,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 954 + 1235 @@ -12716,19 +16264,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 915 + 1187 expandTranscript indexPath CF$UID - 955 + 1236 timestamp @@ -12740,12 +16288,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 956 + 1237 NSIndexPathLength 2 @@ -12754,7 +16302,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -12765,20 +16313,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 958 + 1239 @@ -12786,13 +16334,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 959 + 1240 @@ -12800,19 +16348,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 917 + 1189 expandTranscript indexPath CF$UID - 960 + 1241 timestamp @@ -12824,12 +16372,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 961 + 1242 NSIndexPathLength 2 @@ -12838,7 +16386,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -12849,20 +16397,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 93 + 1211 NS.objects CF$UID - 94 + 1244 @@ -12870,34 +16418,13 @@ $class CF$UID - 43 - - NS.keys - - - CF$UID - 934 - - - NS.objects - - - CF$UID - 964 - - - - - $class - - CF$UID - 86 + 62 NS.objects CF$UID - 965 + 1245 @@ -12905,19 +16432,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 920 + 1191 expandTranscript indexPath CF$UID - 966 + 1246 timestamp @@ -12929,12 +16456,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 967 + 1247 NSIndexPathLength 2 @@ -12943,150 +16470,7 @@ $class CF$UID - 939 - - NS.data - - AAg= - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 934 - - - NS.objects - - - CF$UID - 969 - - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 970 - - - - - $class - - CF$UID - 941 - - documentURL - - CF$UID - 922 - - expandTranscript - - indexPath - - CF$UID - 937 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 93 - - - NS.objects - - - CF$UID - 972 - - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 973 - - - - - $class - - CF$UID - 941 - - documentURL - - CF$UID - 924 - - expandTranscript - - indexPath - - CF$UID - 974 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 940 - - NSIndexPathData - - CF$UID - 975 - - NSIndexPathLength - 2 - - - $class - - CF$UID - 939 + 1222 NS.data @@ -13097,20 +16481,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 359 + 288 @@ -13118,20 +16502,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 93 + 1211 NS.objects CF$UID - 978 + 1250 @@ -13139,13 +16523,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 979 + 1251 @@ -13153,19 +16537,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 928 + 1195 expandTranscript indexPath CF$UID - 950 + 1252 timestamp @@ -13177,71 +16561,294 @@ $class CF$UID - 43 - - NS.keys - - - CF$UID - 934 - - - NS.objects - - - CF$UID - 981 - - - - - $class - - CF$UID - 86 - - NS.objects - - - CF$UID - 982 - - - - - $class - - CF$UID - 941 - - documentURL - - CF$UID - 930 - - expandTranscript - - indexPath - - CF$UID - 983 - - timestamp - - CF$UID - 0 - - - - $class - - CF$UID - 940 + 1215 NSIndexPathData CF$UID - 984 + 1253 + + NSIndexPathLength + 2 + + + $class + + CF$UID + 1222 + + NS.data + + AAg= + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 1255 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1256 + + + + + $class + + CF$UID + 1216 + + documentURL + + CF$UID + 1197 + + expandTranscript + + indexPath + + CF$UID + 1220 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 1258 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1259 + + + + + $class + + CF$UID + 1216 + + documentURL + + CF$UID + 1199 + + expandTranscript + + indexPath + + CF$UID + 1246 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 288 + + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 1262 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1263 + + + + + $class + + CF$UID + 1216 + + documentURL + + CF$UID + 1203 + + expandTranscript + + indexPath + + CF$UID + 1231 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 83 + + NS.keys + + + CF$UID + 1211 + + + NS.objects + + + CF$UID + 1265 + + + + + $class + + CF$UID + 62 + + NS.objects + + + CF$UID + 1266 + + + + + $class + + CF$UID + 1216 + + documentURL + + CF$UID + 1205 + + expandTranscript + + indexPath + + CF$UID + 1267 + + timestamp + + CF$UID + 0 + + + + $class + + CF$UID + 1215 + + NSIndexPathData + + CF$UID + 1268 NSIndexPathLength 3 @@ -13250,7 +16857,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -13261,20 +16868,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 934 + 1211 NS.objects CF$UID - 986 + 1270 @@ -13282,13 +16889,13 @@ $class CF$UID - 86 + 62 NS.objects CF$UID - 987 + 1271 @@ -13296,19 +16903,19 @@ $class CF$UID - 941 + 1216 documentURL CF$UID - 932 + 1207 expandTranscript indexPath CF$UID - 988 + 1272 timestamp @@ -13320,12 +16927,12 @@ $class CF$UID - 940 + 1215 NSIndexPathData CF$UID - 989 + 1273 NSIndexPathLength 2 @@ -13334,7 +16941,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -13345,20 +16952,20 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 556 + 1211 NS.objects CF$UID - 991 + 288 @@ -13366,91 +16973,53 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 156 + 1276 CF$UID - 154 - - - CF$UID - 153 + 1277 NS.objects CF$UID - 160 + 1278 CF$UID - 874 - - - CF$UID - 992 - - - - 328640247.68049502 - - $class - - CF$UID - 43 - - NS.keys - - - CF$UID - 994 - - - CF$UID - 995 - - - NS.objects - - - CF$UID - 996 - - - CF$UID - 997 + 1279 IDEDeviceLocation IDEDeviceArchitecture - dvtdevice-iphone:32440fe253a4660b3fbc2196bbcf88dea9bfe94b + dvtdevice-iphone:5c36e4b3d2a75313847079f3ec165323094f6c58 armv7 $class CF$UID - 43 + 83 NS.keys CF$UID - 999 + 1281 NS.objects CF$UID - 1000 + 1282 @@ -13460,36 +17029,36 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 1002 + 1284 CF$UID - 1003 + 1285 CF$UID - 1004 + 1286 NS.objects CF$UID - 1005 + 1287 CF$UID - 1030 + 1312 CF$UID - 1012 + 216 @@ -13500,25 +17069,25 @@ $class CF$UID - 56 + 107 NS.objects CF$UID - 1006 + 1288 CF$UID - 1013 + 1295 CF$UID - 1017 + 1299 CF$UID - 1021 + 1303 @@ -13526,36 +17095,36 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 1007 + 1289 CF$UID - 1008 + 1290 CF$UID - 1009 + 1291 NS.objects CF$UID - 1010 + 1292 CF$UID - 1011 + 1293 CF$UID - 1012 + 1294 @@ -13569,36 +17138,36 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 1007 + 1289 CF$UID - 1008 + 1290 CF$UID - 1009 + 1291 NS.objects CF$UID - 1014 + 1296 CF$UID - 1015 + 1297 CF$UID - 1016 + 1298 @@ -13609,36 +17178,36 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 1007 + 1289 CF$UID - 1008 + 1290 CF$UID - 1009 + 1291 NS.objects CF$UID - 1018 + 1300 CF$UID - 1019 + 1301 CF$UID - 1020 + 1302 @@ -13648,7 +17217,7 @@ $class CF$UID - 939 + 1222 NS.data @@ -13674,60 +17243,60 @@ $class CF$UID - 43 + 83 NS.keys CF$UID - 1007 + 1289 CF$UID - 1022 + 1304 CF$UID - 1023 + 1305 CF$UID - 1009 + 1291 CF$UID - 1024 + 1306 CF$UID - 1025 + 1307 NS.objects CF$UID - 1026 + 1308 CF$UID - 39 + 93 CF$UID - 1027 + 1309 CF$UID - 1029 + 1311 CF$UID - 39 + 93 CF$UID - 39 + 93 @@ -13740,10 +17309,10 @@ $class CF$UID - 1028 + 1310 NS.time - 328738341.15312898 + 334081477.105115 $classes @@ -13754,13 +17323,13 @@ $classname NSDate - Today at 15:12 - 106 + Today at 11:24 + 234 $class CF$UID - 56 + 107 NS.objects @@ -13774,49 +17343,20 @@ $class CF$UID - 56 + 83 + NS.keys + + + CF$UID + 1315 + + NS.objects CF$UID - 918 - - - CF$UID - 1033 - - - CF$UID - 927 - - - CF$UID - 1035 - - - CF$UID - 923 - - - CF$UID - 912 - - - CF$UID - 1037 - - - CF$UID - 1039 - - - CF$UID - 1041 - - - CF$UID - 1043 + 1317 @@ -13824,7 +17364,7 @@ $class CF$UID - 99 + 82 NS.base @@ -13834,51 +17374,98 @@ NS.relative CF$UID - 1034 + 1316 - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPRequestOperation.m $class CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1036 + 77 + NS.keys + + + CF$UID + 1318 + + + CF$UID + 1319 + + + NS.objects + + + CF$UID + 1320 + + + CF$UID + 1321 + + - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFImageRequest.m + width + height + 1788 + 1020 $class CF$UID - 99 - - NS.base - - CF$UID - 0 - - NS.relative - - CF$UID - 1038 + 107 + NS.objects + + + CF$UID + 1323 + + + CF$UID + 1325 + + + CF$UID + 1327 + + + CF$UID + 1328 + + + CF$UID + 1330 + + + CF$UID + 1332 + + + CF$UID + 1334 + + + CF$UID + 1336 + + + CF$UID + 1338 + + + CF$UID + 1340 + + - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/AppDelegate.m $class CF$UID - 99 + 82 NS.base @@ -13888,7 +17475,25 @@ NS.relative CF$UID - 1040 + 1324 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/Controllers/NearbySpotsViewController.m + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1326 file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.m @@ -13896,7 +17501,7 @@ $class CF$UID - 99 + 82 NS.base @@ -13906,15 +17511,14 @@ NS.relative CF$UID - 1042 + 276 - file://localhost/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSPathUtilities.h $class CF$UID - 99 + 82 NS.base @@ -13924,10 +17528,118 @@ NS.relative CF$UID - 1044 + 1329 - file://localhost/Users/mattt/Code/Objective-C/AFNetworking/Example/Classes/AFGowallaAPIClient.m + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFRestClient.h + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1331 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFJSONRequestOperation.m + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1333 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFJSONRequestOperation.h + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1335 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPRequestOperation.m + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1337 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFHTTPRequestOperation.h + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1339 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.h + + $class + + CF$UID + 82 + + NS.base + + CF$UID + 0 + + NS.relative + + CF$UID + 1341 + + + file://localhost/Users/mattt/Code/Objective-C/AFNetworking/AFNetworking/AFImageRequestOperation.m $top diff --git a/Example/Classes/AFImageRequest.m b/Example/Classes/AFImageRequest.m deleted file mode 100644 index afd1e97..0000000 --- a/Example/Classes/AFImageRequest.m +++ /dev/null @@ -1,91 +0,0 @@ -// AFImageRequest.m -// -// Copyright (c) 2011 Gowalla (http://gowalla.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 "AFImageRequest.h" -#import "AFImageRequestOperation.h" - -static NSOperationQueue *_operationQueue = nil; - -@implementation AFImageRequest - -+ (void)initialize { - _operationQueue = [[NSOperationQueue alloc] init]; - [_operationQueue setMaxConcurrentOperationCount:6]; -} - -+ (void)requestImageWithURLString:(NSString *)urlString options:(AFImageRequestOptions)options block:(void (^)(UIImage *image))block { - [self requestImageWithURLString:urlString size:CGSizeZero options:options block:block]; -} - -+ (void)requestImageWithURLString:(NSString *)urlString size:(CGSize)imageSize options:(AFImageRequestOptions)options block:(void (^)(UIImage *image))block { - // Append a hash anchor to the image URL so that unique image options get cached separately - NSString *cacheAnchor = [NSString stringWithFormat:@"%fx%f:%d", imageSize.width, imageSize.height, options]; - NSURL *url = [NSURL URLWithString:[urlString stringByAppendingString:[NSString stringWithFormat:@"#%@", cacheAnchor]]]; - if (!url) { - if (block) { - block(nil); - } - return; - } - - NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0]; - [request setHTTPShouldHandleCookies:NO]; - - AFImageRequestOperationCallback *callback = [AFImageRequestOperationCallback callbackWithSuccess:block imageSize:imageSize options:options]; - AFImageRequestOperation *operation = [[[AFImageRequestOperation alloc] initWithRequest:request callback:callback] autorelease]; - - NSCachedURLResponse *cachedResponse = [[[[NSURLCache sharedURLCache] cachedResponseForRequest:request] retain] autorelease]; - if (cachedResponse) { - if (block) { - block([UIImage imageWithData:[cachedResponse data]]); - return; - } - } - - [_operationQueue addOperation:operation]; -} - -+ (void)cancelImageRequestOperationsForURLString:(NSString *)urlString { - if (!urlString) { - return; - } - - for (AFImageRequestOperation *operation in [_operationQueue operations]) { - NSString *requestURLString = [[[operation request] URL] absoluteString]; - NSRange anchorRange = [requestURLString rangeOfString:@"#" options:NSBackwardsSearch]; - if (anchorRange.location != NSNotFound && [[requestURLString substringToIndex:anchorRange.location] isEqualToString:urlString]) { - if (!([operation isExecuting] || [operation isCancelled])) { - [operation cancel]; - } - } - } -} - -+ (void)cancelAllImageRequestOperations { - for (AFImageRequestOperation *operation in [_operationQueue operations]) { - if (!([operation isExecuting] || [operation isCancelled])) { - [operation cancel]; - } - } -} - -@end diff --git a/Example/Classes/Controllers/NearbySpotsViewController.h b/Example/Classes/Controllers/NearbySpotsViewController.h index 63609ac..f3e7399 100644 --- a/Example/Classes/Controllers/NearbySpotsViewController.h +++ b/Example/Classes/Controllers/NearbySpotsViewController.h @@ -24,10 +24,9 @@ #import @interface NearbySpotsViewController : UITableViewController { + NSArray *_nearbySpots; + CLLocationManager *_locationManager; UIActivityIndicatorView *_activityIndicatorView; } -@property (readonly, nonatomic, retain) NSArray *nearbySpots; -@property (readonly, nonatomic, retain) CLLocationManager *locationManager; - @end diff --git a/Example/Classes/Controllers/NearbySpotsViewController.m b/Example/Classes/Controllers/NearbySpotsViewController.m index bb63d36..33edae6 100644 --- a/Example/Classes/Controllers/NearbySpotsViewController.m +++ b/Example/Classes/Controllers/NearbySpotsViewController.m @@ -21,9 +21,14 @@ // THE SOFTWARE. #import "NearbySpotsViewController.h" + #import "Spot.h" + #import "SpotTableViewCell.h" + #import "TTTLocationFormatter.h" +#import "AFImageCache.h" +#import "UIImageView+AFNetworking.h" @interface NearbySpotsViewController () @property (readwrite, nonatomic, retain) NSArray *nearbySpots; @@ -34,18 +39,11 @@ - (void)refresh:(id)sender; @end -static TTTLocationFormatter *__locationFormatter; - @implementation NearbySpotsViewController @synthesize nearbySpots = _spots; @synthesize locationManager = _locationManager; @synthesize activityIndicatorView = _activityIndicatorView; -+ (void)initialize { - __locationFormatter = [[TTTLocationFormatter alloc] init]; - [__locationFormatter setUnitSystem:TTTImperialSystem]; -} - - (id)init { self = [super init]; if (!self) { @@ -72,7 +70,7 @@ static TTTLocationFormatter *__locationFormatter; [self.activityIndicatorView startAnimating]; self.navigationItem.rightBarButtonItem.enabled = NO; - [Spot spotsWithURLString:@"/spots/advanced_search" near:location parameters:[NSDictionary dictionaryWithObject:@"128" forKey:@"per_page"] withBlock:^(NSArray *records) { + [Spot spotsWithURLString:@"/spots/advanced_search" near:location parameters:[NSDictionary dictionaryWithObject:@"128" forKey:@"per_page"] block:^(NSArray *records) { self.nearbySpots = [records sortedArrayUsingComparator:^ NSComparisonResult(id obj1, id obj2) { CLLocationDistance d1 = [[(Spot *)obj1 location] distanceFromLocation:location]; CLLocationDistance d2 = [[(Spot *)obj2 location] distanceFromLocation:location]; @@ -98,7 +96,7 @@ static TTTLocationFormatter *__locationFormatter; - (void)viewDidLoad { [super viewDidLoad]; - self.title = NSLocalizedString(@"Nearby Spots", nil); + self.title = NSLocalizedString(@"AFNetworking", nil); self.activityIndicatorView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease]; self.activityIndicatorView.hidesWhenStopped = YES; @@ -119,25 +117,26 @@ static TTTLocationFormatter *__locationFormatter; [self.locationManager stopUpdatingLocation]; } -#pragma mark - CLLocationManagerDelegate - -- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { - [self loadSpotsForLocation:newLocation]; -} - #pragma mark - Actions - (void)refresh:(id)sender { self.nearbySpots = [NSArray array]; [self.tableView reloadData]; [[NSURLCache sharedURLCache] removeAllCachedResponses]; + [[AFImageCache sharedImageCache] removeAllObjects]; if (self.locationManager.location) { [self loadSpotsForLocation:self.locationManager.location]; } } -#pragma mark - UITableViewDelegate +#pragma mark - CLLocationManagerDelegate + +- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { + [self loadSpotsForLocation:newLocation]; +} + +#pragma mark - UITableViewDataSource - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; @@ -154,17 +153,33 @@ static TTTLocationFormatter *__locationFormatter; if (cell == nil) { cell = [[[SpotTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; } + + static TTTLocationFormatter *_locationFormatter = nil; + if (!_locationFormatter) { + _locationFormatter = [[TTTLocationFormatter alloc] init]; + [_locationFormatter setUnitSystem:TTTImperialSystem]; + } Spot *spot = [self.nearbySpots objectAtIndex:indexPath.row]; cell.textLabel.text = spot.name; if (self.locationManager.location) { - cell.detailTextLabel.text = [__locationFormatter stringFromDistanceAndBearingFromLocation:self.locationManager.location toLocation:spot.location]; + cell.detailTextLabel.text = [_locationFormatter stringFromDistanceAndBearingFromLocation:self.locationManager.location toLocation:spot.location]; } - cell.imageURLString = spot.imageURLString; + [cell.imageView setImageWithURL:[NSURL URLWithString:spot.imageURLString] placeholderImage:[UIImage imageNamed:@"placeholder-stamp.png"]]; return cell; } +#pragma mark - UITableViewDelegate + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { + if ([self tableView:tableView numberOfRowsInSection:section] > 0) { + return NSLocalizedString(@"Nearby Spots", nil); + } + + return nil; +} + - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; } diff --git a/Example/Classes/Models/Spot.h b/Example/Classes/Models/Spot.h index 2fa5e01..3cee711 100644 --- a/Example/Classes/Models/Spot.h +++ b/Example/Classes/Models/Spot.h @@ -40,6 +40,6 @@ typedef void (^AFRecordsBlock)(NSArray *records); @property (readonly) CLLocation *location; - (id)initWithAttributes:(NSDictionary *)attributes; -+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters withBlock:(AFRecordsBlock)block; ++ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(AFRecordsBlock)block; @end diff --git a/Example/Classes/Models/Spot.m b/Example/Classes/Models/Spot.m index e44e3f5..58e1cd7 100644 --- a/Example/Classes/Models/Spot.m +++ b/Example/Classes/Models/Spot.m @@ -19,6 +19,7 @@ // 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 "Spot.h" #import "AFGowallaAPIClient.h" @@ -56,24 +57,28 @@ return [[[CLLocation alloc] initWithLatitude:[self.latitude doubleValue] longitude:[self.longitude doubleValue]] autorelease]; } -+ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters withBlock:(AFRecordsBlock)block { ++ (void)spotsWithURLString:(NSString *)urlString near:(CLLocation *)location parameters:(NSDictionary *)parameters block:(AFRecordsBlock)block { NSDictionary *mutableParameters = [NSMutableDictionary dictionaryWithDictionary:parameters]; if (location) { [mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.latitude] forKey:@"lat"]; [mutableParameters setValue:[NSString stringWithFormat:@"%1.7f", location.coordinate.longitude] forKey:@"lng"]; } - [[AFGowallaAPIClient sharedClient] getPath:urlString parameters:mutableParameters callback:[AFHTTPOperationCallback callbackWithSuccess:^(NSURLRequest *request, NSHTTPURLResponse *response, NSDictionary *data) { - if (block) { - NSMutableArray *mutableRecords = [NSMutableArray array]; - for (NSDictionary *attributes in [data valueForKeyPath:@"spots"]) { - Spot *spot = [[[Spot alloc] initWithAttributes:attributes] autorelease]; - [mutableRecords addObject:spot]; - } - + [[AFGowallaAPIClient sharedClient] getPath:urlString parameters:mutableParameters success:^(id response) { + NSMutableArray *mutableRecords = [NSMutableArray array]; + for (NSDictionary *attributes in [response valueForKeyPath:@"spots"]) { + Spot *spot = [[[Spot alloc] initWithAttributes:attributes] autorelease]; + [mutableRecords addObject:spot]; + } + + if (block) { block([NSArray arrayWithArray:mutableRecords]); } - }]]; + } failure:^(NSError *error) { + if (block) { + block([NSArray array]); + } + }]; } @end diff --git a/Example/Classes/Views/SpotTableViewCell.h b/Example/Classes/Views/SpotTableViewCell.h index 375f8b4..c877bab 100644 --- a/Example/Classes/Views/SpotTableViewCell.h +++ b/Example/Classes/Views/SpotTableViewCell.h @@ -21,10 +21,7 @@ // THE SOFTWARE. #import -#import "AFImageRequest.h" -@interface SpotTableViewCell : UITableViewCell { - NSString *_imageURLString; -} +@interface SpotTableViewCell : UITableViewCell @end diff --git a/Example/Classes/Views/SpotTableViewCell.m b/Example/Classes/Views/SpotTableViewCell.m index a4047e9..5ecb303 100644 --- a/Example/Classes/Views/SpotTableViewCell.m +++ b/Example/Classes/Views/SpotTableViewCell.m @@ -23,7 +23,6 @@ #import "SpotTableViewCell.h" @implementation SpotTableViewCell -@synthesize imageURLString = _imageURLString; - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; @@ -41,50 +40,6 @@ return self; } -- (void)dealloc { - [_imageURLString release]; - [super dealloc]; -} - -- (void)setImageURLString:(NSString *)imageURLString { - [self setImageURLString:imageURLString options:AFImageRequestResize | AFImageCacheProcessedImage]; -} - -- (void)setImageURLString:(NSString *)imageURLString options:(AFImageRequestOptions)options { - if ([self.imageURLString isEqual:imageURLString]) { - return; - } - - if (self.imageURLString) { - self.imageView.image = [UIImage imageNamed:@"placeholder-stamp.png"]; - } - - [self willChangeValueForKey:@"imageURLString"]; - [_imageURLString release]; - _imageURLString = [imageURLString copy]; - [self didChangeValueForKey:@"imageURLString"]; - - if (self.imageURLString) { - [AFImageRequest requestImageWithURLString:self.imageURLString size:CGSizeMake(50.0f, 50.0f) options:options block:^(UIImage *image) { - if ([self.imageURLString isEqualToString:imageURLString]) { - BOOL needsLayout = self.imageView.image == nil; - self.imageView.image = image; - - if (needsLayout) { - [self setNeedsLayout]; - } - } - }]; - } -} - -#pragma mark - UITableViewCell - -- (void)prepareForReuse { - [super prepareForReuse]; - [AFImageRequest cancelImageRequestOperationsForURLString:self.imageURLString]; -} - #pragma mark - UIView - (void)layoutSubviews {