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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

Q&A

解決済

1回答

2171閲覧

MKMapView利用時 Painter Z index: 数値 is too large max 255

Y_M

総合スコア265

Swift

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

Swift 2

Swift 2は、Apple社が独自に開発を行っている言語「Swift」のアップグレード版です。iOSやOS X、さらにLinuxにも対応可能です。また、throws-catchベースのエラーハンドリングが追加されています。

0グッド

0クリップ

投稿2016/09/08 07:37

編集2016/09/09 05:45

###前提・実現したいこと

Swift

1Painter Z index: 4294967291 is too large (max 255)

上記の警告?が発生しないようにしたい。

・住所から経度緯度を取得する形をとっています。

###発生している問題・エラーメッセージ
エラー自体は発生していないが、上記のメッセージが出る。

###該当のソースコード

Swift

1import UIKit 2import MapKit 3 4class ViewController: UIViewController, MKMapViewDelegate { 5 6 @IBOutlet weak var mapView: MKMapView! 7 8 let dataGroup: [[String: AnyObject?]] = [["address": "東京都渋谷区道玄坂2丁目", "name": "テスト"]] 9 10 override func viewDidLoad() { 11 super.viewDidLoad() 12 dropPin() 13 } 14 15 func dropPin() { 16 17 if self.dataGroup.count != 0 { 18 for num in 0...self.dataGroup.count - 1 { 19 let myAddress: String = (self.dataGroup[num]["address"] as? String)! 20 let myGeocoder = CLGeocoder() 21 myGeocoder.geocodeAddressString(myAddress, completionHandler: { (placemarks, error) -> Void in 22 for placemark in placemarks! { 23 let location: CLLocation = placemark.location! 24 let annotation = MapAnnotationSetting() 25 26 annotation.coordinate = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude) 27 annotation.title = self.dataGroup[num]["name"] as? String 28 annotation.subtitle = self.dataGroup[num]["address"] as? String 29 self.mapView.addAnnotation(annotation) 30 31 self.mapView.showAnnotations(self.mapView.annotations, animated: true) 32 33 } 34 }) 35 } 36 } 37 38 } 39 40} 41

###補足情報(言語/FW/ツール等のバージョンなど)
Xcode7.3.1
Swift2

どなたかご回答よろしくお願いいたします。

###追記
どうやらある一定以上ズームしたら表示されるみたいですが、
なんの警告なのでしょうか。

###追記2

Swift

1myGeocoder.geocodeAddressString(myAddress, completionHandler: { (placemarks, error) -> Void in 2 for placemark in placemarks! { 3 let location: CLLocation = placemark.location! 4 let annotation = MapAnnotationSetting() 5 6 annotation.coordinate = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude) 7 annotation.title = self.dataGroup[num]["name"] as? String 8 annotation.subtitle = self.dataGroup[num]["address"] as? String 9 self.mapView.addAnnotation(annotation) 10 } 11 self.mapView.showAnnotations(self.mapView.annotations, animated: true) 12 })

###追記3
参考にしたサイトを元にここまで絞りましたがまだ警告が出ます。

Swift

1func dropPin() { 2 3 let myGeocoder:CLGeocoder = CLGeocoder() 4 let myAddress: String = (self.dataGroup[0]["address"] as? String)! 5 6 myGeocoder.geocodeAddressString(myAddress, completionHandler: {(placemarks, error) in 7 8 if(error == nil) { 9 for placemark in placemarks! { 10 let location:CLLocation = placemark.location! 11 let annotation = MKPointAnnotation() 12 annotation.coordinate = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude) 13 self.mapView.addAnnotation(annotation) 14 } 15 } 16 }) 17}

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

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

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

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

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

guest

回答1

0

ベストアンサー

見ての通りPainter Zが範囲外なわけですが、Painter Zに心当たりはないでしょうか?(Pander Zとは違う?!)

とりあえず、4294967291 = 0xFFFFFFFB = -6 ということで、
何かが負値になっているんじゃないかと思います。

【追記】
showAnnotationsは、全てのannotationをaddした後に呼ぶべきだと思いますので、for placemark ~ の外出して下さい。

投稿2016/09/09 02:24

編集2016/09/09 03:11
fuzzball

総合スコア16731

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

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

Y_M

2016/09/09 02:27

特にPainter Zを意図的にいじってるところはありません。 学習不足ですがPainter Zがそもそも何なのか。。。
fuzzball

2016/09/09 02:36

誰が出力しているのか突き止めないといけませんね。
Y_M

2016/09/09 02:41

今わかっていることはピンを刺さなければ出ない。 ということだけです。 もう少し原因を探ります。
fuzzball

2016/09/09 02:46

MapAnnotationSetting()の中身は見せていただけないでしょうか?
fuzzball

2016/09/09 02:48

すみません、MKPointAnnotation()でも警告メッセージ出たので大丈夫です。
fuzzball

2016/09/09 03:11

回答に追記しました。
Y_M

2016/09/09 04:44

質問を更新しました。 `for placemark〜`から出してみたのですが変わらずです... ひとまずありがとうございます。
Y_M

2016/09/09 05:25

self.mapView.showAnnotations(self.mapView.annotations, animated: true) こちらをコメントアウトして、自動拡大をオフにした場合でも、 手動である程度拡大すると同じようなエラーが出てしまいます。
fuzzball

2016/09/09 05:36

素のMKMapViewでも出るみたいなので、これはもうどうしようもないのではないでしょうか?無視していいような気がします。(ググっても引っ掛からないのが気になりますが)
Y_M

2016/09/09 05:46

質問を更新しました。 素のMKMapViewでも出ますか。。。 そこは確認してなかったです。。。 一応、質問を更新しました。 ソースをここまで絞って、素のままでも出るならどうしようもないので無視することにします。 ご検証ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問