2009-12-04 20 views
5

Tôi có ứng dụng dành cho iPhone. Dường như nó chạy tốt. Khi tôi kết nối với một iphone được cấp phép tới Xcode và chạy Ứng dụng, nhật ký bảng điều khiển trong cửa sổ Organizer, luôn phàn nàn về lỗi Phân đoạn khi thoát ứng dụng bằng phím chủ.Tín hiệu 11, lỗi phân đoạn trên iphone Thoát ứng dụng

Có ai khác nhìn thấy điều này và bạn có ý tưởng về vấn đề có thể là gì không? Tôi sử dụng một chủ đề để tải các trang web trong backround, nhưng tôi dừng thread khi thoát.

Ứng dụng của tôi lưu một số thông tin liên tục. Khi tôi sử dụng chức năng xây dựng và phân tích, tôi nhận được một số 2 rò rỉ bộ nhớ tiềm năng, nhưng trong mỗi trường hợp tôi phân bổ một đối tượng và giữ nó trong một mảng.

Mọi ý tưởng hoặc điều này là bình thường?

+1

NSZombieEnabled thực sự đã giúp tôi tìm ra sự cố mà tôi không thể tìm thấy trước đây. – BastiBen

Trả lời

7

Thử chạy ứng dụng của bạn với NSZombieEnabled. Điều này sẽ cho bạn biết nếu bạn đang phát hành bất kỳ đối tượng nào. Để bật zombie, hãy làm như sau:

  1. Choose Project > Edit Active Executable to open the executable Info window.
  2. Click Arguments.
  3. Click the add (+) button in the “Variables to be set in the environment” section.
  4. Enter NSZombieEnabled in the Name column and YES in the Value column.
  5. Make sure that the checkmark forthe NSZombieEnabled entry is selected.
+0

Với NSZombieEnabled, tôi nên đặt điểm ngắt để bắt vấn đề ở đâu? Với cài đặt này, chương trình của tôi sẽ kết thúc sớm với thông báo: Tự động phát hành CFString: tin nhắn được gửi đến phiên bản được phân phối. Tôi muốn ngắt khi thư được gửi đến chuỗi được phân phối, vì vậy tôi có thể tìm ra chuỗi nào. Cảm ơn, Gerry – Gerry

+0

Khi kích hoạt Zombies. Lỗi mã của tôi bên trong dòng [phân tích cú pháp phân tích cú pháp] từ mã bên dưới. Bit này xảy ra trên một NSThread. Bất kỳ ý tưởng nào về điều gì sẽ gây ra vấn đề. Thói quen Foundarar của tôi không phải là hit. Cảm ơn, Gerry (mã trong nhận xét tiếp theo) – Gerry

+0

NSURL * nsurl = [URL NSURLVới chuỗi: truy vấn]; \t Yêu cầu NSURLRequest * = [yêu cầu NSURLRequestWithURL: nsurl]; \t \t dữ liệu = [NSURLConnection sendSynchronousRequest: request returnResponse: & response error: & error]; \t \t NSXMLParser * parser = [[NSXMLParser alloc] initWithData: data]; \t [bộ phân tích cú phápDelegate: self]; \t [bộ phân tích cú phápShouldProcessNamespaces: NO]; \t [bộ phân tích cú phápShouldReportNamespacePrefixes: NO]; \t [bộ phân tích cú phápShouldResolveExternalTính năng: NO]; \t errorStr = nil; \t if ([parser parse] == CÓ) // stuff – Gerry

0

Khi thoát ứng dụng của bạn có thể phát hành quá mức một đối tượng, hãy thử đổ từng đối tượng trước khi phát hành hoặc thực hiện một số gỡ lỗi trong phương thức dealloc.

0

Có lẽ bạn đang phát hành một số đối tượng nhiều lần hơn số lần giữ lại. Nhận xét các cuộc gọi -release trong các phương thức dealloc của bạn (hoặc ở nơi khác) cho đến khi bạn tìm thấy thủ phạm.

Sau đó, bỏ ghi chú, gọi điện thoại và tìm nơi khác trong mã của bạn nơi bạn đang cố gắng phát hành quá mức đối tượng đó.

Nếu bạn đang sử dụng các phương pháp tiện lợi, ví dụ: (ví dụ [NSString stringWithFormat:@"..."]) thay vì phương pháp alloc-init (ví dụ: [[NSString alloc] initWithFormat:@"..."]), đối tượng tiện lợi kết quả được tự động phát hành và không được giải phóng thủ công.

0

Vấn đề của tôi là uididfaker và locationholic từ cydia và sau khi gỡ cài đặt chúng xcode chạy trên iphone của tôi tốt.

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