iOS/iPhone viewDidLoad , didReceiveMemoryWarning , dealloc (Objective-C , iPhone) |
iOS/iPhone viewDidLoad , didReceiveMemoryWarning , dealloc (Objective-C , iPhone) ในการสร้าง Project สำหรับเขียน iPhone หรือ iPad บน Xcode ด้วยภาษา Objective-C เราจะเห็นว่า Class ของ .m (implementation) จะมี method หลาย ๆ ตัวได้ถูกประกาศไว้อัตโนมัติ รวมทั้ง property หรือตัวแปร จะถูก release อัตโนมัติเช่นเดียวกัน เช่น method ชื่อว่า viewDidLoad , didReceiveMemoryWarning และ dealloc โดยหลัก ๆ เราจะเห็นอยู่ 3 ตัว และเราจะมาทราบความหมายของแต่ล่ะตัวว่ามันคืออะไร และใช้งานยังไง
iOS/iPhone viewDidLoad , didReceiveMemoryWarning , dealloc
method เหล่านี้จะถูกสร้างอัตโนมัติหลังจากที่ได้ Create Project ด้วย Xcode และเราไม่ต้องทำการลบ เอาออกจากโปรแกรม ต่อให้ไม่ได้เรียกใช้งาน ก็จะไม่มีผลใด ๆ ต่อการทำงานของโปรแกรมทั้งสิ้น
ความหมายของ method แต่ล่ะตัว
viewDidLoad() เป็น method คล้ายกับ OnLoad , Load ซึ่งจะทำงานทุกครั้งหลังจากที่โหลดหน้า App เรียบร้อย เราจะนิยมแทรกอะไรก็ตามที่ทำงานทุก ๆ ครั้ง เช่น
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
myString = @"This is my string";
lblResult.text = myString;
}
เมื่อโหลดครั้งแรก จะมีการแสดงข้อความบน Label ของ lblResult
didReceiveMemoryWarning() เป็น method สำหรับควบคุฒประมาณ memory ที่ถูกใช้ เช่นเมื่อ memory ถูกใช้จนเกือบหมด method นี้จะถูกเรียกให้ทำงาน และเราสามารถใส่คำสั่งเช่น release ตัว object ต่าง ๆ เพื่อเคลียร์คืนค่า memory ได้
- (void)didReceiveMemoryWarning {
/* This is the view controller's method */
[super didReceiveMemoryWarning];
if (![self isViewLoaded]) {
/* release your custom data which will be rebuilt in loadView or viewDidLoad */
myString = nil;
[myString release];
[lblResult release];
}
}
dealloc() method นี้ปกติจะใช้สำหรับ release ตัว object หรือตัวแปรต่าง ๆ ที่ไม่ได้ใช้งานแล้ว เพื่อคืนค่า memory resource กลับไป
- (void)dealloc {
[lblResult release];
[super dealloc];
}
ใน method ของ dealloc เราจะเห็นบางครั้งจะมีการใส่ค่าต่าง ๆ ให้อัตโนมัติเมื่อเราทำการเชื่อม IBOutlet และ IBAction
Example ตัวอย่างการใช้ viewDidLoad , didReceiveMemoryWarning , dealloc แบบง่าย ๆ
เริ่มต้นด้วยการสร้าง Project บน Xcode แบบง่าย ๆ ด้วย Single View Application
เลือกและไม่เลือกรายการดังรูป
ตอนนี้หน้าจอ View ยังว่าง ๆ
เมื่อเรามาดูที่ Class ของ .m จะเห็นว่า method ของ viewDidLoad , didReceiveMemoryWarning ได้ถูกสร้างเตรียมไว้เรียบร้อย
เรามาทดสอบสร้าง IBOutlet ให้กับ Label
ใน Class ของ ,n มีการสร้าง dealloc และมีการปล่อย lblResult ซึ่งได้จากการสร้าง ]IBOutlet[/b]
ทดสอบการใส่ค่าต่าง ๆ ลงไปใน method ของ viewDidLoad , didReceiveMemoryWarning และ dealloc
Code ทั้งหมดของ .h และ .m ในภาษา Objective-C
ViewController.h
//
// ViewController.h
// myAppTest
//
// Created by Weerachai on 11/18/55 BE.
// Copyright (c) 2555 Weerachai. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
IBOutlet UILabel *lblResult;
}
@end
ViewController.m
//
// ViewController.m
// myAppTest
//
// Created by Weerachai on 11/18/55 BE.
// Copyright (c) 2555 Weerachai. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
{
NSString *myString;
}
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
myString = @"This is my string";
lblResult.text = myString;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
myString = nil;
[myString release];
}
- (void)dealloc {
[lblResult release];
[super dealloc];
}
@end
Screenshot
Screenshot ได้ที่
.
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2012-11-20 10:04:19 /
2017-03-25 22:59:50 |
|
Download : |
|
|
Sponsored Links / Related |
|
|
|
|
|
|
|