2015-02-24 110 views
0

在我迅速的iOS應用程序我安裝螺栓的框架,並在橋的頭文件,我得到這個螺栓異步框架方法無法識別

#import <FacebookSDK/FacebookSDK.h> 
#import <Parse/Parse.h> 
#import <ParseFacebookUtils/PFFacebookUtils.h> 
#import <Bolts/Bolts.h> 

所以它應該工作。 但是,我無法訪問此框架中的任何方法,例如findAsync或continueWithSuccessBlock。他們不被承認。 我錯過了這一點嗎?如何讓螺栓方法框架得到認可?

+0

你做了這一步? :'接下來你需要將它添加到你的目標的構建設置中:在Xcode中,如果你進入目標的構建設置,並且一直向下滾動,你會發現一個「Swift編譯器 - 代碼生成」部分。 設置「Objective-C橋接頭」爲<#PROJECT_NAME>/Bridging-Header.h' – 2015-02-24 10:51:14

+0

是的我得到了這個:我有其他幾個框架在橋文件(Facebook,解析...),他們工作正常 – 2015-02-24 10:54:48

+0

download它再次嘗試重新導入它。 – 2015-02-24 11:05:34

回答

0

我隨機發現語法不同於所有記錄的內容。 ,要訪問查詢BFTask文檔狀態,你必須鍵入:

var query = PFQuery(className:"Student") 
findAsync(query).continueWithSuccessBlock 

那麼事實證明,「findAsync」並不在我的版本存在嗎?! 相反,我可以訪問它:

query.findObjectsinBackground() 

這會返回一個BFTask,然後我可以訪問其他螺栓代碼,如continueWithBlock。

1

Bolts documentation聲明您需要實現findAsync:自己。

對於本文檔中的例子,假設有一些 共同解析方法異步版本,稱爲saveAsync:和findAsync:它會返回一個 任務。在後面的章節中,我們將演示如何自己定義這些功能。

您可以在these examples之後創建您自己的「異步」功能。注意:本節的最後一句話:

這同樣容易地創建saveAsync :, findAsync:或deleteAsync:

這裏的findAsync的實現:

func findAsync(query:PFQuery) -> BFTask { 
    var task = BFTaskCompletionSource() 
    query.findObjectsInBackgroundWithBlock { 
     (objects, error) -> Void in 
     if error == nil { 
      task.setResult(objects) 
     } else { 
      task.setError(error) 
     } 
    } 
    return task.task 
}