Mặc dù có tệp Contents.json (xem bên dưới) được liên kết với từng mục trong xcassets chứa tên tệp của hình ảnh của mục đó, có vẻ như không thể truy cập được ở cấp hệ thống tệp. Tất cả các hình ảnh được đặt trong một thư mục hệ thống tập tin duy nhất khi biên dịch. Tệp json được tạo tự động và không được chỉnh sửa, nhưng nó cung cấp một mẫu cho một giải pháp thay thế.
Đặt tên cho từng tệp có hậu tố nhất quán để khớp với thành ngữ, quy mô và loại phụ tương ứng xuất hiện trong tệp json.Điều này yêu cầu công việc thủ công bằng cách chọn tùy chọn 'Hiển thị trong Trình tìm kiếm' cho từng nội dung và đổi tên mỗi tệp, nhưng sau khi hoàn thành, bạn có thể sử dụng pathForResource kết hợp với hàm để thêm hậu tố thích hợp vào tên nội dung cơ sở để truy xuất một cách phù hợp- hình ảnh có kích thước.
Mẫu mã để lấy đường dẫn:
NSString *imageName = @"Add to Cart";
NSString *imageSuffix = [self someMethodThatDeterminesSuffix]; // Example: "-iphone-2x-retina4"
NSString *imagePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@%@", imageName, imageSuffix] ofType:@"png"];
Ví dụ Contents.json tập tin cho nội dung hình ảnh "Thêm vào giỏ hàng":
{
"images" : [
{
"idiom" : "iphone",
"scale" : "1x",
"filename" : "Add to Cart-iphone-1x.png"
},
{
"idiom" : "iphone",
"scale" : "2x",
"filename" : "Add to Cart-iphone-2x.png"
},
{
"idiom" : "iphone",
"filename" : "Add to Cart-iphone-2x-retina4.png",
"subtype" : "retina4",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Nguồn
2014-03-27 16:27:21
Có cùng vấn đề! – vilanovi
Tôi cũng cần các đường dẫn thực tế cho các hình ảnh vì tôi không muốn sử dụng imageNamed (bộ nhớ đệm bị hỏng) và hóa ra rằng Catalogue danh mục cũng bị hỏng mà không có quyền truy cập có lập trình. – Alper
@MobileVet bạn đã bao giờ tìm thấy một giải pháp cho điều này? – Keab42