Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Swiftで書き換えて 
皆のマクロをリサイクル 
~Swift Study Session 05~
はじめに... 
以後出てくるコード上に違和 
感を感じる箇所等あると思い 
ます。 
見つけた場合、後ほどこっそ 
りご指摘頂けると嬉しいです。
目次 
・マクロとは 
・#pragma mark 
・#ifdef 
・#define
定数として使えたり… 
#define MACRO_STRING @"あいうえおabcde12345"
コードを読み易くしたり… 
#pragma mark - UITableViewDelegate
デバッグ時の切り分けが出来たり… 
#ifdef DEBUG 
NSLog(@"テストログ"); 
#endif
よく使う便利なもの。
#pragma mark
#pragma mark 
- Objective-C 
#pragma mark hoge 
! 
!- Swift 
// MARK: - hoge
#ifdef
#ifdef 
- Objective-C 
#ifdef DEBUG 
envText.text = @"これはデバッグです。"; 
#else 
envText.text = @"これは本番です"; 
#endif
#ifdef 
- Swift 
Other Swift Flagsに値を追加する必 
要がある。
#ifdef 
こんな感じ。
#ifdef 
#if DEBUG 
envText.text = "これはデバッグです。"; 
#else 
envText.text = "これは本番です"; 
#endif
#define
#define 
Swiftにはそもそもdefineとかない。
#define 
なのでGlobalの関数や変数で 
それっぽく実現してみました。
#define 
メソッドの呼び出しマクロ 
- Objective-C 
#ifdef DEBUG 
#define LOG(...) NSLog(__VA_ARGS__) 
#else 
#define LOG(...) 
#endif
#define 
メソッドの呼び出しマクロ 
- Swift 
func LOG(message: String){ 
#if DEBUG 
NSLog("%@",message) 
#endif 
}
#define 
定数マクロ 
- Objective-C 
#define NAME @"のせ!!!!!!!!!!!"
#define 
定数マクロ 
- Swift 
~Globalな関数で定義~ 
func NAME() -> String{ 
return "のせ!!!!!!!!!!!" 
}
#define 
定数マクロ 
- Swift 
~Globalな定数で定義~ 
let NAME: String! = "のせ!!!!!!!!!!!"
#define 
定数マクロ 
- Swift 
~Globalな定数で定義~ 
(初期化も一緒に出来ちゃうよVer) 
let NAME_C: String! = { 
var name = "のせ!!!!!!!!!!!" 
return n...
おまけ
おまけ 
ログに関数名と行番号を出せるようにする。 
func LOG(message: String, 
function: String = __FUNCTION__, 
line: Int = __LINE__){ 
#if DEBUG ...
おまけ 
結果。 
[viewDidLoad() : 24] これはデバッグです。
まとめ 
• #defineが無くなってしまって違和感を感じてい 
る。(多分今だけ) 
• マクロではなく、一つの関数として読めるのは 
個人的に嬉しい。
ありがとうございました 
(^o^)/
SwiftSession5
Próxima SlideShare
Cargando en…5
×
Próxima SlideShare
Quick swift tour
Siguiente
Descargar para leer sin conexión y ver en pantalla completa.

3

Compartir

Descargar para leer sin conexión

SwiftSession5

Descargar para leer sin conexión

Swift Study

SwiftSession5

  1. 1. Swiftで書き換えて 皆のマクロをリサイクル ~Swift Study Session 05~
  2. 2. はじめに... 以後出てくるコード上に違和 感を感じる箇所等あると思い ます。 見つけた場合、後ほどこっそ りご指摘頂けると嬉しいです。
  3. 3. 目次 ・マクロとは ・#pragma mark ・#ifdef ・#define
  4. 4. 定数として使えたり… #define MACRO_STRING @"あいうえおabcde12345"
  5. 5. コードを読み易くしたり… #pragma mark - UITableViewDelegate
  6. 6. デバッグ時の切り分けが出来たり… #ifdef DEBUG NSLog(@"テストログ"); #endif
  7. 7. よく使う便利なもの。
  8. 8. #pragma mark
  9. 9. #pragma mark - Objective-C #pragma mark hoge ! !- Swift // MARK: - hoge
  10. 10. #ifdef
  11. 11. #ifdef - Objective-C #ifdef DEBUG envText.text = @"これはデバッグです。"; #else envText.text = @"これは本番です"; #endif
  12. 12. #ifdef - Swift Other Swift Flagsに値を追加する必 要がある。
  13. 13. #ifdef こんな感じ。
  14. 14. #ifdef #if DEBUG envText.text = "これはデバッグです。"; #else envText.text = "これは本番です"; #endif
  15. 15. #define
  16. 16. #define Swiftにはそもそもdefineとかない。
  17. 17. #define なのでGlobalの関数や変数で それっぽく実現してみました。
  18. 18. #define メソッドの呼び出しマクロ - Objective-C #ifdef DEBUG #define LOG(...) NSLog(__VA_ARGS__) #else #define LOG(...) #endif
  19. 19. #define メソッドの呼び出しマクロ - Swift func LOG(message: String){ #if DEBUG NSLog("%@",message) #endif }
  20. 20. #define 定数マクロ - Objective-C #define NAME @"のせ!!!!!!!!!!!"
  21. 21. #define 定数マクロ - Swift ~Globalな関数で定義~ func NAME() -> String{ return "のせ!!!!!!!!!!!" }
  22. 22. #define 定数マクロ - Swift ~Globalな定数で定義~ let NAME: String! = "のせ!!!!!!!!!!!"
  23. 23. #define 定数マクロ - Swift ~Globalな定数で定義~ (初期化も一緒に出来ちゃうよVer) let NAME_C: String! = { var name = "のせ!!!!!!!!!!!" return name }() !
  24. 24. おまけ
  25. 25. おまけ ログに関数名と行番号を出せるようにする。 func LOG(message: String, function: String = __FUNCTION__, line: Int = __LINE__){ #if DEBUG println("[(function) : (line)] (message)") #endif }
  26. 26. おまけ 結果。 [viewDidLoad() : 24] これはデバッグです。
  27. 27. まとめ • #defineが無くなってしまって違和感を感じてい る。(多分今だけ) • マクロではなく、一つの関数として読めるのは 個人的に嬉しい。
  28. 28. ありがとうございました (^o^)/
  • KatokichiSoft

    Oct. 23, 2014
  • kanasaito946

    Oct. 22, 2014
  • tasanobu

    Oct. 21, 2014

Swift Study

Vistas

Total de vistas

943

En Slideshare

0

De embebidos

0

Número de embebidos

24

Acciones

Descargas

4

Compartidos

0

Comentarios

0

Me gusta

3

×