クラス・メソッド・定数・変数宣言時に使えそうなものまとめ
Upcoming SlideShare
Loading in...5
×
 

クラス・メソッド・定数・変数宣言時に使えそうなものまとめ

on

  • 3,616 views

http://tomoyaonishi.hatenablog.jp/entry/2014/07/01/メソッド、クラス、変数、定数宣言時に使えそう

http://tomoyaonishi.hatenablog.jp/entry/2014/07/01/メソッド、クラス、変数、定数宣言時に使えそう

Statistics

Views

Total Views
3,616
Views on SlideShare
3,399
Embed Views
217

Actions

Likes
12
Downloads
7
Comments
0

4 Embeds 217

http://tomoyaonishi.hatenablog.jp 159
http://www.slideee.com 34
https://twitter.com 23
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

クラス・メソッド・定数・変数宣言時に使えそうなものまとめ クラス・メソッド・定数・変数宣言時に使えそうなものまとめ Presentation Transcript

  • クラス・メソッド・定数・変数 宣言時に使えそうなものまとめ iOS_LT #12 大西智也
  • 自己紹介 • iOS開発歴約3年 • ツイート専用アプリ「FasPos」:累計5万DL • その他位置情報ログアプリなどいくつか
  • • クラス・メソッド・定数・変数宣言に使えそう なものをまとめた ! • たくさんあるが自分でこれは使える!とおもっ たものだけ
  • NS_CLASS_DEPRECATED_IOS • 指定したOSバージョンからそのクラスを非推奨にする NS_CLASS_DEPRECATED_IOS(7_0, 7_1) @interface TestClass : NSObject ! @end iOS7.0まではOK、iOS7.1では非推奨
  • NS_CLASS_AVAILABLE_IOS • 特定のOSバージョンからそのクラスを使えるよう にする NS_CLASS_AVAILABLE_IOS(7_1) @interface TestClass : NSObject ! @end
  • NS_AVAILABLE_IOS • クラス、メソッド、定数を指定したOSバージョン から使えるようにする @interface TestClass : NSObject ! - (void)method NS_AVAILABLE_IOS(7_1); ! @end
  • NS_DEPRECATED_IOS • クラス、メソッド、定数を指定したOSバージョン から非推奨にする FOUNDATION_EXPORT CGFloat const kTestClassConstant NS_DEPRECATED_IOS(6_0, 7_0);
  • NS_UNAVAILABLE • クラス、メソッド、定数を使えなくする @interface TestClass : NSObject ! - (void)unavailableMethod NS_UNAVAILABLE; ! @end
  • NS_REQUIRES_SUPER • サブクラスでオーバライドした際にスーパークラ スのメソッドを呼ぶようにする @interface TestClass : NSObject ! - (void)overrideMethod NS_REQUIRES_SUPER; ! @end
  • NS_REQUIRES_NIL_TERMINATION • 可変長の引数の最後に必ずnilを指定するようにす る @interface TestClass : NSObject ! - (void)method:(NSString *)first, ... NS_REQUIRES_NIL_TERMINATION; ! @end
  • NS_ENUM • 定数を列挙する typedef NS_ENUM(NSUInteger, TestClassOptions) { TestClassTypeA, TestClassTypeB, TestClassTypeC, TestClassUnknown = NSUIntegerMax };
  • NS_OPTIONS • ビット演算によるオプションを列挙する typedef NS_OPTIONS(NSUInteger, TestClassOptions) { TestClassOptionsNone = 0, TestClassOptionsA = 1 << 0, TestClassOptionsB = 1 << 1, TestClassOptionsC = 1 << 2, TestClassOptionsAll = A | B | C };
  • instancetype • 返り値のインスタンスの型がそのクラスであること をチェックする @interface TestClass : NSObject ! - (instancetype)init; ! @end
  • __unused • 未使用であることを宣言する static CGFloat const __unused kConstant = 10.0; 使わないけど統一性のために宣言しておきたい定数や 将来的に使うものにつけておくとワーニングがでない
  • 変数宣言時に使える __strong 強参照でインスタンスが解放されないようにする __weak 弱参照で参照先が解放されたとき自動でnilをセットする __block ブロックの中で書き換えできるようにする __unsafe_unretained(非ARC) 参照先が解放されても自動でnilをセットせず、 retainもしないためクラッシュする可能性があることを示す
  • おわり • 他にも__attribute__を使うなどいろいろあるが、 むやみに使ってもゴチャゴチャするだけ • 複数人で開発するときやみんなが使うライブラリな どで効果的