質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

263閲覧

Swift4で Ambiguous use of 'fetchInBackgroundWithBlock' のエラーが出る

退会済みユーザー

退会済みユーザー

総合スコア0

ニフティクラウドmobile backend

ニフティクラウドmobile backend (mBaaS)はニフティが提供するBaasサービスです。プッシュ通知、データストア、ファイルストア、会員管理・認証機能などのバックエンド機能をクラウドから提供しています。 Andoird/iOS/JavaScript/Unityと各種SDKに対応しています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/02/11 11:29

編集2019/02/11 12:00

前提・実現したいこと

プログラムの37行目
Xcodelocation!.fetchInBackgroundWithBlock { (error: NSError!) -> Void in

Ambiguous use of 'fetchInBackgroundWithBlock'
というエラーが出て困っています.

発生している問題・エラーメッセージ

Ambiguous use of 'fetchInBackgroundWithBlock'

該当のソースコード

Swift

1import UIKit 2 3 4class NotificationManager: UIViewController, CLLocationManagerDelegate { 5 6 //CLLocationManagerクラスのプロパティを用意 7 var mLocationManager : CLLocationManager! 8 9 init() { 10 //プロパティの初期化 11 self.mLocationManager = CLLocationManager.init() 12 super.init(nibName: nil, bundle: nil) 13 //CLLocationManagerのデリゲート設定 14 self.mLocationManager.delegate = self 15 //位置情報を利用する許可画面を表示 16 self.mLocationManager.requestWhenInUseAuthorization() 17 } 18 19 required init?(coder aDecoder: NSCoder) { 20 fatalError("init(coder:) has not been implemented") 21 } 22 23 func searchLocation (locationId: String, callback:(NSError?)->Void) { 24 //Locationクラスを指定したNCMBObjectインスタンスを作成 25 let location = NCMBObject(className: "Location") 26 //引数のlocationIdをインスタンスのobjectIdに設定 27 location?.objectId = locationId 28 29 location!.fetchInBackgroundWithBlock { (error: NSError!) -> Void in 30 if ((error) != nil) { 31 callback(error) 32 } else { 33 //取得した位置情報をpointに設定 34 let point : NCMBGeoPoint = location.objectForKey("geo") as! NCMBGeoPoint 35 //Location Notificationを再設定 36 self.setLocationNotification( 37 point, 38 callback: { (error : NSError?) -> Void in 39 if ((error) != nil) { 40 callback(error) 41 } else { 42 callback(nil) 43 } 44 }) 45 } 46 } 47 } } 48}

試したこと

エラーについて調べたところ,fetchInBackgroundWithBlockの曖昧な利用をしてしまっているということはわかりました.
fetchInBackgroundWithBlockをどこかで宣言すればいいのでしょうか.

補足情報(FW/ツールのバージョンなど)

使っている環境
Xcode10.1
Swift4.2.1
ニフティクラウドのmobilebackendを使っています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/02/12 02:01

NCMBのバージョンを書いて下さい。(こちらでは同じエラーが出ませんでした)
guest

回答1

0

どこからコピペしたのか知らないけど、

swift

1location!.fetchInBackground { (error: Error?) in 2}

じゃないかな。

投稿2019/02/12 01:25

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/14 16:20

こんばんは,回答してくださりありがとうございます.また,せっかく回答してくださったのにお返事が遅くなってしまいすみませんでした. 以下のサイトを参考にしていたのですが,どうやら「fetchInBackgroundWithBlock」という変数は今は使えないみたいなので他の方法でやることにしました.ご迷惑をおかけしてすみません.知らない私のために貴重な時間を割いてくださり,ありがとうございました. 参考サイト:http://ykokw.github.io/2015/12/14/o2odemo-swift.html#1
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問