2010-02-09 18 views
21

Ứng dụng iPhone của tôi có một vài cài đặt mà người dùng có thể thay đổi thường xuyên. Tôi muốn biết nếu có bất kỳ cách nào được đề xuất để xử lý các cài đặt đó (đọc và lưu chúng). Trên trang web của Apple, tôi chỉ tìm thấy hướng dẫn về tích hợp cài đặt ứng dụng của bạn với ứng dụng Cài đặt (link) nhưng tôi không muốn người dùng thoát khỏi ứng dụng của tôi để anh ấy có thể thay đổi tùy chọn.Lưu cài đặt ứng dụng iPhone trong ứng dụng

Có cơ chế mặc định nào để xử lý các cài đặt đó trong chính ứng dụng hoặc tôi có phải triển khai giải pháp của riêng mình không?

Trả lời

43

Cách tốt nhất và dễ nhất để lưu trữ cài đặt trong iPhone là thông qua NSUserDefaults. Giúp bạn không phải đối phó với hệ thống tệp hoặc plists hoặc bất kỳ thứ gì khác.

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *storedVal = @"This is what you want to save"; 
NSString *key = @"storedVal"; // the key for the data 

[defaults setObject:storedVal forKey:key]; 
[defaults synchronize]; // this method is optional 


// Get the results out 
NSString *results = [defaults stringForKey:key]; 

Đây là những gì Apple nói về các loại đối tượng mà bạn có thể lưu trữ trong Defaults

Một đối tượng mặc định phải là một danh sách bất động sản , nghĩa là một thể hiện của (hoặc cho bộ sưu tập một kết hợp các phiên bản của): NSData, NSString, NSNumber, NSDate, NSArray hoặc NSDictionary. Nếu bạn muốn lưu trữ bất kỳ loại đối tượng nào khác của đối tượng , bạn thường nên lưu trữ đối tượng đó để tạo một phiên bản của NSData.

Có một số lưu ý khác, như khi bạn lưu trữ NSDictionary, giá trị khóa phải là chuỗi.

+2

Có thể lưu trữ các giá trị của các loại khác thì 'NSString' như số hoặc ngày? – RaYell

+0

yup, tôi đã cập nhật câu trả lời của mình – kubi

+0

Cảm ơn bạn đời, đó là loại câu trả lời tôi muốn nghe. – RaYell

0

Đọc số File and Networking Guide từ Kết nối nhà phát triển iPhone. Nó sẽ giải thích cách bạn có được đường dẫn cho các vị trí được xác định trước khác nhau trong hộp cát ứng dụng. Tôi khuyên bạn nên sử dụng một NSDictionary để lưu trữ các sở thích của bạn mà có thể dễ dàng được lưu vào hệ thống tập tin và chuyển đổi thành một plist.

4

Nếu bạn đang tìm kiếm một giao diện người dùng để chỉnh sửa các thiết lập từ bên trong ứng dụng, hãy kiểm tra InAppSettingsKit tại http://www.inappsettingskit.com