Progress API cleanup
Use slightly stricter build config, fix 64bit issues
Showing
11 changed files
with
71 additions
and
28 deletions
| @@ -243,8 +243,8 @@ | @@ -243,8 +243,8 @@ | ||
| 243 | 243 | ||
| 244 | NSEnumerator *e = [[self postData] keyEnumerator]; | 244 | NSEnumerator *e = [[self postData] keyEnumerator]; |
| 245 | NSString *key; | 245 | NSString *key; |
| 246 | - int i=0; | 246 | + NSUInteger i=0; |
| 247 | - int count = [[self postData] count]-1; | 247 | + NSUInteger count = [[self postData] count]-1; |
| 248 | while (key = [e nextObject]) { | 248 | while (key = [e nextObject]) { |
| 249 | NSString *data = [NSString stringWithFormat:@"%@=%@%@", [self encodeURL:key], [self encodeURL:[[self postData] objectForKey:key]],(i<count ? @"&" : @"")]; | 249 | NSString *data = [NSString stringWithFormat:@"%@=%@%@", [self encodeURL:key], [self encodeURL:[[self postData] objectForKey:key]],(i<count ? @"&" : @"")]; |
| 250 | [self appendPostString:data]; | 250 | [self appendPostString:data]; |
| @@ -245,6 +245,9 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | @@ -245,6 +245,9 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | ||
| 245 | // Called on the delegate (if implemented) when the request starts. Default is requestStarted: | 245 | // Called on the delegate (if implemented) when the request starts. Default is requestStarted: |
| 246 | SEL didStartSelector; | 246 | SEL didStartSelector; |
| 247 | 247 | ||
| 248 | + // Called on the delegate (if implemented) when the request receives response headers. Default is requestDidReceiveResponseHeaders: | ||
| 249 | + SEL didReceiveResponseHeadersSelector; | ||
| 250 | + | ||
| 248 | // Called on the delegate (if implemented) when the request completes successfully. Default is requestFinished: | 251 | // Called on the delegate (if implemented) when the request completes successfully. Default is requestFinished: |
| 249 | SEL didFinishSelector; | 252 | SEL didFinishSelector; |
| 250 | 253 | ||
| @@ -446,25 +449,37 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | @@ -446,25 +449,37 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | ||
| 446 | 449 | ||
| 447 | #pragma mark upload/download progress | 450 | #pragma mark upload/download progress |
| 448 | 451 | ||
| 452 | +// Called approximately every 0.25 seconds to update the progress delegates | ||
| 449 | - (void)updateProgressIndicators; | 453 | - (void)updateProgressIndicators; |
| 454 | + | ||
| 455 | +// Updates upload progress (notifies the queue and/or uploadProgressDelegate of this request) | ||
| 450 | - (void)updateUploadProgress; | 456 | - (void)updateUploadProgress; |
| 457 | + | ||
| 458 | +// Updates download progress (notifies the queue and/or uploadProgressDelegate of this request) | ||
| 451 | - (void)updateDownloadProgress; | 459 | - (void)updateDownloadProgress; |
| 452 | 460 | ||
| 453 | // Called when authorisation is needed, as we only find out we don't have permission to something when the upload is complete | 461 | // Called when authorisation is needed, as we only find out we don't have permission to something when the upload is complete |
| 454 | - (void)removeUploadProgressSoFar; | 462 | - (void)removeUploadProgressSoFar; |
| 455 | 463 | ||
| 464 | +// Called when we get a content-length header and shouldResetProgressIndicators is true | ||
| 465 | +- (void)incrementDownloadSizeBy:(long long)length; | ||
| 466 | + | ||
| 467 | +// Called when a request starts and shouldResetProgressIndicators is true | ||
| 468 | +// Also called (with a negative length) to remove the size of the underlying buffer used for uploading | ||
| 469 | +- (void)incrementUploadSizeBy:(long long)length; | ||
| 470 | + | ||
| 456 | // Helper method for interacting with progress indicators to abstract the details of different APIS (NSProgressIndicator and UIProgressView) | 471 | // Helper method for interacting with progress indicators to abstract the details of different APIS (NSProgressIndicator and UIProgressView) |
| 457 | + (void)updateProgressIndicator:(id)indicator withProgress:(unsigned long long)progress ofTotal:(unsigned long long)total; | 472 | + (void)updateProgressIndicator:(id)indicator withProgress:(unsigned long long)progress ofTotal:(unsigned long long)total; |
| 458 | 473 | ||
| 459 | 474 | ||
| 460 | -- (void)resetDownloadProgressWithNewLength:(unsigned long long)length; | ||
| 461 | -- (void)resetUploadProgressWithNewLength:(unsigned long long)value; | ||
| 462 | - | ||
| 463 | #pragma mark handling request complete / failure | 475 | #pragma mark handling request complete / failure |
| 464 | 476 | ||
| 465 | // Called when a request starts, lets the delegate know via didStartSelector | 477 | // Called when a request starts, lets the delegate know via didStartSelector |
| 466 | - (void)requestStarted; | 478 | - (void)requestStarted; |
| 467 | 479 | ||
| 480 | +// Called when a request receives response headers, lets the delegate know via didReceiveResponseHeadersSelector | ||
| 481 | +- (void)requestReceivedResponseHeaders; | ||
| 482 | + | ||
| 468 | // Called when a request completes successfully, lets the delegate know via didFinishSelector | 483 | // Called when a request completes successfully, lets the delegate know via didFinishSelector |
| 469 | - (void)requestFinished; | 484 | - (void)requestFinished; |
| 470 | 485 | ||
| @@ -678,6 +693,7 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | @@ -678,6 +693,7 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | ||
| 678 | @property (retain) NSString *downloadDestinationPath; | 693 | @property (retain) NSString *downloadDestinationPath; |
| 679 | @property (retain) NSString *temporaryFileDownloadPath; | 694 | @property (retain) NSString *temporaryFileDownloadPath; |
| 680 | @property (assign) SEL didStartSelector; | 695 | @property (assign) SEL didStartSelector; |
| 696 | +@property (assign) SEL didReceiveResponseHeadersSelector; | ||
| 681 | @property (assign) SEL didFinishSelector; | 697 | @property (assign) SEL didFinishSelector; |
| 682 | @property (assign) SEL didFailSelector; | 698 | @property (assign) SEL didFailSelector; |
| 683 | @property (retain,readonly) NSString *authenticationRealm; | 699 | @property (retain,readonly) NSString *authenticationRealm; |
| @@ -728,7 +744,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | @@ -728,7 +744,6 @@ extern unsigned long const ASIWWANBandwidthThrottleAmount; | ||
| 728 | @property (assign, readonly) int proxyAuthenticationRetryCount; | 744 | @property (assign, readonly) int proxyAuthenticationRetryCount; |
| 729 | @property (assign) BOOL haveBuiltRequestHeaders; | 745 | @property (assign) BOOL haveBuiltRequestHeaders; |
| 730 | @property (assign, nonatomic) BOOL haveBuiltPostBody; | 746 | @property (assign, nonatomic) BOOL haveBuiltPostBody; |
| 731 | - | ||
| 732 | @property (assign, readonly) BOOL isSynchronous; | 747 | @property (assign, readonly) BOOL isSynchronous; |
| 733 | @property (assign, readonly) BOOL inProgress; | 748 | @property (assign, readonly) BOOL inProgress; |
| 734 | @property (assign) int numberOfTimesToRetryOnTimeout; | 749 | @property (assign) int numberOfTimesToRetryOnTimeout; |
This diff is collapsed. Click to expand it.
| @@ -15,6 +15,7 @@ | @@ -15,6 +15,7 @@ | ||
| 15 | // These are the default delegate methods for request status | 15 | // These are the default delegate methods for request status |
| 16 | // You can use different ones by setting didStartSelector / didFinishSelector / didFailSelector | 16 | // You can use different ones by setting didStartSelector / didFinishSelector / didFailSelector |
| 17 | - (void)requestStarted:(ASIHTTPRequest *)request; | 17 | - (void)requestStarted:(ASIHTTPRequest *)request; |
| 18 | +- (void)requestReceivedResponseHeaders:(ASIHTTPRequest *)request; | ||
| 18 | - (void)requestFinished:(ASIHTTPRequest *)request; | 19 | - (void)requestFinished:(ASIHTTPRequest *)request; |
| 19 | - (void)requestFailed:(ASIHTTPRequest *)request; | 20 | - (void)requestFailed:(ASIHTTPRequest *)request; |
| 20 | 21 |
| @@ -7,9 +7,10 @@ | @@ -7,9 +7,10 @@ | ||
| 7 | // | 7 | // |
| 8 | 8 | ||
| 9 | #import <Foundation/Foundation.h> | 9 | #import <Foundation/Foundation.h> |
| 10 | +#import "ASIHTTPRequestDelegate.h" | ||
| 10 | #import "ASIProgressDelegate.h" | 11 | #import "ASIProgressDelegate.h" |
| 11 | 12 | ||
| 12 | -@interface ASINetworkQueue : NSOperationQueue <ASIProgressDelegate, NSCopying> { | 13 | +@interface ASINetworkQueue : NSOperationQueue <ASIProgressDelegate, ASIHTTPRequestDelegate, NSCopying> { |
| 13 | 14 | ||
| 14 | // Delegate will get didFail + didFinish messages (if set) | 15 | // Delegate will get didFail + didFinish messages (if set) |
| 15 | id delegate; | 16 | id delegate; |
| @@ -17,6 +18,9 @@ | @@ -17,6 +18,9 @@ | ||
| 17 | // Will be called when a request starts with the request as the argument | 18 | // Will be called when a request starts with the request as the argument |
| 18 | SEL requestDidStartSelector; | 19 | SEL requestDidStartSelector; |
| 19 | 20 | ||
| 21 | + // Will be called when a request receives response headers with the request as the argument | ||
| 22 | + SEL requestDidReceiveResponseHeadersSelector; | ||
| 23 | + | ||
| 20 | // Will be called when a request completes with the request as the argument | 24 | // Will be called when a request completes with the request as the argument |
| 21 | SEL requestDidFinishSelector; | 25 | SEL requestDidFinishSelector; |
| 22 | 26 | ||
| @@ -88,6 +92,7 @@ | @@ -88,6 +92,7 @@ | ||
| 88 | @property (assign,setter=setDownloadProgressDelegate:) id downloadProgressDelegate; | 92 | @property (assign,setter=setDownloadProgressDelegate:) id downloadProgressDelegate; |
| 89 | 93 | ||
| 90 | @property (assign) SEL requestDidStartSelector; | 94 | @property (assign) SEL requestDidStartSelector; |
| 95 | +@property (assign) SEL requestDidReceiveResponseHeadersSelector; | ||
| 91 | @property (assign) SEL requestDidFinishSelector; | 96 | @property (assign) SEL requestDidFinishSelector; |
| 92 | @property (assign) SEL requestDidFailSelector; | 97 | @property (assign) SEL requestDidFailSelector; |
| 93 | @property (assign) SEL queueDidFinishSelector; | 98 | @property (assign) SEL queueDidFinishSelector; |
| @@ -66,6 +66,7 @@ | @@ -66,6 +66,7 @@ | ||
| 66 | [self setDownloadProgressDelegate:nil]; | 66 | [self setDownloadProgressDelegate:nil]; |
| 67 | [self setUploadProgressDelegate:nil]; | 67 | [self setUploadProgressDelegate:nil]; |
| 68 | [self setRequestDidStartSelector:NULL]; | 68 | [self setRequestDidStartSelector:NULL]; |
| 69 | + [self setRequestDidReceiveResponseHeadersSelector:NULL]; | ||
| 69 | [self setRequestDidFailSelector:NULL]; | 70 | [self setRequestDidFailSelector:NULL]; |
| 70 | [self setRequestDidFinishSelector:NULL]; | 71 | [self setRequestDidFinishSelector:NULL]; |
| 71 | [self setQueueDidFinishSelector:NULL]; | 72 | [self setQueueDidFinishSelector:NULL]; |
| @@ -197,45 +198,54 @@ | @@ -197,45 +198,54 @@ | ||
| 197 | 198 | ||
| 198 | } | 199 | } |
| 199 | 200 | ||
| 200 | -- (void)requestDidStart:(ASIHTTPRequest *)request | 201 | +- (void)requestStarted:(ASIHTTPRequest *)request |
| 201 | { | 202 | { |
| 202 | if ([self requestDidStartSelector]) { | 203 | if ([self requestDidStartSelector]) { |
| 203 | [[self delegate] performSelector:[self requestDidStartSelector] withObject:request]; | 204 | [[self delegate] performSelector:[self requestDidStartSelector] withObject:request]; |
| 204 | } | 205 | } |
| 205 | } | 206 | } |
| 206 | 207 | ||
| 207 | -- (void)requestDidFail:(ASIHTTPRequest *)request | 208 | +- (void)requestDidReceiveResponseHeaders:(ASIHTTPRequest *)request |
| 209 | +{ | ||
| 210 | + if ([self requestDidReceiveResponseHeadersSelector]) { | ||
| 211 | + [[self delegate] performSelector:[self requestDidReceiveResponseHeadersSelector] withObject:request]; | ||
| 212 | + } | ||
| 213 | +} | ||
| 214 | + | ||
| 215 | + | ||
| 216 | +- (void)requestFinished:(ASIHTTPRequest *)request | ||
| 208 | { | 217 | { |
| 209 | [self setRequestsCount:[self requestsCount]-1]; | 218 | [self setRequestsCount:[self requestsCount]-1]; |
| 210 | [self updateNetworkActivityIndicator]; | 219 | [self updateNetworkActivityIndicator]; |
| 211 | - if ([self requestDidFailSelector]) { | 220 | + if ([self requestDidFinishSelector]) { |
| 212 | - [[self delegate] performSelector:[self requestDidFailSelector] withObject:request]; | 221 | + [[self delegate] performSelector:[self requestDidFinishSelector] withObject:request]; |
| 213 | } | 222 | } |
| 214 | if ([self requestsCount] == 0) { | 223 | if ([self requestsCount] == 0) { |
| 215 | if ([self queueDidFinishSelector]) { | 224 | if ([self queueDidFinishSelector]) { |
| 216 | [[self delegate] performSelector:[self queueDidFinishSelector] withObject:self]; | 225 | [[self delegate] performSelector:[self queueDidFinishSelector] withObject:self]; |
| 217 | } | 226 | } |
| 218 | } | 227 | } |
| 219 | - if ([self shouldCancelAllRequestsOnFailure] && [self requestsCount] > 0) { | ||
| 220 | - [self cancelAllOperations]; | ||
| 221 | - } | ||
| 222 | - | ||
| 223 | } | 228 | } |
| 224 | 229 | ||
| 225 | -- (void)requestDidFinish:(ASIHTTPRequest *)request | 230 | +- (void)requestFailed:(ASIHTTPRequest *)request |
| 226 | { | 231 | { |
| 227 | [self setRequestsCount:[self requestsCount]-1]; | 232 | [self setRequestsCount:[self requestsCount]-1]; |
| 228 | [self updateNetworkActivityIndicator]; | 233 | [self updateNetworkActivityIndicator]; |
| 229 | - if ([self requestDidFinishSelector]) { | 234 | + if ([self requestDidFailSelector]) { |
| 230 | - [[self delegate] performSelector:[self requestDidFinishSelector] withObject:request]; | 235 | + [[self delegate] performSelector:[self requestDidFailSelector] withObject:request]; |
| 231 | } | 236 | } |
| 232 | if ([self requestsCount] == 0) { | 237 | if ([self requestsCount] == 0) { |
| 233 | if ([self queueDidFinishSelector]) { | 238 | if ([self queueDidFinishSelector]) { |
| 234 | [[self delegate] performSelector:[self queueDidFinishSelector] withObject:self]; | 239 | [[self delegate] performSelector:[self queueDidFinishSelector] withObject:self]; |
| 235 | } | 240 | } |
| 236 | } | 241 | } |
| 242 | + if ([self shouldCancelAllRequestsOnFailure] && [self requestsCount] > 0) { | ||
| 243 | + [self cancelAllOperations]; | ||
| 244 | + } | ||
| 245 | + | ||
| 237 | } | 246 | } |
| 238 | 247 | ||
| 248 | + | ||
| 239 | - (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes | 249 | - (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes |
| 240 | { | 250 | { |
| 241 | [self setBytesDownloadedSoFar:[self bytesDownloadedSoFar]+bytes]; | 251 | [self setBytesDownloadedSoFar:[self bytesDownloadedSoFar]+bytes]; |
| @@ -252,12 +262,12 @@ | @@ -252,12 +262,12 @@ | ||
| 252 | } | 262 | } |
| 253 | } | 263 | } |
| 254 | 264 | ||
| 255 | -- (void)request:(ASIHTTPRequest *)request resetDownloadContentLength:(long long)newLength | 265 | +- (void)request:(ASIHTTPRequest *)request incrementDownloadSizeBy:(long long)newLength |
| 256 | { | 266 | { |
| 257 | [self setTotalBytesToDownload:[self totalBytesToDownload]+newLength]; | 267 | [self setTotalBytesToDownload:[self totalBytesToDownload]+newLength]; |
| 258 | } | 268 | } |
| 259 | 269 | ||
| 260 | -- (void)request:(ASIHTTPRequest *)request resetUploadContentLength:(long long)newLength | 270 | +- (void)request:(ASIHTTPRequest *)request incrementUploadSizeBy:(long long)newLength |
| 261 | { | 271 | { |
| 262 | [self setTotalBytesToUpload:[self totalBytesToUpload]+newLength]; | 272 | [self setTotalBytesToUpload:[self totalBytesToUpload]+newLength]; |
| 263 | } | 273 | } |
| @@ -323,6 +333,7 @@ | @@ -323,6 +333,7 @@ | ||
| 323 | @synthesize uploadProgressDelegate; | 333 | @synthesize uploadProgressDelegate; |
| 324 | @synthesize downloadProgressDelegate; | 334 | @synthesize downloadProgressDelegate; |
| 325 | @synthesize requestDidStartSelector; | 335 | @synthesize requestDidStartSelector; |
| 336 | +@synthesize requestDidReceiveResponseHeadersSelector; | ||
| 326 | @synthesize requestDidFinishSelector; | 337 | @synthesize requestDidFinishSelector; |
| 327 | @synthesize requestDidFailSelector; | 338 | @synthesize requestDidFailSelector; |
| 328 | @synthesize queueDidFinishSelector; | 339 | @synthesize queueDidFinishSelector; |
| @@ -30,8 +30,8 @@ | @@ -30,8 +30,8 @@ | ||
| 30 | - (void)request:(ASIHTTPRequest *)request didSendBytes:(long long)bytes; | 30 | - (void)request:(ASIHTTPRequest *)request didSendBytes:(long long)bytes; |
| 31 | 31 | ||
| 32 | // Called when a request needs to change the length of the content to download | 32 | // Called when a request needs to change the length of the content to download |
| 33 | -- (void)request:(ASIHTTPRequest *)request resetDownloadContentLength:(long long)newLength; | 33 | +- (void)request:(ASIHTTPRequest *)request incrementDownloadSizeBy:(long long)newLength; |
| 34 | 34 | ||
| 35 | // Called when a request needs to change the length of the content to upload | 35 | // Called when a request needs to change the length of the content to upload |
| 36 | -- (void)request:(ASIHTTPRequest *)request resetUploadContentLength:(long long)newLength; | 36 | +- (void)request:(ASIHTTPRequest *)request incrementUploadSizeBy:(long long)newLength; |
| 37 | @end | 37 | @end |
| @@ -57,5 +57,16 @@ | @@ -57,5 +57,16 @@ | ||
| 57 | 57 | ||
| 58 | - (IBAction)throttleBandwidth:(id)sender; | 58 | - (IBAction)throttleBandwidth:(id)sender; |
| 59 | 59 | ||
| 60 | +- (void)updateBandwidthUsageIndicator; | ||
| 61 | +- (void)URLFetchWithProgressComplete:(ASIHTTPRequest *)request; | ||
| 62 | +- (void)URLFetchWithProgressFailed:(ASIHTTPRequest *)request; | ||
| 63 | +- (void)imageFetch1Complete:(ASIHTTPRequest *)request; | ||
| 64 | +- (void)imageFetch2Complete:(ASIHTTPRequest *)request; | ||
| 65 | +- (void)imageFetch3Complete:(ASIHTTPRequest *)request; | ||
| 66 | +- (void)topSecretFetchComplete:(ASIHTTPRequest *)request; | ||
| 67 | +- (void)authSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; | ||
| 68 | +- (void)postFinished:(ASIHTTPRequest *)request; | ||
| 69 | +- (void)postFailed:(ASIHTTPRequest *)request; | ||
| 70 | + | ||
| 60 | @property (retain, nonatomic) ASIHTTPRequest *bigFetchRequest; | 71 | @property (retain, nonatomic) ASIHTTPRequest *bigFetchRequest; |
| 61 | @end | 72 | @end |
| @@ -16,8 +16,7 @@ | @@ -16,8 +16,7 @@ | ||
| 16 | { | 16 | { |
| 17 | [super init]; | 17 | [super init]; |
| 18 | networkQueue = [[ASINetworkQueue alloc] init]; | 18 | networkQueue = [[ASINetworkQueue alloc] init]; |
| 19 | - NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateBandwidthUsageIndicator) userInfo:nil repeats:YES]; | 19 | + [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateBandwidthUsageIndicator) userInfo:nil repeats:YES]; |
| 20 | - timer = nil; | ||
| 21 | return self; | 20 | return self; |
| 22 | } | 21 | } |
| 23 | 22 | ||
| @@ -206,7 +205,7 @@ | @@ -206,7 +205,7 @@ | ||
| 206 | 205 | ||
| 207 | } | 206 | } |
| 208 | 207 | ||
| 209 | -- (IBAction)topSecretFetchComplete:(ASIHTTPRequest *)request | 208 | +- (void)topSecretFetchComplete:(ASIHTTPRequest *)request |
| 210 | { | 209 | { |
| 211 | if (![request error]) { | 210 | if (![request error]) { |
| 212 | [topSecretInfo setStringValue:[request responseString]]; | 211 | [topSecretInfo setStringValue:[request responseString]]; |
| @@ -243,7 +242,8 @@ | @@ -243,7 +242,8 @@ | ||
| 243 | [[NSApplication sharedApplication] endSheet: loginWindow returnCode: [(NSControl*)sender tag]]; | 242 | [[NSApplication sharedApplication] endSheet: loginWindow returnCode: [(NSControl*)sender tag]]; |
| 244 | } | 243 | } |
| 245 | 244 | ||
| 246 | -- (void)authSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo { | 245 | +- (void)authSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo |
| 246 | +{ | ||
| 247 | ASIHTTPRequest *request = (ASIHTTPRequest *)contextInfo; | 247 | ASIHTTPRequest *request = (ASIHTTPRequest *)contextInfo; |
| 248 | if (returnCode == NSOKButton) { | 248 | if (returnCode == NSOKButton) { |
| 249 | if ([request authenticationNeeded] == ASIProxyAuthenticationNeeded) { | 249 | if ([request authenticationNeeded] == ASIProxyAuthenticationNeeded) { |
This diff was suppressed by a .gitattributes entry.
| @@ -13,11 +13,11 @@ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES | @@ -13,11 +13,11 @@ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES | ||
| 13 | GCC_WARN_ABOUT_RETURN_TYPE = YES | 13 | GCC_WARN_ABOUT_RETURN_TYPE = YES |
| 14 | //GCC_WARN_MISSING_PARENTHESES = YES | 14 | //GCC_WARN_MISSING_PARENTHESES = YES |
| 15 | GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES | 15 | GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES |
| 16 | -//GCC_WARN_ABOUT_MISSING_NEWLINE = YES | 16 | +GCC_WARN_ABOUT_MISSING_NEWLINE = YES |
| 17 | GCC_WARN_SIGN_COMPARE = YES | 17 | GCC_WARN_SIGN_COMPARE = YES |
| 18 | GCC_WARN_STRICT_SELECTOR_MATCH = missing value | 18 | GCC_WARN_STRICT_SELECTOR_MATCH = missing value |
| 19 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES | 19 | GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES |
| 20 | -//GCC_WARN_UNDECLARED_SELECTOR = YES | 20 | +GCC_WARN_UNDECLARED_SELECTOR = YES |
| 21 | GCC_WARN_UNUSED_FUNCTION = YES | 21 | GCC_WARN_UNUSED_FUNCTION = YES |
| 22 | GCC_WARN_UNUSED_LABEL = YES | 22 | GCC_WARN_UNUSED_LABEL = YES |
| 23 | GCC_WARN_UNUSED_VALUE = YES | 23 | GCC_WARN_UNUSED_VALUE = YES |
-
Please register or login to post a comment