2014-03-25 45 views
0

我一直在這個問題上停留了很長一段時間,我讀了一堆線程,但都沒有描述我的問題我嘗試了一大堆不同的方法來做到這一點,但沒有工作。我有一個PFFile,我從數組中拉出並通過segue發送到下載詳細視圖。這個文件被稱爲「下載文件」。我試圖編程一個按鈕,當點擊發起下載。這裏是代碼:有人可以向我解釋如何使用PFFile從解析異步下載文件?

這是我下載detail.h

#import <UIKit/UIKit.h> 
#import <Parse/Parse.h> 
@interface PDFDetailViewController : UIViewController { 

} 
@property (strong, nonatomic) IBOutlet UILabel *PDFName; 
@property (strong, nonatomic) IBOutlet UILabel *PDFDescription; 
@property (strong, nonatomic) NSString* PDFna; 
@property (strong, nonatomic) NSString* PDFdes; 
@property (retain,nonatomic) PFFile * downloadfile; 
- (IBAction)Download:(id)sender; 

@end 

我的下載細節按鈕

- (IBAction)Download:(id)sender { 
    [self Savefile]; 



} 

-(void) Savefile { 
    NSData *data = [self.downloadfile getData]; 
    [data writeToFile:@"Users/Danny/Desktop" atomically:NO]; 
    NSLog(@"Downloading..."); 
} 

@end 

這裏是發送下載文件中的SEGUE:

detailVC.downloadfile=[[PDFArray objectAtIndex:indexPath.row]objectForKey:@"PDFFile"]; 

我使用PFQuery獲取數組數據並將其存儲到「PDFArray」中。這是一個同步下載,因爲當我點擊表示正在使用主線程的按鈕時會出現警告消息。儘管該文件沒有顯示在我的桌面上。

回答

1

您是否嘗試過使用此Parse方法?

getDataInBackgroundWithBlock:

-(void) Savefile { 
    [self.downloadfile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) { 
     if (error) { 
      // handle error 
     } 
     else if (data) { 
      [data writeToFile:@"Users/Danny/Desktop" atomically:NO]; 
     } 
    }]; 
} 
+0

我試過了,但它擺脫了主線程的警告。雖然文件仍然不能在桌面上下載。我想知道我的路徑是否正確或者是否需要File:/// Users/Danny/Desktop。我添加了一個UIAlert到你寫的東西似乎一直到NSLog。只是文件不顯示。 – DannyK

+0

你知道我將如何檢查NSData對象是否爲空? – DannyK

+0

或者它可能是我的路徑有問題,我嘗試了不同的品種,但沒有運氣 – DannyK

相關問題