日別: 2014年2月22日

エミュレータからインターネット接続できない場合の対処方法

 

※本記事は、旧ブログからの再掲です。

Androidエミュレータからインターネット接続ができない場合の対処方法です。

これまでのところ、以下2点の場合にインターネット接続ができないことがありました。

(1)DNS設定が原因の場合
(2)SSL接続時の証明書が原因の場合

 

emulator_internet_err_1


 
(1)DNS設定が原因の場合

ネットで調べてみたところ、何らかの要因でDNSサーバーにアクセスできなくなっているとのことでした。
この場合には、DNSサーバーを設定すれば良いようです。 (さらに…)

tableViewのセクションヘッダの高さ

 

※本記事は、旧ブログからの再掲です。

ViewControllerに複数の異なるビューを配置し、その1つにtableViewを配置したところ、思った通りに描画されなかった時の備忘録です。

tableview_header_1

上のImageViewとの間隔は10ptに設定してあるのに、それ以上の間隔で描画され、テーブルセルは5個なのでその分の高さを設定してあるのに、セル4までしか表示されていません。
セルの上に何かありそうなので、背景に色を付けてみました。 (さらに…)

iOS6.0以降の回転制御について

 

※本記事は、旧ブログからの再掲です。

UINavigationControllerとUITabBarControllerの両方を使用している場合の回転制御についてです。
※iOS6.0以降

iOS6.0からshouldAutorotateToInterfaceOrientation:メソッドがdeprecatedとなり、
新しく下記3つのメソッドが追加されました。
・shouldAutorotate
・supportedInterfaceOrientations
・preferredInterfaceOrientationForPresentation

画面回転を検出すると、まずshouldAutorotateメソッドが呼ばれ、
回転に対応する場合にはYES、しない場合にはNOを返却します。
shouldAutorotateでYESの場合に、supportedInterfaceOrientationsメソッドが呼ばれ、どの向きに対応するかを返却します。
preferredInterfaceOrientationForPresentationメソッドでは、複数の向きに対応している場合に初期表示画面の向きを指定します。 (さらに…)

Analyze実行時のDead storeメッセージ

 

※本記事は、旧ブログからの再掲です。

XcodeでAnalyzeを実行したら、下記の警告メッセージが出力されました。

“Value stored to ‘xxx’ during its initialization is never read”

調べたら、初期化した値が参照されていないことを指摘するメッセージのようです。

指摘されたのは以下のコードです。

NSMutableDictionary *dic = [NSMutableDictionary dictionary]; ←←この行で警告
dic = [_array objectAtIndex:index];

1行目で空のディクショナリを生成し変数dicに代入していますが、
2行目では別のオブジェクトを代入しています。
1行目で生成したディクショナリは以後使われません。
そのため、Analyze実行時に1行目の代入が無駄な処理として指摘されたようです。

対処としては、

NSMutableDictionary *dic = [_array objectAtIndex:index];

もしくは

NSMutableDictionary *dic; (or NSMutableDictionary *dic = nil;)
dic = [_array objectAtIndex:index];

とすることで、警告メッセージは出力されなくなりました。

 

複数ビューのタッチイベント受信処理

 

※本記事は、旧ブログからの再掲です。

複数のビューを重ねた場合のタッチイベント受信処理について、
ハマってしまったので備忘録です。

図のように一番下の階層から ScrollView→UIView→UIViewとビューを重ね
UIView A → シングルタップイベント
UIView B → スワイプイベント
を受信できるように設定したのですが
いざ実行してみたら、UIView B上でシングルタップしても何も反応しませんでした。

<期待する動作>
 UIView B上でシングルタップをした場合にも、UIView Aの受信処理が起動する。

view_touch_1

(さらに…)