paranitips

Never stop learning! がモットーのゆるふわエンジニアブログ

2014-01-01から1年間の記事一覧

レスポンスにリレーションがない場合にCoreDataからも削除する

たとえば、次のようにcommunityとtopicにリレーションがあり、 RKEntityMapping *communityMapping = [RKEntityMapping mappingForEntityForName:@"HogeCommunity" inManagedObjectStore:managedObjectStore]; [communityMapping addAttributeMappingsFromDi…

「小さなチーム、大きな仕事」を読みました

読書再開しました。気になった点をメモがてらまとめます。 失敗から学ぶことは過大評価されている 失敗から学ぶ必要はない。してはいけないことについては学べるが、次になにをすべきかがわからない。一方で、成功から学ぶことは、次の手段を与えてくれる。…

iOSシミュレータでキーボードが表示されない

Xcode6にしてからなにかと変更点が多くてヤキモキしております。 iOSシミュレータが表示されない場合は以下で解決します。 iOS Simulator -> Hardware -> Keyboard 「Connect Hardware Keyboard」のチェックを外します 以前はハードウェアもソフトウェアも両…

UICollectionViewCellでAutoLayoutが効かない

iOS8SDKの既知の不具合として認識されているようです。 iOS8SDKをiOS7上で動かしたときに発現します。 CellのcontentViewのサイズが変更されていないのが原因なので、UICellectionViewCellのサブクラスに以下のコードを追加して対応します。 - (void)setBoun…

文字列をblowfish暗号化する

文字列を暗号化する方法のメモ。今回は可逆暗号化が目的なのでblowfishを使います。 Security.frameworkが必要なので、Build Phasesで追加してください。 #import <CommonCrypto/CommonCrypto.h> // 文字列をblowfish暗号化する + (NSString *)encodeBlowfish:(NSString *)str { NSData *k</commoncrypto/commoncrypto.h>…

iPhoneのWebViewでカスタムフォントを使う

アプリ全体のデザインを崩さないためにも、アプリ内のWebViewでも積極的にカスタムフォントを使いましょう。 使用したいカスタムフォントがアプリ内に入っている場合とそうでない場合で方法が若干異なります。 (カスタムフォントがmplus-1c-medium.ttfの場…

iOS7でUIViewアニメーションが機能しない

iOSの違いでUIViewアニメーションの挙動が違うので注意が必要です。 とりわけ「iOS6では動くのにiOS7では動かない」といった状況に陥ります。 iOS7ではUIViewアニメーションに関して変更があり、viewがまだ表示されていない状態(viewDidLoad, viewWillAppea…

脱獄端末のチェックをする

結局イタチごっこなのですが、、、脱獄対策のメソッドを書きました。 BreakThroughで脱獄回避のメソッドをすり抜けられちゃうので、BreakThroughそのもののチェックをしてみたり。 /* * 脱獄端末のチェック */ +(BOOL)isJailBreak { #ifdef DEBUG // デバッ…

ViewControllerがpresentされたのかpushされたのか判定する

ViewControllerがモーダルされたのかプッシュされたのか判定したい場合がしばしばあります。(例えば、モーダルのときは「閉じる」ボタン、プッシュのときは「戻る」ボタンに変更したいときとか。) if(self.presentingViewController != nil) { // モーダル…

cocos2d-xでダイアログを表示する

単純にダイアログを表示するだけであればCCMessageBoxを使えばいいですね。 CCMessageBox("メッセージ", "タイトル"); ただ、ボタンのタイトルは「OK」で固定されてるし、delegateはnilで受け取れません。 そのため、ダイアログからさらにアクションを起こし…

アプリがFacebookに認証済みかどうか判定する

Accounts.frameworkが必要です。 まあ、認証終わったあとにNSUserDefaultsにユーザIDなんかを保持しておくだけでもいい気がしますが、正式(?)な方法があるので一応メモしておきます。 ACAccountStore *accountStore = [[ACAccountStore alloc] init]; ACAcco…

UIAlertViewを表示しているかどうかをチェックする

ユーザとして、ダイアログが複数回出てくるのはかなりストレスに感じます。 UIAlertViewの表示チェックを行うことで、それを回避します。 -(void)showDialog { // ダイアログを表示中かチェックする for (UIWindow* window in [UIApplication sharedApplicat…

オブジェクトのZ値を変更する

オブジェクトのZ値を変更したい場合、単純に int order = 100; node->setZOrder(order); としても変更されません。 一度addChildしたオブジェクトのZ値を変更する場合は、reorderChildを使って親オブジェクトから設定してやる必要があります。 CCNode* paren…

非ARCのプロジェクトにARC対応ライブラリを対応させる方法

非ARCのプロジェクトにSBJsonなどのARC対応ライブラリを導入してビルドすると以下のようなエラーがでます。 This source file must be compiled with ARC enabled! Build Phases -> Compile Sources でCompiler Flagsを設定します。 エラーが出ている.mファ…

オブジェクトがアニメーション中かどうか判定する

たとえば複数のオブジェクトをランダムでアニメーションさせたいときなどに、現在そのオブジェクトがアニメーション中の場合はキャンセルしたいです。 判定する方法はいたって単純。 void SampleScene::actionNodeAtRandom(CCNode* hogeNode) { if ( hogeNod…