LoginSignup
2
2

More than 5 years have passed since last update.

Swiftでプライベートメソッド

Last updated at Posted at 2015-08-11

Objective-Cではたまにお世話になっていたプライベートメソッド
Swiftでも使おうとしたら、そのままでは使えなかったので、Swiftでも呼ぶ方法を調べました

用意するもの

  1. プライベートメソッド定義用headerファイル
  2. Bridging-Headerファイル

要は、Objective-C側でカテゴリとして再定義し、それをSwift側へブリッジしてやります

プライベートメソッド定義用headerファイル

ファイル名は何でもよいです
ここではPrivateMethods.hとします

PrivateMethods.h
#import <UIKit/UIKit.h>

@interface NSObject ()

- (NSString *)_ivarDescription;
- (NSString *)_shortMethodDescription;
- (NSString *)_methodDescription;

@end

@interface UIView ()

- (NSString *)recursiveDescription;
- (NSString *)_autolayoutTrace;

@end

@interface UIViewController ()

- (NSString *)_printHierarchy;

@end

Bridging-Headerファイル

ファイル名は適当だと動きません
Bridging-Headerについての細かいことは、他の記事を参照してください

${ProductModuleName}-Bridging-Header.h
#import "PrivateMethods.h"

使い方

println(self.view.recursiveDescription())

こんな感じでOKです

注意

あくまでプライベートメソッドなので、リリースビルド時には削除しておくようにしましょう
アプリの審査にそのまま出してしまうとrejectの原因になってしまいます

2
2
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
2
2