SSブログ

MKMapSnapshotterでsnapshotが取れなくなる件 [楽しいプログラミング]

唐突にプログラムネタで申し訳ない。

iOSのmapviewの画像を取り込みたい場合、通常はすなっぷしょったー(MKMapSnapshotter)というのを用いて、適当にオプションにパラメータ詰め込んで、こ〜んな感じにすれば良い。(雑な説明だなw)

class ViewController: UIViewController {

    @IBOutlet weak var mapView: MKMapView!
    @IBAction func snapshot(_ sender: Any) {
        
        let options = MKMapSnapshotter.Options()
        options.region = self.mapView.region //地図の範囲
        options.size = CGSize(width: 640, height: 480) //出力画像のサイズ
        
        let snapshotter = MKMapSnapshotter(options: options)
        snapshotter.start { (snapshot, error) in

            // Snapshot!!!
            guard let snapshot = snapshot
                else {print("snapshotが出ーへん"); return}

            // ファイルを書き込む場所
            let documentsPath = NSHomeDirectory() + "/Documents"
            let filename = "snapshot"
            
            var url = URL(fileURLWithPath: documentsPath)
            url.appendPathComponent(filename)
            url.appendPathExtension("png")

            // png dataを書き込む
            let data = snapshot.image.pngData()
            do {try data?.write(to: url)}
            catch {print(error)}
        }
    }
 }

ボタンを押したときのアクションに、上のsnapshot(_ sender: Any)を接続しておけば、Documentsディレクトリにpngファイルが書き込まれるという寸法だ。(何が寸法だよ)

ところが、このソースコードにおいて、snapshotter.startから戻ってきたブロック内で、まさに"snapshotが出ーへん"な現象が生じたのである。実に困る。その先が進まない。画像が出せない。
ってか何でブロックの1番目の引数(snapshotのことです)がOptionalなんだよ!(怒!) (nilで渡されることがある、つまりsnapshotオブジェクトが取得できない可能性があるという意味ですw
いや笑い事じゃないぞ。私はこれで3日も悩んだのだ!(www)

そうこうしているうちに、ふとiPhoneを見ると「設定」アイコンに赤丸がついている。急上昇中である。「容量いっぱいだからストレージ(有料)を増やしなさい」という、商売っ気まんまんのAppleさんのお告げである。
いつものことだ。藪だの山道だの藪だの風景だの藪だの鉄塔だのの画像で満タンになっている私のiPhoneのことである。(半分藪かよ!)
だがこれはこれで、まずいことはまずい。ひとまず藪だの山道だの(以下略)をPCに移動させ消去する。
よし、だいぶ空きができたぞ。赤丸も消えた。Appleも金をとりっぱぐれたことになる。ざまーみろ。(笑)

そんなわけで再起動とかかけて一晩置いておいたら、上のsnapshotがちゃんと出るようになった。(はい?)

どうやら、iPhoneの空き容量が少ないと、MKSnapshotterでsnapshotが取れなくなることがあるらしい。

以上のことに何の確たる証拠もないのだが(たまたまかもしれないし)、この現象について検索をかけても何も出てこなかったので、一応ここに書いておく。もし仮に同現象が出ている方がいらっしゃって、これで解決すれば良いのだが、違ってたらごめんなさい。

つづく(?)

コメント(0) 
共通テーマ:blog

みんな野党のせい [くだらないこと]

入管法が強行採決されたのは野党のせいなのだそうだ
うむ、スシローさんが言うのだから間違いない。

加えて過去も含めれば、
震災も、豪雨や台風の被害も野党のせい、
いつまでもだらだらだらだら景気回復をしないのも野党のせい、
官僚が忖度して不正や公文書改竄をするのも野党のせい、
格差社会も自己責任もすべて野党のせい、(はい?)
オリンピックや万博がヤバいのも野党のせい、
外交で沖縄や北方領土に下手打ってるのも野党のせい、
水道民営化で水道料金値上げ必須なのも野党のせい、
消費税増税も改憲もすべて野党のせい、
そして、現与党政権が馬鹿ばかりで、失言、不正、無能の100円ショップ祭りであるのも野党のせい、
大臣が漢字読めなかったり、自分の職責をまったく理解していないのもすべて野党のせいなのである。

そしてそうなのだ。
このブログの内容が実にくだらなく、閲覧者数がいつまでも相模原市の区の数レベルなのはすべて野党のせいなのだ!
本来の尾根プロジェクトの更新がなかなか進まないのも野党のせいだ!
私がぷにぷにしているのも野党のせいだ!
こういうくだらないことを書いていると青緑の人18pt24ptで怒り出すのもすべて野党のせ(やかましい!)

コメント(0) 
共通テーマ:blog

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。