私はMySQLデータベースでクエリを実行するための自分の迅速なフレームワークを構築しました。私は現在、チャットしている各ユーザのアバター画像を表示する必要のあるチャットアプリケーションを開発中です。関数の完了時の戻り値
私のデータベースからユーザーのプロフィール画像のURLを取得しています。プロフィール画像のURLを取得したらUIImage
を返す必要があります。エラーUnexpected non-void return value in void function
が表示されます。これを簡単にするか、このエラーを回避する方法はありますか?
これは私の完全なコードです:
override func collectionView(collectionView: JSQMessagesCollectionView!, avatarImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageAvatarImageDataSource! {
let currentMessage = self.messages[indexPath.row]
if (currentMessage.senderId == self.senderId) {
// Current User sent message
var imageURL: NSURL!
ConnectionManager.sharedInstance.complexQuery("SELECT profile_picture FROM users WHERE username='\(self.senderId)' ", completion: { (result) in
if let results = result as? [[String: AnyObject]] {
for result in results {
if let profilePictureURL = result["profile_picture"] {
print(profilePictureURL)
imageURL = profilePictureURL as! NSURL
let imageData = NSData(contentsOfURL: imageURL)
let image = UIImage(data: imageData!)
// ERROR HERE (line below)
return JSQMessagesAvatarImageFactory.avatarImageWithImage(image, diameter: UInt(kJSQMessagesCollectionViewAvatarSizeDefault))
}
}
}
})
} else {
var imageURL: NSURL!
ConnectionManager.sharedInstance.complexQuery("SELECT profile_picture FROM users WHERE username='\(currentMessage.senderId)' ", completion: { (result) in
if let results = result as? [[String: AnyObject]] {
for result in results {
if let profilePictureURL = result["profile_picture"] {
print(profilePictureURL)
imageURL = profilePictureURL as! NSURL
let imageData = NSData(contentsOfURL: imageURL)
let image = UIImage(data: imageData!)
// ERROR HERE (line below)
return JSQMessagesAvatarImageFactory.avatarImageWithImage(image, diameter: UInt(kJSQMessagesCollectionViewAvatarSizeDefault))
}
}
}
})
}
}
JSQMessagesAvatarImageFactory.avatarImageWithImage(UIImage(data:(NSData(contentsOfURL:imageURL))!)、直径:UInt(kJSQMessagesCollectionViewAvatarSizeDefault))} –
上記の返品は何ですか? –
@OlivierWilkinson JSQMessageViewControllerライブラリを使用して、チャットメッセージをビューコントローラに表示しています。これはJSQMessagesAvatarImage(基本的にはクエリによって返されたURLからの画像)を返します。 –