2009-08-09 21 views
13

Tôi chỉ tạo dự án với mẫu Ứng dụng tiện ích. Mẫu này có rò rỉ bộ nhớ riêng khi tôi nhấn "nút thông tin" để lật chế độ xem.Mẫu ứng dụng tiện ích SDK SDK đã bị rò rỉ

Bất kỳ ai cũng biết cách khắc phục sự cố rò rỉ này ??? Tôi chỉ tạo một dự án mới từ mẫu này, tôi không thêm đối tượng mới.

+0

Bạn đang sử dụng phiên bản SDK nào? – Tim

+0

Tôi đang sử dụng SDK 3.0 với Xcode 3.2 trên Snow Leopard –

Trả lời

13

Điều đó có thể bị rò rỉ hoặc có thể không bị rò rỉ. Nếu bạn đã thêm backtrace của phân bổ, điều đó sẽ hữu ích.

Nhiều khả năng không phải là rò rỉ, nhưng một số thông tin sổ sách kế toán đang được lưu trữ bởi dyld bị rò rỉ/Công cụ mất dấu vết.

Vì nó là 128 byte và tôi đoán chỉ có một trong số chúng, tôi sẽ khuyến khích bạn gửi một lỗi qua http://bugreport.apple.com và sau đó quên nó ngay bây giờ, trong trường hợp không chắc rằng nó thực sự là một bị rò rỉ, bạn sẽ không kém phần chắc chắn để có thể khắc phục nó từ bên trong ứng dụng của bạn.

+0

Cảm ơn bạn đã trả lời! –

0

Trong mẫu tiện ích SDK hiện tại không bị rò rỉ. Làm thế nào bạn nhận được ấn tượng có một rò rỉ trong mẫu? Nó chỉ cấp phát bộ nhớ cần thiết cho các khung nhìn.

Rò rỉ là bộ nhớ mà không có con trỏ nào tồn tại và không thể giải phóng được nữa.

+0

Xin chào, tôi đang tạo một dự án mới từ mẫu Ứng dụng Tiện ích và chạy nó với Công cụ và hiển thị hai lần rò rỉ này. Tôi nhận được: Đối tượng bị rò rỉ: Malloc 128 byte Kích thước: 128 byte Thư viện có trách nhiệm: CoreGraphics Khung có trách nhiệm: open_handle_to_dylib_path –

5

Got rò rỉ làm điều này:

XCode 3.2--

File, New Project, Navigation dựa trên ứng dụng
Cho nó một cái tên
Build Nó
Run Với Công cụ Performance - > Rò rỉ

Khi công cụ xuất hiện, hãy nhấp vào Leaks (bạn có thể phải nhấp vào biểu tượng nhỏ ở phía dưới tha t trông giống như bốn hộp trong một hộp)

Khoảng 7 giây sau khi chạy bạn sẽ thấy rò rỉ: - Malloc 128 Bytes, một số địa chỉ, 128 Bytes, CoreGraphics, open_handle_to_dylib_path

tôi truy tìm nó để mã này trong appdelegate:

//APPLE CODE 
- (void)applicationDidFinishLaunching:(UIApplication *)application {  

    // Override point for customization after app launch  

    [window addSubview:[navigationController view]]; 
    [window makeKeyAndVisible]; 
} 

I bùng nổ các navigationController (đã làm một alloc và phát hành riêng lẻ) và nhận xét ra các addSubview: hành động - không có rò rỉ - và, rõ ràng, màn hình trống rỗng.

Cho đến khi tôi thử addSubview, sự cố đã xảy ra. Vì có rất nhiều cách để thêm một subview, tôi đã thử những người. Mỗi kết quả bị rò rỉ hoặc màn hình trống.

+0

Rò rỉ tương tự trong OS 3.1. – inked

1

Rò rỉ cũng đã gắn cờ open_handle_to_dylib_path trong CoreGraphics cho tôi; chắc chắn có điều gì đó được gắn cờ ở đây. Vì nó chỉ là 256 byte ở mức nặng nhất của nó, tôi đã sa thải một báo cáo lỗi cho Apple và gọi nó là xong. Sau đó, bạn có thể đặt quy tắc trong cấu hình của Rò rỉ để bỏ qua báo cáo.

Như bbum đã chỉ ra, có thể có voodoo nghiêm trọng trong công việc. Tôi nghiêm túc nghi ngờ Apple sẽ cho phép các khuôn khổ bị rò rỉ đi qua QA - đặc biệt là vì nó dễ tái tạo.

5

Hy vọng điều này sẽ hữu ích.

Từ: http://www.cocos2d-iphone.org/forum/topic/2460

". Các mô phỏng có lỗi liên quan đến độc thân và llvm thứ mà được báo cáo không đúng bằng Instruments Luôn kiểm tra rò rỉ của bạn trên thiết bị riêng của mình"

2

Tôi đã thử nó trên một liên lạc ipod thực sự. Không có rò rỉ nào được báo cáo. Có lẽ chỉ là một điều giả lập ...

0

Tôi đã có cùng một vấn đề, nhưng đã có thể hiểu tại sao nó xảy ra. Và tôi đã đưa ra một thông tin ngắn gọn về vấn đề này trong số article

Có thể hữu ích cho bạn.

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