[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] スクリーンサイズを取得する
スクリーンサイズを取得 iPhoneの幅と高さを取得する関数を紹介します。 iOS8から画面の傾
-
-
[Objective-C] デリゲート (Delegate)を理解する!
デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで
-
-
[Swift] UINavigationControllerで戻るイベントを取得する
UINavigationController UINavigationControllerを使用し
-
-
[Swift] frameworkについて
先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb
-
-
[Swift] ビルド時のエラー&iOS8でNSBigDecimalのバグ
ビルド時のエラー Swiftプロジェクトを実行中に以下のエラーが出ました。 "__TFSs15_
-
-
TabBarControllerとNavigationControllerのボタン追加
TabBarとNavigationを同時に使っているViewControllerの場合、naviga
-
-
小さなことからコツコツと
これまでHTMLとCSSだけで生きてきただけあって、プログラム言語がいまいちわからない。 Mo
-
-
iPhoneApp WorkManager公開されました!
きっとリジェクトされるんだろうなと思いながら申請を出して1週間。 本日、公開のメールが届きまし