Tôi đang tạo một ứng dụng mà tôi cần lưu trữ một số thông tin mà người dùng đã cung cấp. Tôi cố gắng sử dụng tệp .plist để lưu trữ thông tin, tôi đã tìm thấy thông tin này:iPhone đọc/ghi tập tin .plist
NSString *filePath = @"/Users/Denis/Documents/Xcode/iPhone/MLBB/data.plist";
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict setValue:@"Man" forKey:@"Gender"];
[plistDict writeToFile:filePath atomically: YES];
Vấn đề là ứng dụng sẽ chỉ hoạt động miễn là tôi đang thử nghiệm trong trình mô phỏng iPhone. Tôi đã thử điều này Changing Data in a Plist nhưng không may mắn. Tôi cũng đã đọc một cái gì đó về điều đó tôi cần phải thêm nó vào gói của tôi, nhưng làm thế nào?
Code mới:
- (IBAction)segmentControlChanged{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];
if (Gender.selectedSegmentIndex == 0) {
[plistDict setObject:@"Man" forKey:@"Gender"];
[plistDict writeToFile:plistLocation atomically: YES];
}
else
{
[plistDict setObject:@"Women" forKey:@"Gender"];
[plistDict writeToFile:plistLocation atomically: YES];
}
}
Không, tôi đã không cố gắng để chạy nó trên một thiết bị "thực", nhưng tôi không nghĩ rằng nó sẽ chạy, bởi vì thư mục không tồn tại trên một thiết bị "thực". Tôi biết rằng họ chỉ có thể đọc/ghi từ thư mục riêng của họ, nhưng làm thế nào để tôi nói với Xcode sử dụng tệp có tên data.plist trong thư mục ứng dụng thay vì/Users/Denis/Documents/Xcode/iPhone/MLBB/data. plist? Tôi cảm thấy như n00b :-) – Deni
Liên kết mà tôi đã đăng cho bạn thấy cách lấy thư mục tài liệu dưới dạng chuỗi. Sử dụng stringByAppendingString để thêm tên plist của bạn vào cuối, sau đó sử dụng mã bạn chỉ định. Đó là tất cả :) – Nick
Xin lỗi, nhưng tôi không biết ý bạn là gì. Tôi đã viết NSString * filePath = [NSHomeDirectory() stringByAppendingPathComponent: @ "Documents"]; Nhưng tôi không nghĩ đó là ý của bạn. Bạn có thể vui lòng chỉnh sửa mã ở trên để nó hoạt động và khi viết nó ở đây. Tôi mới vào Xcode và bây giờ tôi biết làm thế nào nó cảm thấy là một n00b :-) – Deni