paranitips

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

開発

Unused variable の警告を消す

サードパーティのライブラリやフレームワークを使っていると、大量に出てくる「Unused variable」の警告ですが、開発中はとても邪魔なので見えないように設定を変更します。 Build Settings -> Apple LLVM 5.0 - Warnings - All Languages にある「Unused Va…

ユーザエージェントからiOSのバージョンを取得する

iOSのバージョンによってサーバ側で処理を分けたい場合、ユーザエージェントからバージョンを検出して対応します。 def check_ios_version # ユーザエージェントを取得 ua = request.env['HTTP_USER_AGENT'] ua =~ /iPhone OS (\d+)[\.|_]+(\d+)/ if $1 && $…

UITableViewCell上のUIButton(Custom)が反応しない

XIBで独自クラスのセルを作成し、そのセル上にUIButtonを設置している場合、iOS7ではタップに反応しません。 対処法としてはセルに対して以下のコードを追加すればOKです。 [customCell.contentView setUserInteractionEnabled: NO]; XIBでセルを作っている…

「Couldn't load cocos2dx.xcodeproj because it is already opened from another project or workspace」 の対処

Cocos2d-xでiOSアプリを開発している際、以下のようなエラーに遭遇することが多々あります。 Couldn't load cocos2dx.xcodeproj because it is already opened from another project or workspace エラー文の通り、すでにcocos2dxプロジェクトを開いている場…

画像サイズ対応/解像度対応でつまづいた

CocosBuilderでマルチレゾリューション対応が簡単にできるということだったので、参考書のとおりにレイアウトを構成し、画像を書き出してcocos2d-xプロジェクトのResourcesへ追加。 するとぜんぜんうまくいかなくて苦戦したのでメモしておきます。 CocosBuil…

「`require': cannot load such file -- readline (LoadError)」のエラーを解消する

動作環境 $ cat /etc/`ls /etc -F | grep "release$\|version$"` CentOS release 6.4 (Final) $ rails -v Rails 4.0.0 $ ruby -v ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux] 事象 rails consoleコマンドを打つと以下のようなエラーが出まし…

EC2でRuby on Rails+Passenger+Apache環境を構築する

EC2にてRailsアプリケーションを作成し、ページを表示させるまでをまとめます。 EC2のインスタンス作成についてはこちらが参考になります。 Rubyのインストール確認 # ruby -v ruby 1.8.7 (2012-10-12 patchlevel 371) [x86_64-linux] rubyはデフォルトで入…

Xcodeがオーガナイザーでクラッシュする

XcodeのオーガナイザーにてProvisioning Profilesを更新すると必ずクラッシュする事象に出くわしました。 Xcodeを再起動しても、PCを再起動しても解決されません。 エラー内容に以下の文言が含まれていました。 UNCAUGHT EXCEPTION (NSInvalidArgumentExcept…

iAdとAdMobを切り替えるAdMobメディエーションを実装する

AdMobメディエーションを使うことで複数のアドネットワークを切り替えることができます。 AdMobの設定は各自で行なってください。 今回は一般的なiAdとAdMobの2種類の広告を扱います。 なお、ARC対応の場合はOther Linker Flagsに-ObjCを追加する必要があり…

Interface Builderで16進の色コード(Hex Color)を使えるようにするプラグインを導入する

Xcodeにて、Interface Builderでも色コードを指定できるとものすごく効率が上がります。 下図のような感じです。 そのための便利なプラグイン「Hex Color Picker」があったので早速導入します。 こちらからプラグインをダウンロードします。 Finder -> 移動…

Rubyでメソッド一覧を確認するmethodsメソッドが便利

例えば、destroy!メソッドってあったっけ?みたいな場合など、 rubyでメソッド一覧を調べたいときにはmethodsメソッドを使います。 sortやgrepと組み合わせるとなお良しです。 使用出来るメソッド一覧を表示する @bbs = Bbs.new pp @bbs.methods -----------…

rubyの「undefined method `+@’ for ” “:String」を解決する

rubyでは+の位置によって挙動が変わるので注意が必要です。 str = "hoge" + "fuga" を改行する場合、 str = "hoge" + "fuga" # エラー:undefined method `+@’ for ” “:String これではエラ−となってしまいます。 +を文末に移動させて、 str = "hoge" + "fug…

NSURLRequestでSSL証明書を無視する

NSURLRequestを拡張することでSSLの証明書を無視します。 #import <Foundation/Foundation.h> @interface NSURLRequest (IgnoreSSL) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; @end #import "NSURLRequest+IgnoreSSL.h" @implementation NSURLRequest (IgnoreSSL) +</foundation/foundation.h>…

UITextViewに文字数制限/文字数カウント機能を実装する

テキストビューに以下の機能を実装します。 所定文字数までしか入力させない文字数制限機能 現在テキストビューに入力されている文字数のカウント textlengthLabelに現在の文字数を表示させます。 #define MAX_LENGTH 200 // 文字数制限を200に設定 - (BOOL)…

NSTimerをscrollイベント中にも機能させる

NSTimerをscrollイベント中にも動かしたい場合、 [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(hoge) userInfo:nil repeats:YES]; 上記のままだとscrollイベント時に止まってしまうので、以下のようにすると良いです。 NSTimer *time…

サーバのグローバルIPアドレスを確認する

サーバのグローバルIPアドレスを調べるには下記のようにすると良いです。 % wget -q -O - ipcheck.mycurse.net ちなみに % /sbin/ifconfig でわかるのは現在所属しているネットワークのローカルIPアドレスです。 参考 LinuxサーバからグローバルIPを確認方法…

EC2でnode+express+mongoDB+mongooseの環境を構築する

Amazon EC2にnode+express+mongoDBの環境を構築します。 EC2の構築に関しては以下のSlideがとてもわかりやすいです。 はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる] from 玉川憲 (Ken Tamagawa) - Amazon Web Services nodeの環境構築 E…

NSJSONSerializationでJSONをパースする

iOS5から追加されたNSJSONSerializationを使ってみました。 今回はDribbbleのAPIで試してみます。 // Dribbbleから人気ショット一覧を取得するURL NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.dribbble.com/sh…

Unityプロジェクトの「Apple Mach-O Linker」エラーを解決する

UnityからXcodeに書き出してビルドすると大量のエラーが出ました。 ld: warning: ignoring file /Users/xxx/yyy iOS/Libraries/libiPhone-lib.a, missing required architecture i386 in file /xxx/yyy iOS/Libraries/libiPhone-lib.a (2 slices) Undefined …

git pushで「Permission denied (publickey).」を解決する

gitでGitHubにあるリポジトリにpushしようとしたらエラーが出ました。 % git push origin master Permission denied (publickey). fatal: The remote end hung up unexpectedly サーバーとの接続を確認する % ssh -vT git@github.com OpenSSH_5.6p1, OpenSSL…

「`join’: incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)」を解決する

コマンドライン引数で日本語を渡して文字列処理をしようとしたら 「内部と外部エンコーディングが異なるからjoinできないよ」と言われました。 $ ruby test.rb "てすとだよ" test.rb:39:in `join': incompatible character encodings: ASCII-8BIT and UTF-8 …

「Unable to find the wrapper "https"」を解決する

SSLに対応していないらしいのでSSL周りのconfigureオプションをチェックします。 %./configure --help | grep ssl --with-openssl=DIR Include OpenSSL support (requires OpenSSL >= 0.9.6) --with-openssl-dir=DIR FTP: openssl install prefix --with-ima…

iPhone、AndroidのモバイルWebでの長押しアクションを無効化する

モバイルWebにおいて、セキュリティ上、WebのリンクURLを表示させたくなかったり、 テキストのコピーを防止したい場合があります。 これらの長押しアクションを無効にするにはbodyのcssに以下を追記します。 body { -webkit-touch-callout:none; // リンク長…

Tagを用いて複数のUIAlertViewを処理する

複数のUIAlertViewを使う場合、buttonIndexのみではアクション処理がバッティングしてしまうので、Tagを使って場合分けをします。 //アラート画面のタグを宣言 static const NSInteger firstAlertTag = 1; static const NSInteger secondAlertTag = 2; //ア…

PHP5.4.3にImageMagickをインストールする

PHPで画像操作するためにImageMagickをインストールします。 ImageMagickのインストール まずはImageMagickのソースをダウンロードしてインストールします。 % cd /usr/local/src % wget http://www.imagemagick.org/download/ImageMagick.tar.gz % tar zxvf…

PHPにGDをインストールする

PHPで画像処理するためのGDライブラリをインストールします。 zlibのインストール % wget http://zlib.net/zlib-1.2.7.tar.gz % tar zxvf zlib-1.2.7.tar.gz % cd zlib-1.2.7 % ./configure % make % make install libpngのインストール % wget ftp://ftp.si…

正規表現のデリミタ(区切り文字)のいろいろ

PHPに限らず、正規表現のデリミタ(区切り文字)はスラッシュ/を使っていましたが、 http://hoge/fugaなど、パターンにスラッシュ/が含まれる場合は、 http:\/\/hoge\/fugaといったようにバックスラッシュ\でエスケープする必要があります。 この場合は、シ…

よく使うjQueryでのcssセレクタまとめ

jQueryオブジェクトでcssセレクタを多用するのでその備忘録です。 var target; $('.select').click(function() { target = $(this); // .selectそのもの target = $(this).parent(); // .selectの親要素 target = $('.child',this); // .selectの子要素.chil…

jQueryオブジェクトの比較

jQueryオブジェクト同士を比較する際は少し注意が必要です。 オブジェクト指向なので当たり前っちゃ当たり前ですが…。 失敗パターン これはNG。 オブジェクトが違うので別物です。 var obj1 = $('#target'); var obj2 = $('#target'); if( obj1 == obj2 ){ /…

「InfoPlist.stringsなんてないよ!」のエラーを解消する

gitなどのバージョン管理システムを使わずにプロジェクトをそのままコピペした場合、 Xcodeで実行すると次のようなエラーが出ました。 The file InfoPlist.strings couldn’t be opened because there is no such file. プロジェクト名.xcodeprojディレクトリ…