Video: Những tính năng hay trên iPhone mà bạn nên biết 2025
iOS framework cung cấp các chức năng cho phép ứng dụng của bạn làm việc với các cơ sở dữ liệu đi kèm với thiết bị iOS. Một trong những cơ sở dữ liệu đó là Address Book, trong đó bao gồm mọi người và thông tin liên lạc của họ. thiết bị iOS cũng cung cấp ứng dụng Danh bạ cho phép người dùng quản lý cơ sở dữ liệu này bằng cách thêm địa chỉ liên hệ mới, cập nhật chúng, xóa chúng, vân vân.
Thông tin trong Sổ Địa chỉ có thể truy cập được tới các ứng dụng khác, mặc dù theo cách có kiểm soát. Ví dụ: ứng dụng của bạn có thể hiển thị cho người dùng địa chỉ liên hệ từ Sổ Địa chỉ, cho phép họ chọn một số liên lạc và sau đó sử dụng thông tin của liên hệ đã chọn. Đôi khi tôi sử dụng chức năng này trong Tic-Tac-Toe để hớn hở trên số điểm Tic-Tac-Toe vinh quang của tôi qua email tới một người nào đó trong danh sách liên lạc của tôi.
Để hiểu rõ hơn, hãy xem bộ điều khiển Chế độ xem Phiên trò chơi (TTTGameSessionViewController.m và.h) và làm theo. Trước tiên, bạn sử dụng bộ điều khiển chế độ xem để thực hiện giao thức ABPeoplePickerNavigationControllerDelegate, như được hiển thị ở đây:
@interface TTTGameSessionViewController: UIViewController {…}
Phương thức sendScoresByEmailWithContact (được mô tả tiếp theo) là phương thức hành động bắt đầu quá trình bằng cách trình bày Địa chỉ Bộ chọn sách và cho phép người dùng chọn liên hệ:
- (IBAction) sendScoresByEmailWithContact: (id) sender {ABPeoplePickerNavigationController * bộ chọn = [[c alloc] init]; người chọn. peoplePickerDelegate = tự; [self presentViewController: selecter animated: YES completed: nil];}
Phương pháp này cũng đặt đối tượng của nó (Game Session view controller) làm delegate cho bộ chọn. Khi bộ chọn hoàn thành việc chọn một mục từ Address Book, phương thức đại biểu nênContinueAfterSelectingPerson được gọi là:
- (BOOL) peoplePickerNavigationController: (ABPeoplePickerNavigationController *) peoplePicker shouldContinueAfterSelectingPerson: (ABRecordRef) selectedPerson (NSString * oneEmail = nil; ABMultiValueRef emails = ABRecordCopyValue (selectedPerson, kABPersonEmailProperty); nếu (ABMultiValueGetCount (email)> 0) {oneEmail = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex (email, 0);} CFRelease (email); [self dismissViewControllerAnimated: YES hoàn thành: ^ {[self sendScoresByEmailWithAddress: oneEmail];}]; return NO;}
Địa chỉ e-mail của địa chỉ liên hệ được chọn bằng cách sử dụng bộ chọn được trích xuất từ biến selectedPerson sử dụng thuộc tính kABPersonEmailProperty. Lưu ý rằng liên lạc có thể có nhiều e-mail và chỉ sử dụng một trong số đó (chỉ số 0 trong danh sách chiết xuất).
Tiếp theo, Bộ điều khiển xem bộ lọc được loại bỏ bằng cách sử dụng dismissViewControllerAnimated. Đây là phần mát mẻ: Thiết lập tham số hoàn thành phương thức sendScoresByEmailWithAddress làm cho phương thức này được gọi ngay sau khi trình chọn Sách Địa chỉ bị loại bỏ. Quá trình này lần lượt làm cho ứng dụng Mail bật lên, với địa chỉ đã được điền đầy đủ, tất cả đã sẵn sàng để bạn gửi điểm số.
Cuối cùng, nhìn vào hai phương pháp bridge_transfer và CFRelease. Chúng là cần thiết vì API Address Book không được tích hợp với cơ chế quản lý bộ nhớ mới ARC (Automated Referral Counting).
