[Swift] 定数クラスをつくってみる
公開日:
:
iPhone App 開発, Objective-C, Swift
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/users/1/juny/web/hidef/wp-content/plugins/ultimate-google-analytics/ultimate_ga.php on line 524
Objective-cの場合
今回は共通にする定数をまとめるクラスを作ってみます。
まずはObjective-cで記述してみます。
#defineのマクロを使って宣言することもできますが、
間違って同じ定数名をマクロで書いちゃうと上書きされるし、コンパイルエラーにもならないから分かりずらい。
それにclassにしてまとめた方がわかりやすいですね。
クラス名はCommonConstにしました。以下、サンプル。
CommonConst.h
#import <Foundation/Foundation.h> @interface CommonConst : NSObject extern NSString * const CONST_STRING; extern int const CONST_INT; @end
externを付与することによって、他クラスからも参照できるようになります。
CommonConst.m
#import "CommonConstObjC.h" @implementation CommonConst NSString * const CONST_STRING = @"String value"; int const CONST_INT = 1; @end
Swiftで実装
次はSwiftです。
メソッド内の定数はletで宣言すればOK。クラスで宣言、グローバル化してやるとこんな感じになります。
CommonConst.swift
import Foundation class CommonConst { class var constString: String { return "String value" } class var constInt: Int { return 1 } }
なんかわかりずらい。要は関数化?にしろってことなんですかね。
実際に呼び出す場合は
println(CommonConst.constInt) println(CommonConst.constString)
以下のAppleのドキュメントを参考にしました。
The Swift Programming Language: Properties
Type Property Syntaxの欄にStruct、Enumと一緒にサンプルが載っています。
まとめ
ここでもSwiftは独特ですね。他の記述方法も調べてみたんですが、これが一般的?みたいです。
間違っていたらご教授願います。
ad
関連記事
-
-
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する
プロパティリストを使う 初期データやあらかじめ用意したデータを一括登録したい場合、プロパティリスト
-
-
[Swift] frameworkについて
先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb
-
-
[Swift] プロパティリスト(plist)の値を取得
plistからデータを取得してみます。 こちらのエントリーも参考にしてみてください。 プロパテ
-
-
[Swift] UITabBarControllerでタブ選択時のイベントを取得する
UITabBarController タブを使った画面を作成する場合はUITabBarContro
-
-
[Objective-C] バージョン更新時に変更内容をアラートで出力する
アプリの更新内容を表示したい! バージョン更新時に変更内容を表示させたいのは、ユーザーがいちいちA
-
-
[iPhone App] WorkManager 1.2.0版がリリースされました。
新機能 以前から要望などが多かったものを元に、機能を追加いたしました。 新バージョンで追加された
-
-
[Objective-C] デリゲート (Delegate)を理解する!
デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで
-
-
[iPhone App] WorkManagerの不具合について
バージョン1.2.2の不具合 11/25日現在、iPhoneアプリの「WorkManger」バージ
-
-
[Swift] Swiftでいろんなfor文まとめてみた
いろんなfor文 プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。 Swift
-
-
[Objective-C] no architectures to compile for … のコンパイルエラーについて
起動したプロジェクトでコンパイルエラーが出ました。 no architectures to com