error: failed to attach to process ID ... が出たら

突然、上記エラーでシミュレータが起動しなくなり、

clean しても 再起動しても直らなくて困る。

最終的に、iPhone シミュレータの「コンテンツと設定をリセット...」で

設定周りをリセットしたら動くようになったのでメモ。



[ 追記 ]

再度発生&解決。

StackOverflow にも同様の現象で困ってる人がいたが、

サイトのアドバイス通りに、

「LLDB」から「GDB」に一度設定を変更し一度シミュレータで「実行」させる。

その後、また設定を「LLDB」に戻すと直った。

PCH file built from a different branch

Xcode をアップデートしたら今までエラーが出ていなかったプロジェクトで発生。

Clean すれば難なく解決した。

padding が効かなくなったら試すこと

調べると、親要素に overflow:hidden; を指定すると直るとか

情報があるが諸々試しても改善しない!

そんな時は、padding を上下左右個々の定義に変えてみる。

例)

padding: 8px 12px 8px 16px;



padding-top: 8px;
padding-right: 12px;
padding-bottom:8px;
padding-left: 16px;

margin-top が効かなくなった時の対処方法

position をいじった後にこの現象が起きた。

margin が聞かない Box の1つ外にある要素に

position:relative; すれば直った。

body にあらかじめこのスタイルを定義しておくのが手っ取り早いかも。

それと、margin 系と clear 系は同時に指定しない方がいい模様。

もし、relative を指定しても発生する箇所がある場合は、

margin と clear の同時指定がないか確認しよう。

Divのボックスから文字がはみ出るのを折り返したい

スタイルに

word-break: break-all;

を設定すると解決した。

Assigning retained object to weak variable; object will be released after assignment.

すぐに解放されるから代入する意味が無い的な事っぽい。

ゴリ押しでいいなら、ローカル変数に一度代入したものを入れると警告はなくなる。

// ここで警告が出る
yourWarningValue = [[YourClass alloc] init];

// ↓こうすると警告は消える

YourClass* newvalue = [[YourClass alloc] init];
yourWarningValue = newvalue;

no visible @interface for declares the selector

引数の数が違わないか確認する。

例えば、引数が1つ必要なのに引数なしでコールしたりすると出る。

The executable was signed with invalid entitlements.

ProvisioningFile を再作成すれば直る。

設定云々より古くなった ProvisioningFile の整合が疑わしかったので

最初から素直に作りなおしておけばよかった…。

iOSアプリ開発をする時にやっておきたい例外対応

main.m のmain関数を以下のようにしてから開発を始めると、

例外時にコールスタックをざっくり見られるので何かとデバッグが捗る。

突然 SIG_ABRT するも、どこで止まったかわからないみたいな事で迷う事も減る。

( iOS6で動作確認 )
int main(int argc, char *argv[]) {

#ifdef DEBUG

 int ret;

 @autoreleasepool {

  @try {
  
   ret = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  
  }

  @catch (NSException *exception) {

   NSLog( @"%@", [exception callStackSymbols] );
   @throw exception;
  
  }

 }

 return ret;

#else

 @autoreleasepool {

  return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

 }

#endif

}