Objective-C
objc++等 Swifty Objective-C | Inside PSPDFKit Even Swiftier Objective-C | Inside PSPDFKit
APIをFutureで返す。bindはとりあえず省略。 @interface Future<V> : NSObject - (void)get:(void(^)(V))cb; @end @interface API<I,O> : NSObject - (Future<O> *)getAPI:(I)input; @end typedef void(^CallBack)(id); typedef void(^CPS)(CallBack); @interface Futur</o></i,o></v>…
Objective-Cで継続モナドを書いてみた。ジェネリクスの機能が貧弱なので辛いところが多い。
JSONを使った受け渡しを想定して書いてみた。非効率かも。 #import <Foundation/Foundation.h> @class Engine; typedef NSDictionary JSON; @protocol EngineProtocol <NSObject> - (void)engine:(nonnull Engine *)engine message:(nonnull JSON *)message; @end @interface Engine : NSObject </nsobject></foundation/foundation.h>…
NSStringEnumerationByComposedCharacterSequencesを用いる。 NSString *string= @"ハローワールド"; NSMutableArray *list = [NSMutableArray array]; [string enumerateSubstringsInRange:NSMakeRange(0,string.length) options:NSStringEnumerationByCompose…
NSDateを用いた演算などができる。NSCalendar - Foundation | Apple Developer Documentation iOS8からの日付(NSDate)操作・比較 - Qiita NSDateFormatter NSDateComponent も参考になる dev.classmethod.jp http://www.toyship.org/archives/1665 RTC リア…
NSCharacterSetを使って文字列を文字集合に置き換え、decimalDigitCharacterSetで0から9までの文字集合と比較し後者が前者を含めば数だけかわかる。
defineのマクロ関数でクラス・メソッドに置き換える際、引数の文字と、メソッド名の一部がかぶるとエラーを引き起こす。→ マクロの引数名をかえる。
mmファイルを使うとCの関数(特にObjective-Cのアマルガム的な)が呼べなくなるので注意
NSNotFoundは型に注意しないでロジックミスになる。注意。NSIntegerとかCGFloatとか - なるようになるかも
久々にはまったが、よくみたところヘッダーでimportしていたファイルが.mになっていた。。
SKProductの価格の加工などで使う。 NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.formatterBehavior = NSNumberFormatterBehavior10_4; formatter.numberStyle = NSNumberFormatterCurrencyStyle; formatter.locale = loca…
Objective-C Advent Calendar 2014に登録していたのですが何もネタが思いつかなかったので、クラスで最小の部品を作ってみようかと思い作ってみました。クラスIFです。 KatagiriSo/IF · GitHub 使い方は //ex1 int a = -3; [[IF Condition:((a>=0) ? OK.new …
Availability.h AvailabilityMacros.h limits.h stdint.h stdarg.h objc/NSObjCRuntime.h TargetConditionals.h Foundation/NSMetadata.h
NSSecureCoding NSSecureCoding Protocol Reference以下を読んだ。 Cocoaの日々: NSSecureCoding - セキュアなプロセス間通信への小さな布石 iOS6から。なぜiOS6からかというとXPCサービスの導入で非公開APIとして導入されたらしい。Cocoaの日々: [Mac] Lion…
NSNotificationCenter Class Reference NSNotificationCenter Class Referenceより意訳 An NSNotificationCenter object (or simply, notification center) provides a mechanism for broadcasting information within a program. An NSNotificationCenter o…
CGRectは構造体なので、こんな風に初期化できる。つまりorigin,size毎に指定可能。https://gist.github.com/KatagiriSo/ca60dd14d217249e782d structtest
関数の引数として、そしてそれを他の可変数引数の関数へ投げたい時の例。 void debugFunc = ^(NSString *message, ...){ va_list args; //可変引数へのポインタ va_start(args, message); // 可変引数へのポインタの開始位置をformatに NSString *m = [[[NSS…
ここを参照 String Format SpecifiersString Programming Guide: String Format Specifiers String Programming Guide: String Format Specifiers
導入 ランタイムは次をインポートしておくこと。 #import <objc/runtime.h> Opaque data type(プライベートデータ型) C言語における抽象データ型。 クラスの構成要素を表現するOpaque data type typedef struct objc_method *Method; typedef struct objc_ivar *Ivar; typede</objc/runtime.h>…
- (void)dampClass:(Class)c { NSString *clasName = NSStringFromClass(c); NSLog(@"%@", clasName); NSLog(@"method"); { unsigned int count = 0; Method *methodList = class_copyMethodList(c, &count); NSMutableString *m = [NSMutableString string]…