2012-04-01 39 views

Trả lời

7

NSUserDefaults dành cho những thứ đòi hỏi sự kiên trì, tức là bạn đang có kế hoạch lưu trữ chúng giữa các lần khởi động ứng dụng. Đối với các biến tạm thời, hãy xem xét sử dụng một ví dụ singleton singleton, chẳng hạn như lớp MySingleton được minh họa trong câu trả lời này: https://stackoverflow.com/a/145164/108574.

Khi bạn có lớp học này, hãy đặt các biến tạm thời của bạn là property của lớp này để dễ dàng truy cập. Và khi bạn cần truy cập vào nó, chỉ cần gọi [MySingleton sharedSingleton].variable.

Ngoài ra, hãy kiểm tra tại đây: http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html để biết thêm thông tin.

2

Tùy thuộc vào nhu cầu chính xác bạn có thể tìm hiểu và sử dụng mẫu thiết kế Singleton để tạo một loại đối tượng cơ sở dữ liệu có thể được chia sẻ trên tất cả các chế độ xem. Đọc về iOS Singletons here.

Đây là cách tôi đã hoàn thành những gì bạn đang tìm kiếm trong Ứng dụng iOS của tôi.

10

Nói chung, bạn muốn tránh sử dụng hình cầu. Nếu bạn cần truy cập vào dữ liệu phải được chia sẻ, có hai cách tiếp cận phổ biến.

Đặt các giá trị trong AppDelegate của bạn.

Nếu bạn chỉ có một hoặc hai giá trị được chia sẻ, AppDelegate là cách dễ dàng để đặt nội dung được chia sẻ.

Các appdelegate có thể được truy cập từ bộ điều khiển của bạn như vậy:

FooApp* appDelegate = (FooApp*)[[UIApplication sharedApplication] delegate]; 

đâu FooApp là tên của ứng dụng Lớp của bạn.

Tạo một lớp đơn.

gây ô nhiễm appdelegate của bạn với rất nhiều giá trị chung là không lý tưởng, và/hoặc nếu bạn muốn những giá trị này kéo dài từ phiên họp, tạo ra một lớp Singleton được hỗ trợ bởi NSUserDefaults là một cách khác để chia sẻ các giá trị trên trường hợp.

Các vấn đề liên quan