* Xây dựng device và thuộc tính của device:
Trước tiên, để quản lý các device trong chương trình, ta phải xây dựng 2 class để quản lý chúng: 1 class để quản lý các thuộc tính của device và 1 class quản lý danh sách các device.
Class quản lý thuộc tính của device là kiểu NSObject, gồm 2 file Device.h và Device.m. Trong đó file Device.h có dạng như sau:
Nhìn vào file trên ta sẽ thấy các thuộc tính toàn cục cơ bản của một device là: name, ipAddress, type, description, password. Các thuộc tính này đều được lưu dưới dạng chuỗi (NSString). Do cách quản lý thế này nên mỗi khi cần truy xuất thuộc tính các device ta chỉ cần gọi: device.attribute. Ví dụ: device.name: tên device, device.type: loại device.
Class quản lý danh sách các device là kiểu NSObject, gồm 2 file Devices.h và Devices.m. Trong đó file Devices.h có dạng như sau:
Page 32
Nhìn file trên ta thấy class này chỉ chứa duy nhất một thuộc tính toàn cục đó là device với kiểu dữ liệu là NSMutableArray. Đây là kiểu dữ liệu mảng cho phép ta chứa các đối tượng khác bên trong nó. Ta dùng kiểu dữ liệu này để chứa các danh sách device trong chương trình của mình.
Và ta sẽ dùng các lệnh sau để thao tác với các device:
objectAtIndex: Gọi một device nào đó tại vị trí có sẵn.
addObject: Thêm một device vào list các device.
replaceObjectAtIndex: thay thế 1 device tại vị trí nào đó bằng một device khác.
* Xây dựng Device Form:
Tiếp theo, để xây dựng được Device Form ta cần 2 ViewController:
ViewController thứ nhất (view giao diện chính của Device Form): gồm 1 table chứa danh sách các device trong chương trình và các nút thao tác đối với các device đó.
ViewController thứ hai (view design): view cho phép ta nhập thông tin của device vào và 2 nút xác nhận (nút OK và nút Cancel).
Các ViewController này tương tác với nhau thông qua các action như sau:
Khi ta nhấn nút add device hoặc chọn edit device: chương trình sẽ thực thi giải thuật như sau:
Hình 5-5 Giải thuật thực thi khi nhấn nút add device hoặc khi edit device Đoạn code cho hàm add device như sau:
Page 33
Hàm add device này chỉ làm một việc duy nhất là gọi ViewController thứ 2 lên (view design cho device) thông qua hàm:
Ở đây DeviceDesignView là đối tượng đại diện cho ViewController thứ 2. Sau khi nhập thông tin của device xong thì ViewController thứ 2 sẽ lấy những thông tin vừa nhập về device và trả về ViewController thứ 1 (view giao diện chính) thông qua lệnh gọi hàm sau:
Hàm này không thực thi ở ViewController thứ 2 mà được thực thi ở ViewController thứ nhất. Hàm này sẽ thêm device vào danh sách device đồng thời cập nhật lại table để hiển thị device đó lên. Đoạn code của hàm như sau:
Còn về việc edit 1 device nào đó thì hãy chú ý là ta không có nút edit, muốn edit 1 device nào đó ta chỉ việc nhấp 2 lần vào device đó, đoạn code thực thi điều này như sau:
Page 34
Hàm này sẽ kiểm tra xem ta đã chạm 2 lần vào device đó chưa. Sau đó hàm sẽ lấy thông tin device được chạm vào thông qua biến deviceIndex và gọi ViewController thứ 2 lên với những thông tin của device được chọn để cho người dùng edit. Edit xong thì ta chọn OK. Mọi việc sau đó diễn ra y như khi ta add device, chỉ khác là trong hàm didDesignDevice ta sẽ thay thế device cũ bằng device mới chỉnh sửa.
Khi ta chọn delete device thì chương trình sẽ tự động xóa device khỏi danh sách device và table chứa device. Nút delete chỉ hiện ra khi ta dùng tay quét ngang một device nào muốn xóa. Đoạn code thực thi điều này như sau: