2012-08-27 14 views
6

Tôi tin rằng tôi chuyển đổi thành công bởi ứng dụng ARC sử dụng 'Refactor -> Convert to Objective-C ARC' công cụ nhưng chỉ có một mục tiêu dự án của tôi có các thiết lập:đã chuyển đổi ứng dụng của tôi thành ARC nhưng chỉ 1 mục tiêu hiển thị cài đặt ARC là CÓ?

enter image description here

Và nếu tôi có thể tạo bất cứ điều gì bằng cách sử dụng IB nó vẫn tạo ra mã giữ lại/phát hành/dealloc?

Ngoài ra bây giờ tôi đã gặp sự cố mà tôi không làm trước đây vì sử dụng bộ nhớ, vì vậy tôi tự hỏi nếu dự án của tôi đang ở trạng thái chuyển đổi một nửa gây ra cho tôi các vấn đề về bộ nhớ ngẫu nhiên.

Làm cách nào để có được các mục tiêu khác này để sử dụng ARC - hoặc đảm bảo chúng đang sử dụng ARC?

+0

Đặt cờ cho các mục tiêu này thành 'YES' và xem liệu nó có gây ra nhiều tiếng la hét từ trình biên dịch hay không. Nếu không, bạn đã hoàn thành :) – dasblinkenlight

+0

Không có nơi nào để tôi đặt cờ thành CÓ, tùy chọn đó không hiển thị trong cài đặt bản dựng cho các mục tiêu đó – Slee

+0

khi bạn xem tùy chọn xây dựng cho "Trình biên dịch cho C/C++/Objective-C", nó sẽ nói "Trình biên dịch mặc định (Trình biên dịch LLVM của Apple ...)" Nếu thiết lập của nó thành "LLVM GCC 4.2" thì "Đếm tham chiếu tự động" sẽ không là một lựa chọn. – nont

Trả lời

4

Thay đổi cờ theo cách thủ công để nói CÓ. Cũng muốn kiểm tra và đảm bảo rằng không có tệp nào có cờ trình biên dịch "-fno-objc-arc" được đặt. (Tôi đã chạy vào các dự án đã được chuyển đổi một nửa theo cách này.)

Nếu bạn vẫn gặp sự cố về bộ nhớ, hãy chạy Công cụ Rò rỉ. Ngay cả với ARC, bạn vẫn có thể bị rò rỉ bộ nhớ như retain cycles nơi các mối quan hệ cha-con giữ lại lẫn nhau. Trong trường hợp này, bạn cần sử dụng con trỏ yếu.

+0

di chuyển tân binh - Tôi đã chuyển đổi 'Tất cả' và không chỉ cài đặt 'Cơ bản' cho các Mục tiêu khác vì một số lý do – Slee

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