2011-10-21 21 views
5

Tôi đang làm việc trên một trò chơi và tất cả tiến trình mà người dùng thực hiện sẽ được lưu với NSUserDefaults. Nó là một ý tưởng tốt hay xấu ???Lưu tiến trình trò chơi với NSUserDefault: Ý tưởng hay hay?

Khả năng mất trò chơi được lưu là gì? Có cách nào tốt hơn để làm điều này?

Khi người dùng đồng bộ hóa thiết bị, iTunes sẽ sao lưu NSUserDefaults? Vì vậy, trong trường hợp người dùng thay đổi thiết bị của mình, anh ấy sẽ không mất tiến bộ, anh ấy chỉ phải đồng bộ hóa thiết bị với iTunes? Làm thế nào an toàn là nó?

Thành tích GameCenter cũng sẽ được lưu với NSUserDefaults, trong trường hợp người dùng không có kết nối internet vào thời điểm đó.

Vâng, tôi chỉ muốn biết ý kiến ​​/ kinh nghiệm của bạn. Tất cả các mã đều hoạt động hoàn hảo, nhưng tôi sợ người chơi có thể mất đi tiến bộ của mình vì một lý do nào đó.

Nếu có ai muốn biết thêm chi tiết về mã được miễn phí để hỏi, tôi có thể đăng nó ở đây.

Cảm ơn!

+1

1 tôi cũng đã tò mò về vấn đề này và câu hỏi của bạn đã giúp tôi phân bổ, mặc dù tôi đã kiểm tra và hài lòng với 'NSUserDefault', nhưng sự tò mò dẫn tôi đến ngân hàng trên cơ sở dữ liệu .. Bây giờ không còn tò mò nữa, cảm ơn câu hỏi này – rptwsthi

Trả lời

4

NSUserDefaults được đồng bộ hóa với iTunes nếu người dùng đồng bộ hóa ứng dụng. Dữ liệu được an toàn miễn là người dùng không xóa trò chơi.

Nếu bạn cần bảo vệ dữ liệu ngay cả sau khi người dùng xóa các trò chơi, bạn có thể xem xét lưu dữ liệu ở một nơi khác (chẳng hạn, Dropbox, máy chủ riêng, vv)

+0

Cảm ơn bạn đã trả lời của bạn. Tôi đã suy nghĩ về lưu trữ trên máy chủ của riêng tôi, sau đó nó sẽ có thể đồng bộ hóa trò chơi trên nhiều thiết bị, ví dụ nếu người dùng có iPhone và iPad. Bất kỳ ý tưởng làm thế nào để làm điều này, xuất khẩu NSUserDefaults đến một máy chủ? Không có mã, chỉ cần một cái gì đó mà tôi có thể nghiên cứu sẽ là tuyệt vời. – tomDev

+2

Bạn có thể sử dụng iCloud cho bản sao lưu đó, chỉ cần nhớ iCloud tương đương với NSUserDefaults được giới hạn giống như 64 kb – EmilioPelaez

+1

Nối tiếp thành từ điển JSON và 'POST' nó vào tập lệnh trên máy chủ của bạn cùng với tên người dùng (nếu bạn có tài khoản). Khi khởi động, 'GET' từ cùng một URL và trả về một đối tượng từ điển JSON mà bạn deserialize thành' NSDictionary' và nhập vào 'NSUserDefaults' theo cách thủ công. Chỉ cần cảnh giác với các trường hợp cạnh, ví dụ: khi cả hai thiết bị của người dùng đều có trò chơi đang chạy và một trong số đó cập nhật cài đặt .. bạn muốn làm gì? Đồng bộ liên tục? Ghi đè với bất kỳ cài đặt nào hiện tại có? – darvids0n

9

Theo ý kiến ​​của tôi, NSUserDefaults hoàn toàn an toàn. Các nội dung thậm chí được duy trì sau khi cập nhật phiên bản của ứng dụng.

+0

câu trả lời đơn giản và đúng –

+0

+ 1 @ ZakyGerman là hoàn toàn đúng – rptwsthi

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