一日集中特別講座

RainbowApps

Google グループ
RainbowAppSchool
このグループにアクセス



初心者でもアプリが作れる!
受講生 800名の実績

 AndroidもRainbowApps


藤永 真至
¥ 1,785 



【注意】xcodeバージョン違いのトラブルシューティング



【メモリリーク対応について】※iPhone4で落ちるアプリの原因


iPhoneOSは、メモリが不足すると、起動中のアプリであっても、その時点で使っていない領域を解放して、アプリがそのときに必要なメモリ領域を確保するようになっています。このとき、解放されるメモリ上のインスタンスの viewDidUnload が呼び出され
ます。

veiwDidUnload では、Outlet で記述した変数のリテインカウントを下げる処理を記述するのですが、これまでのテキストではこの部分の記述内容が不十分でした。

OS3.x では、viewDidUnload が呼び出されることはほとんどありませんでしたが、iOS4からメモリ管理の方法が変わり、容易にメモリ解放が起こるようになり、viewDidUnload が呼び出される回数も増え、結果としてメモリリークが発生してしまいます。

今回の改訂では、リテインカウントが正しくコントロールされるように以下の例のように修正しています。

これまでの記述例
- (void)viewDidUnload {
   aMap = nil;

今回の改訂での記述例
- (void)viewDidUnload {
   [aMap release];
   aMap = nil;


============================================================
1.Interface Builder の Status Bar 等 の表記変更
============================================================
【3.1】
None

【4.0】
Unspecified

============================================================
2.viewDidUnload の表記変更
============================================================

【3.1】
コメントのみ

【4.0】
[super viewDidUnload];
コメント

============================================================
3.新規追加-UITableViewController SubClass テンプレート
numberOfSectionsInTableView: の表記変更
============================================================

【3.1】
return 1;

【4.0】
return <#number of sections#>;

============================================================
4."新規追加-UITableViewController SubClass テンプレート
tableView:numberOfRowsInSection: の表記変更
============================================================

【3.1】
return 0;

【4.0】
return <#number of rows in section#>;

============================================================
5."UITableViewテンプレートのコメント
tableView:didSelectRowAtIndexPath: の表記変更
============================================================

【3.1】
 // Navigation logic may go here -- for example, create and push another view controller.
// AnotherViewController *anotherViewController = [[AnotherViewController alloc] initWithNibName:@""AnotherView"" bundle:nil];
// [self.navigationController pushViewController:anotherViewController animated:YES];
// [anotherViewController release];

【4.0】
/*
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@""<#Nib name#>"" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
*/

============================================================
6.info.plistの「Required device capabilities」での項目のKey名
============================================================

【4.0】
「Item 0」から始まる