2012-09-10 128 views
2

我從github 下載了Drupal-iOS-SDK,並且我還下載了AFNetworking文件from here將drupal-ios-sdk與iPhone應用程序集成的問題

然後,我添加文件到我的項目,但它顯示了一個奇怪的錯誤

Incompatible block pointer types sending 'void (^)(NSInteger, NSInteger, NSInteger)' to parameter of type 'void (^)(NSInteger, long long, long long)'

的這段代碼:

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setUploadProgressBlock:^(NSInteger bytesWritten, NSInteger totalBytesWritten, NSInteger totalBytesExpectedToWrite) { 
     NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite); 
    }]; 

有沒有人有任何想法,這是什麼意思?

回答

2

您發送3個NSInteger S作爲參數來setUploadProgressBlock時,它的預期一個NSUInteger(無符號整數)和兩個long long參數

totalBytesWrittentotalBytesExpectedToWrite需要被long long類型的,因爲這是他們是如何定義的,而不是`NSInteger的的。你的代碼應該是這樣的:

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { 
    NSLog(@"Sent %d of %d bytes", totalBytesWritten, totalBytesExpectedToWrite); 
}]; 

您可能還需要修改您的NSLog因此現在,它的設置爲long long所以編譯器不抱怨。

NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite); 
+1

我剛嘗試過了,現在,它給出了一個類似的錯誤:不兼容的塊指針類型發送「無效(^)(NSInteger的,長長,長長)」來類型的參數「無效(^)( NSInteger,long long long long)' – Shahnawaz

+0

我已經更新了一下我的代碼,確保你做了一個乾淨的構建,並且肯定使用了LLVM編譯器爲您的項目和目標 –

+1

我清理了我的解決方案並按照你的要求做了,它只會從NSLog中刪除警告,但它仍然顯示錯誤。也許你應該去上面的Drupal-iOS-SDK鏈接並將其集成到一個空白項目中。只是建立它,看看爲什麼你會得到這樣的錯誤。謝謝! – Shahnawaz

相關問題