Swift中的StrongLoop Loopback示例

我正在尝试在Swift中实现示例LoopBack iOS应用程序

创建一个LoopBack iOS应用程序:第一部分

而且我在从ObjectiveC转换时遇到了一些麻烦

- (void) getBooks { //Error Block void (^loadErrorBlock)(NSError *) = ^(NSError *error){ NSLog(@"Error on load %@", error.description); }; void (^loadSuccessBlock)(NSArray *) = ^(NSArray *models){ NSLog(@"Success count %d", models.count); self.tableData = models; [self.myTable reloadData]; }; //This line gets the Loopback model "book" through the adapter defined in AppDelegate LBModelRepository *allbooks = [[booksAppDelegate adapter] repositoryWithModelName:prototypeName]; //Logic - Get all books. If connection fails, load the error block, if it passes, call the success block and pass allbooks to it. [allbooks allWithSuccess:loadSuccessBlock failure:loadErrorBlock]; }; 

这是我的版本

 func getBooks() { var errorBlock = { (error: NSError!) -> Void in NSLog("Error on load %@", error.description) } var successBlock = { (models: NSArray!) -> Void in NSLog("Success count %d", models.count) self.tableData = models self.booksTable.reloadData() } // get the "book" model var allBooks: LBModelRepository = adapter.repositoryWithModelName(prototypeName) // get all books allBooks.allWithSuccess(successBlock, errorBlock) } 

但是在调用allWithSuccess时出现编译器错误:

无法将表达式’Void’转换为’LBModelAllSuccessBlock’类型

我错过了什么?

更新:

如果我按如下方式声明成功块,它可以工作:

  var successBlock = { (models: AnyObject[]!) -> () in self.tableData = models self.booksTable.reloadData() } 

感谢你的回答!!!!

如果有人正在寻找Swift和LoopBack iOS SDK的最新版本,它对我有用:

 func getBooks() { // Error Block let errorBlock = { (error: NSError!) -> Void in NSLog("Error on load %@", error.description) } // Success Block let successBlock = { (models: [AnyObject]!) -> () in self.tableData = models self.myTable.reloadData() } // This line gets the Loopback model "book" through the adapter defined in AppDelegate let allBooks:LBPersistedModelRepository = AppDelegate.adapter.repositoryWithModelName(prototypeName, persisted: true) as! LBPersistedModelRepository // Logic - Get all books. If connection fails, load the error block, if it passes, call the success block and pass allbooks to it. allBooks.allWithSuccess(successBlock, failure: errorBlock) }