カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

iOS メールを一括で削除する

こちらの方法はiOS7の頃からあった方法のようですが、
現在のiOS11でも出来ます。
少しやり方が特殊で私自身も忘れるのでメモしておきます。

  1. 事前に[編集]-[すべてマーク]-[開封済みにする]で全てのメールを開封済みにします。
  2. 再度[編集]をタップします。
  3. 一番上のメールにチェックを入れます。
  4. 下の[移動]を押しながら、先ほどチェックしたメールのチェックを外します。
  5. [移動]から指を離します。
  6. 全てのメールが選択されたことになり、移動先を聞いてくるのでゴミ箱を選択します。

すると全てのメールを一括でゴミ箱に移すことができました。

913 views

JSONデータをCodableを使って構造化する

JSONデータを解析するためにJSONSerializerを使っていましたが、Swift4からもっと簡単にできるようになったのでやってみました。

CodableというプロトコルがSwift4から新たに追加されました。
これを利用すれば簡単に構造体に落とし込むことができます。

まずはデータを扱う構造体を宣言します。
Codableと付け加えましょう。

struct myData: Codable {
    
    let ID_C: Int
    let NAME_C: String
    let COMMENT_C: String? //nullを許容
    let DATE_C: String

}

次にWEB上からデータを取得するため、URLSessionを使用します。

let session = URLSession(configuration: URLSessionConfiguration.default)
let url = "http://www.example.jp/json.php" //JSONデータを取得するURL

単純に文字列で出力してみましょう。 続きを読む…»

2,221 views

図形を描画して内部の面積を計測する

iOSアプリ上のGoogleMapで図形を描画し、そのパス内部の面積を計測することができます。

まずは図形を描画します。

// Create a rectangular path
let rect = GMSMutablePath()
rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.0))
rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.0))
rect.add(CLLocationCoordinate2D(latitude: 37.45, longitude: -122.2))
rect.add(CLLocationCoordinate2D(latitude: 37.36, longitude: -122.2))

// Create the polygon, and assign it to the map.
let polygon = GMSPolygon(path: rect)
polygon.fillColor = UIColor(red: 0.25, green: 0, blue: 0, alpha: 0.05);
polygon.strokeColor = .black
polygon.strokeWidth = 2
polygon.map = mapView

面積を計測

let a: Double = GMSGeometryArea(polygon.path!)

JavaScriptのAPIではパスが閉じている必要がありましたが、
こちらは閉じていなくても閉じているものと仮定してくれるようです。

ただ、実際に使ってみた結果、JavaScript APIのほうで測った面積と24m²ほど差がありました。

JavaScriptでの計測はこちら→GoogleMapで面積計測(v3)

Xcode: 9.4.1
Swift: 3.3
OS: High Sierra 10.13.6

1,624 views

ナビゲーションバーのタイトルを変更

UINavigationControllerのタイトルを動的に変更することができます。
短いですが、メモ的に。

// タイトルをセット
self.navigationItem.title = "テストタイトル"

Xcode: 9.4.1
Swift: 3.3
OS: High Sierra 10.13.6

3,457 views

macOS High SierraでCocoaPodsのpod updateがエラー

macOSがHigh Sierraになり、Xcodeもアップデートされ、
色々と警告が出るようになっていたので、これを解消しようと思ったら
色々つまづいたので書いておきます。

まずはライブラリをアップデートする必要があるようなのでpod updateコマンドを実行。
すると以下のようなエラーが発生。

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory

どうやらmacOSがHigh Sierraだとエラーが発生する模様です。

Rubyをアップデートするために以下のコマンドを実行。

sudo gem update --system

エラーが発生。

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem

その場合は以下のようなコマンドにするらしいですが、
実行してみると既にインストール済と言われます。

sudo gem update --system -n /usr/local/bin

次にCocoaPodsをアップデート。

sudo gem install cocoapods

これも途中でエラーが発生。

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

コマンドにオプションを付けてやり直し。

sudo gem install -n /usr/local/bin cocoapods

正常にインストールが完了しました。
続きを読む…»

4,396 views