2011-08-26 27 views

Trả lời

6

Trong Apple WWDC video phần họ đang nói imageNamed bị rò rỉ một lần .. Nhưng không còn làm .. Tôi nhớ nhìn thấy video, nhưng không thể nhớ phần video .. Đó là trong năm 2010 WWDC Tôi nghĩ ..ImageNamed vẫn lưu trữ hình ảnh .. Từ tài liệu của imageNamed ..

Phương pháp này tìm trong hệ thống lưu trữ đối tượng hình ảnh với chỉ định tên và trả về đối tượng đó nếu nó tồn tại. Nếu đối tượng hình ảnh phù hợp chưa có trong bộ nhớ cache, phương thức này sẽ tải hình ảnh dữ liệu từ tệp được chỉ định, lưu trữ nó và sau đó trả về đối tượng kết quả .

Nhưng tôi nghĩ bộ nhớ cache này sẽ bị xóa khi có bất kỳ tình trạng bộ nhớ thấp nào xảy ra..Chỉ cần thông tin của bạn..Tôi là một người hâm mộ cuồng nhiệt của imageNamed và tôi luôn sử dụng nó..Tôi chưa bao giờ gặp phải vấn đề nào về bộ nhớ ..

2

Bạn nên đọc bài viết đến cùng.

Tránh hình ảnh của UIImageNam: Alex Curylo đã viết một bài viết tuyệt vời về các vấn đề với hình ảnh của UIImageNamed: phương pháp tĩnh. Có vẻ như (và trong các thử nghiệm của tôi điều này có vẻ đúng) là hệ điều hành iPhone (phiên bản 2.0 và 2.1 ít nhất) sử dụng bộ đệm ẩn cho hình ảnh được tải từ đĩa bằng imageNamed :, và trong trường hợp bộ nhớ thấp, bộ đệm này không bị xóa lên hoàn toàn (điều này dường như được sửa chữa với phiên bản 2.2, tuy nhiên, nhưng tôi không thể xác nhận).

1

Nó nói rằng cần tránh trong phiên bản 2.0 và 2.1 của SDK. Nó đã hoạt động tốt trong một thời gian dài.

Hãy xem này question

7

Nó lưu trữ hình ảnh và không phát hành nó, cho đến khi nó nhận được cảnh báo bộ nhớ. Tôi không chắc chắn, nhưng tôi đoán nó có thể dễ bị treo ứng dụng, nếu ứng dụng của bạn có rất nhiều hình ảnh (những người lớn)

Đối với tôi, tôi thường sử dụng "imageWithContentsOfFile":

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileName ofType:nil]] 
+1

imageWithContentsOfFile đáng tin cậy hơn nhiều. Tôi chỉ sử dụng imageNamed cho các biểu tượng GUI của mình. – jjxtra