タグ

ブックマーク / qiita.com/keroxp (14)

  • cocos2d-x 3.0で一定時間後にラムダ式を実行する - Qiita

    class SomeClass { private: void someMethod(); void disableFlag(float d); bool _flag = false; } void SomeClass::someMethod() { // 3秒後に_flagという変数にfalseを代入したい this->scheduleOnce(schedule_selector(SomeClass::disableFlag), 3); } void SomeClass::disableFlag(float d) { this->setFlag(false); _flag = n; } まぁこれ一回だけとかなら許せなくはないですが、頻繁に起こることなので私の怒りが有頂天に達しました。 DelayTimeとCallFuncを使う そこでなにかいい方法はないかと考えた結果、同じくNodeが実

    cocos2d-x 3.0で一定時間後にラムダ式を実行する - Qiita
    kasumani
    kasumani 2014/07/09
    cocos2d-x 3.0で一定時間後にラムダ式を実行する ゲームを作っていると一定時間後に特定の処理を入れたい場合がある。 cocos2d-x 3. Tags: ifttt, kasumaniのストックした投稿 - qiita from Pocket July 09, 2014 at 01:50AM via IFTTT
  • Objective-C ARC下での強参照、弱参照、循環参照について学ぼう - Qiita

    objcにARCが導入されてから久しいですが、開発者がメモリ管理から解放されたかというと、そうでもないです。strongとweakの導入によって、少し抽象化がなされましたが、オブジェクトのallocate/releaseは意識してプログラムする必要があります。この記事は、ARC環境下での強参照/弱参照/循環参照についてイマイチ理解が及ばないという人のための記事であると同時に、私の個人的なまとめでもあります。 循環参照とは? 循環参照という現象は、私も最初はなかなか理解できませんでした。まず、文字的な定義から言うと、循環参照(retain cycle)とは 「オブジェクト同士がお互いに強い参照を持っているからどちらも解放されない」という現象のことです。 iOSにはObjective-C 2.0のランタイムが実装されていますが、ガベージコレクションは存在しません。理由はよく知らないですがシステ

    Objective-C ARC下での強参照、弱参照、循環参照について学ぼう - Qiita
    kasumani
    kasumani 2014/03/01
    Objective-C ARC下での強参照、弱参照、循環参照について学ぼう objcにARCが導入されてから久しいですが、開発者がメモリ管理から解放されたかというと、そうでもないです。strongとweakの導入によって、少し抽象化がなされまし
  • Objective-CでEventEmitterを実装した話 - Qiita

    は、こういうのがあったのだけど、 中を見るとイベント発生のところとかでなぜか独自のオブジェクトを使っていたりしてよく分からなかったので、NSNotificationCenterラッパーとして実装した。 インターフェイスはこんな感じ。 typedef void (^KXEventEmitterHandler)(NSNotification* n); @interface NSObject (KXEventEmitter) - (void)kx_on:(NSString*)event handler:(KXEventEmitterHandler)handler; - (void)kx_on:(NSString*)event handler:(KXEventEmitterHandler)handler from:(id)from; - (void)kx_on:(NSString*)event s

    Objective-CでEventEmitterを実装した話 - Qiita
    kasumani
    kasumani 2014/03/01
    Objective-CでEventEmitterを実装した話 中を見るとイベント発生のところとかでなぜか独自のオブジェクトを使っていたりしてよく分からなかったので、NSNotificationCenterラッパーとして実装した。 Tags: ifttt, kasumaniのストックした投
  • CAAnimationの逐次実行処理 - Qiita

    複数の実行時間と種類の異なるCAAnimationをチェーンさせたい。 1秒かけてx方向に300px、2秒かけてy方向に100px、1秒かけて45度回転...というような感じに。 ですが、CAAnimationは非同期処理なので、原則としてあるアニメーションが終わったら次、みたいなことはできません。 CFRunLoopによるCore Animationの逐次的アニメーション http://qiita.com/icecocoa6/items/6d5c023ada5e30eb209c ↑のTIPSはCFRunLoopを使ってカレントループをアニメーションが終わるまでブロックするという方法で、これでもいいようなきがしていたのですが、一つ大きな問題があって、それはリンク先の追記にも書いてあるとおり、 CFRunLoopは、入力ソースなどのイベントを監視するためのクラス。CFRunLoopRun()

    CAAnimationの逐次実行処理 - Qiita
    kasumani
    kasumani 2014/02/28
    CAAnimationの逐次実行処理 複数の実行時間と種類の異なるCAAnimationをチェーンさせたい。 1秒かけてx方向に300px、2秒かけてy方向に100px、1秒かけて45度回転...というような感じに。 Tags: ifttt, kasumaniのストックした投稿 - qiita from P
  • CALayerでNSResponderのイベントをキャプチャする - Qiita

    CALayerはNSViewに比べてとても便利でUIViewに近い機能を持っていますが、イベントハンドラがありません。そのため、いろいろなイベントは自由に取得できませんが、CALayerが元をたどれば何かのNSViewのlayerにaddSublayer:されるという前提があれば、イベントを自由にキャプチャできます。 Cocoaでは(というか、普通のウィンドウシステムなら?)イベントハンドリングはレスポンダチェーンを辿って最終的にrootのNSwindowオブジェクトにバブルアップします。NSResponderにはsetNextResponder:というメソッドがあるので、これを使うと普通にイベントチェーンを全く無関係のオブジェクトからキャプチャできます。 そこでこんなクラスを作りました。 typedef void (^ResponderHandler)(NSEvent *e); @int

    CALayerでNSResponderのイベントをキャプチャする - Qiita
    kasumani
    kasumani 2014/02/27
    CALayerでNSResponderのイベントをキャプチャする 1 ストック 0 コメント この投稿をストックする CALayerはNSViewに比べてとても便利でUIViewに近い機能を持っていますが、イベントハンドラがありません。そのため、いろいろなイベ
  • 本当は怖いTARGET_OS_MAC - Qiita

    日二回目の怖いシリーズ。 まずは落ち着いて以下の表を見て欲しい。 参考) http://stackoverflow.com/questions/15323109/creating-an-ios-os-x-cross-platform-class http://sealiesoftware.com/blog/archive/2010/8/16/TargetConditionalsh.html なんでiOSデバイスでもTARGET_OS_MACが1なんだよ!!!! とはいえ、実は以下のように書いても動作します。 #if TARGET_OS_IPHONE // iOS用 #import <UIKit/UIKit.h> #elif TARGET_OS_MAC // OSX用 #import <Cococa/Cococa.h> #endif

    本当は怖いTARGET_OS_MAC - Qiita
    kasumani
    kasumani 2014/02/27
    本当は怖いTARGET_OS_MAC 本日二回目の怖いシリーズ。 まずは落ち着いて以下の表を見て欲しい。 なんでかなーと思ったら、iOS最初の分岐で分かれていたからですね。((((;゚Д゚))))ガクガクブルブル Tags: ifttt, kasumaniの
  • 本当は怖いCGFloat - Qiita

    CoreGraphicsやCoreAnimationなどで頻繁にお世話になるCocoaの浮動小数点系のCGFloatですが、使い方を間違えると思わぬバグを生みます。 というのも、 CGFloatは32bit/64bit環境によって型が違う からなんですが。 #if defined(__LP64__) && __LP64__ # define CGFLOAT_TYPE double # define CGFLOAT_IS_DOUBLE 1 # define CGFLOAT_MIN DBL_MIN # define CGFLOAT_MAX DBL_MAX #else # define CGFLOAT_TYPE float # define CGFLOAT_IS_DOUBLE 0 # define CGFLOAT_MIN FLT_MIN # define CGFLOAT_MAX FLT_MAX

    本当は怖いCGFloat - Qiita
    kasumani
    kasumani 2014/02/26
    本当は怖いCGFloat CoreGraphicsやCoreAnimationなどで頻繁にお世話になるCocoaの浮動小数点系のCGFloatですが、使い方を間違えると思わぬバグを生みます。 Tags: ifttt, kasumaniのストックした投稿 - qiita from Pocket February 26, 2014 at 08:05PM via IF
  • オブジェクトのライフサイクル中一度だけ処理を実行する - Qiita

    プロセスの起動中に一度だけ処理を行う場合、dispatch_onceを使うと思いますが、オブジェクトがインスタンス化されてから開放されるまで一度だけ処理を実行したい場面がありました。 #import <objc/runtime.h> @interface NSObject (PerformOnce) // オブジェクトが生きている間一度だけ実行される - (void)performOnce:(void(^)())onceBlock; @end @implementation NSObject (PerformOnce) - (void)performOnce:(void (^)())onceBlock { if (![objc_getAssociatedObject(self, "performonce") boolValue]) { onceBlock(); objc_setAssoci

    オブジェクトのライフサイクル中一度だけ処理を実行する - Qiita
    kasumani
    kasumani 2014/02/26
    オブジェクトのライフサイクル中一度だけ処理を実行する プロセスの起動中に一度だけ処理を行う場合、dispatch_onceを使うと思いますが、オブジェクトがインスタンス化されてから開放されるまで一度だけ処理を実行したい
  • objcのクラスメソッドとインスタンスメソッドの違い - Qiita

    は、ありません。 でも述べたんですが。もう少し踏み込んで。 objcのクラスにはクラスメソッドがあります。 あまり知られていませんがクラスメソッドとインスタンスメソッドの違いは実はあんまりないのです。 例えば、NSObject ClassにはconformsToProtocol:というセレクタのメソッドが、クラスメソッドとインスタンスメソッドと両方ありますが、セレクタだけではその判別は出来ません。なのでこんなこともできます。 + (BOOL)conformsToProtocol:(Protocol *)protocol { NSObject *obj = [NSObject new]; return (BOOL)objc_msgSend(obj,_cmd,protocol); } - (void)testExample { Class class = [self class]; XCTAs

    objcのクラスメソッドとインスタンスメソッドの違い - Qiita
    kasumani
    kasumani 2014/02/21
    objcのクラスメソッドとインスタンスメソッドの違い でも述べたんですが。もう少し踏み込んで。 objcのクラスにはクラスメソッドがあります。 あまり知られていませんがクラスメソッドとインスタンスメソッドの違いは実
  • セレクタからメソッドシグネチャの引数の数を調べる - Qiita

    - (NSUInteger)argc:(SEL)sel { return [[NSStringFromSelector(sel) componentsSeparatedByString:@":"] count]; } 原始的ですが。 ※2014/02/22 @tomohisaota さんから教えていただきました。 recieverが分かっている場合はNSMethodSignatureを使うほうが良さそうです。 - (NSUInteger)argc:(SEL)sel { NSLog(@"%d",[self methodSignatureForSelector:@selector(viewDidAppear:)].numberOfArguments); // => 2 + 1 = 3 } ※ 2014/02/22 追加 NSObjectのmethodSignatureForSelector:の

    セレクタからメソッドシグネチャの引数の数を調べる - Qiita
    kasumani
    kasumani 2014/02/21
    セレクタからメソッドシグネチャの引数の数を調べる 1 ストック 0 コメント この投稿をストックする - (NSUInteger)argc:(SEL)sel { return [[NSStringFromSelector(sel) componentsSeparatedByString:@&quot;:&quot;] count]; } 原始的ですが。 keroxp フォローす
  • UIViewControllerのview.windowがロードされるタイミング - Qiita

    UIViewController - viewDidLoadでself.view.windowを参照しようとしてハマったのでメモ。iOSは基的に単一のUIWindowしか持っていないのだけど、UIView.windowで自身が所属するwindowを特定する場合、タイミングが重要な場合がある。例えば以下。 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIWindow *vw = self.view.window; UIWindow *aw = [[[UIApplication sharedApplication] delegate] window]; NSLog(@"view has window? :

    UIViewControllerのview.windowがロードされるタイミング - Qiita
    kasumani
    kasumani 2014/02/18
    UIViewControllerのview.windowがロードされるタイミング UIViewController - viewDidLoadでself.view.windowを参照しようとしてハマったのでメモ。iOSは基本的に単一のUIWindowしか持っていないのだけど、UIView. Tags: ifttt, kasumaniのストックした投稿
  • XCTestの中でNSBundleにアクセスする - Qiita

    - (void)testExample { XCTAssertNil([[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"txt"],); // ない XCTAssert([[NSBundle bundleForClass:[self class]] pathForResource:@"hoge" ofType:@"txt"],); // ある } Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    XCTestの中でNSBundleにアクセスする - Qiita
    kasumani
    kasumani 2014/02/17
    XCTestの中でNSBundleにアクセスする 0 ストック 0 コメント この投稿をストックする SampleTest. Tags: feedly, ifttt, kasumaniのストックした投稿 - qiita, recently read, saved for later from Pocket February 19, 2014 at 05:22PM via IFTTT
  • UITableviewのImageViewへの画像の非同期ダウンロードをアスペクト指向的に解決した話 - Qiita

    世のiOSプログラマーの大半はUITableViewとのキャットファイトに日々の作業の大半を費やしていると思うのだけど、その中でもUITableViewCellのimageViewへ画像を非同期で読み込む処理というのは煩雑で面倒な処理だと思う。 何が面倒なのかは割愛するけど、決定的に面倒なのがこの処理が容易にモジュール化できないという点にある。 AppleのLazyTableImageはこの手の処理のお手的なサンプルコードなのだけど、唯一の欠点が、UIScrollViewDelegate内での処理を必要としている点だ。 // ------------------------------------------------------------------------------- // scrollViewDidEndDragging:willDecelerate: // Load i

    UITableviewのImageViewへの画像の非同期ダウンロードをアスペクト指向的に解決した話 - Qiita
    kasumani
    kasumani 2014/01/29
    UITableviewのImageViewへの画像の非同期ダウンロードをアスペクト指向的に解決した話 世のiOSプログラマーの大半はUITableViewとのキャットファイトに日々の作業の大半を費やしていると思うのだけど、その中でもUITableViewCellのimag
  • UIScrollViewのcontentOffset - Qiita

    UIScrollViewのcontentOffsetはスクロール位置を測るためによく使われるけど、contentSizeに対して値が変だなと思った部分があったのでまとめ。 そもそもcontentOffsetとは UIScrollViewのスクロール位置が初期状態(= contentOffset = {0, 0})の状態からx, y方向にどれだけスクロールしたかを表す。y方向に+100pxスクロールしたらcontentOffsetは{0,100}になる。当たり前。 contentSizeとcontentOffset contentSizeはUIScrollViewのframe内の総サイズを表す。たとえば、200x200の画像を100x100のフレームでscale:1.0で表示させようとした場合のcontentSizeは{200,200}。これも当然。 BouncingとcontentOffs

    UIScrollViewのcontentOffset - Qiita
    kasumani
    kasumani 2014/01/23
    UIScrollViewのcontentOffset UIScrollViewのcontentOffsetはスクロール位置を測るためによく使われるけど、contentSizeに対して値が変だなと思った部分があったのでまとめ。 Tags: feedly, ifttt, recently read, saved for later from Pocket January 23, 2014 at 10:
  • 1