Tất cả những gì bạn cần là sử dụng các biến toàn cầu C cũ thuần túy.
Đầu tiên, xác định một biến trong main.m
của bạn, trước khi chức năng main
của bạn:
#import <...>
// Your global variable definition.
type variable;
int main() {
...
Thứ hai, bạn cần phải cho file nguồn khác biết về nó. Bạn cần phải khai báo nó trong một số .h
file và import file đó trong tất cả các .m
file bạn cần biến của bạn trong:
// .h file
// Declaration of your variable.
extern type variable;
Lưu ý rằng bạn không thể gán giá trị cho biến trong khối tuyên bố, nếu không nó sẽ trở thành một định nghĩa về biến và bạn kết thúc với lỗi trình liên kết khiếu nại trên nhiều định nghĩa có cùng tên.
Để làm cho mọi việc rõ ràng: mỗi biến có thể tuyên bố nhiều lần (Tuyên bố nói rằng biến này tồn tại ở đâu đó), nhưng định nghĩa chỉ một lần (định nghĩa thực sự tạo ra bộ nhớ cho biến đó).
Nhưng hãy cẩn thận, biến toàn cục là một thực hành mã hóa xấu, bởi vì giá trị của chúng có thể được thay đổi bất ngờ trong bất kỳ các tập tin, vì vậy bạn có thể gặp khó lỗi debug. Bạn có thể tránh các biến toàn cầu bằng cách sử dụng mẫu Singleton, ví dụ.
Imo, các biến toàn cầu thực sự làm cho rất nhiều ý nghĩa trong Objective C, do xu hướng cho rất nhiều thứ để tự nhiên được những người độc thân, đặc biệt là các bộ điều khiển xem. Trong trường hợp này, chúng hoạt động giống như hằng số hơn là các biến. – devios1
Thực tế, người dùng sử dụng biến toàn cục - cá thể được chia sẻ -, do đó làm cho mọi thành viên toàn cầu; bạn chỉ thay thế một loại toàn cầu với một loại khác. – Cristik