Swift

Swift:CGIの定義の仕方

Exif等のメタ情報を定義するCGI配列をどう定義したらいいか、試行錯誤しながら、毎回、大幅変更の負荷をなんとかこなしています。

今回は、配列中の常数をどう定義したらいいか、少しだけ考えてみました。

  • 常数をletを使った変数で定義する。
    let cKey:String = “String”
    let cValue:Int = 99
    CGI:NSMutableArray = [cKey, cValue]
  • 常数を直接数値や文字列で表現する。
    CGI:NSMutableArray = [“String”, 99]

言うまでもなく、前者が汎用性が高く、可読性に優れています。問題は、前者はグローバル変数として定義した場合、使用不可、つまりコンパイルエラーが出てしまうことです。

後者だと、何を定義したものか、コードを見ただけではわかりません。

回避オプションとして、整数を使わず、文字列を使う方法があります。上記例では、たとえばメタ情報のデータタイプを”String”として表現したり、整数11をStringと意味づけたりする方法が考えられます。一般的に整数と文字列では、整数がメモリ領域は少なく、処理も早いはずです。

しかし、Int64は8バイトなので、一体どっちがどうなのでしょうね?

スクリーンショット 2015-09-06 08.46.40

そんなことを考えながら、ここは文字列でなく整数でやるべきだろうと、修正した次第です。少しキビキビした動きになったように感じますが、気のせいでしょうか。

Categories: Swift, 技術