LoginSignup
6
6

More than 5 years have passed since last update.

[Objective-C]外部に公開する定数は、UIKIT_EXTERNを使う??

Last updated at Posted at 2016-07-20

概要

定数については、下記のように認識していましたが、『UIKIT_EXTERN』の方が安全らしい。

・外部に公開する定数は、extern constを付与
・内部でのみ使用する定数は、static constを付与

UIKIT_EXTERNを利用する例

SDTAPIBaseURL.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface SDTAPIBaseURL : NSObject

UIKIT_EXTERN NSString *const SDTBaseURL;

@end
SDTAPIBaseURL.m
#import "SDTAPIBaseURL.h"

@implementation SDTAPIBaseURL

NSString *const SDTBaseURL = @"https://hogehoge.jp";

@end

理由

C と C++ の差を吸収してくれるようです。

UIKitDefines.h
#ifdef __cplusplus
#define UIKIT_EXTERN        extern "C" __attribute__((visibility ("default")))
#else
#define UIKIT_EXTERN            extern __attribute__((visibility ("default")))
#endif

まとめ

C++ を使う可能性がある、または特に理由がなければ、 UIKIT_EXTERNを使う!
他の理由があれば、ご教授頂ければ幸いです。

参考サイト

When to use UIKIT_EXTERN vs just extern
Java使いのための「Objective-Cではこう書く」

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6