2012-12-20 43 views
7

Theo kiến ​​thức của tôi, tôi biết rằng chúng tôi sử dụng cờ -fno-objc-arc để tắt ARC cho các tệp KHÔNG hỗ trợ ARC trong một dự án ARC.Làm cách nào để chuyển đổi dự án ARC thành Non-ARC?

Và chúng tôi cũng có thể sử dụng cờ -fobjc-arc để bật ARC cho các tệp hỗ trợ ARC trong dự án Non-ARC.

Nhưng nếu tôi muốn chuyển đổi dự án ARC (không phải tệp cụ thể) thành dự án Non-ARC, thì tôi nên tiếp tục như thế nào?

Bất kỳ ai cũng xin thông báo cho tôi về điều tương tự.

Cảm ơn trước.

Trả lời

4

Bạn phải chèn các cuộc gọi phương thức quản lý bộ nhớ thủ công ở các vị trí thích hợp. Nói chung, mỗi new, alloc, retain, copymutableCopy cuộc gọi sẽ được cân bằng bởi một release hoặc một autorelease (sau này được sử dụng chủ yếu trong trường hợp giá trị trả về), do đó, ví dụ, mã ARC-enabled sau:

MyClass *myObj = [[MyClass alloc] init]; 
[myObj doStuff]; 

OtherClass *otherObj = [[OtherClass alloc] init]; 
return otherObj; 

nên một cái gì đó như thế này dưới MRC:

MyClass *myObj = [[MyClass alloc] init]; 
[myObj doStuff]; 
[myObj release]; 

OtherClass *otherObj = [[OtherClass alloc] init]; 
return [otherObj autorelease]; 

Thông tin thêm về quản lý bộ nhớ trong official documentation.

+0

Bất kỳ lý do nào cho downvote? –

+0

Tôi đã không downvote bạn, nhưng tôi nghĩ rằng họ đang hỏi về việc thay đổi các thiết lập dự án từ ARC kích hoạt để ARC vô hiệu hóa, không phải về chuyển đổi một tập tin cụ thể. –

+0

@JackHumphries Cảm ơn, tôi hiểu - nhưng điều đó thực sự giả định một IDE (Xcode) cụ thể trong trường hợp này, và điều đó không được đề cập trong câu hỏi. –

18

bạn cần phải làm theo bước này

  1. đi đến mục tiêu dự án của bạn - Tìm kiếm - Objective-C tự động Reference Counter

  2. Đặt NO từ YES

Thưởng thức Progaramming !

+0

này giả định việc sử dụng Xcode. –

+0

có & đó là cách ngắn nhất để chuyển đổi ARC thành NON-ARC với tư cách là người hỏi, "nếu tôi muốn chuyển đổi dự án ARC (không phải tệp cụ thể) thành dự án Non-ARC, thì tôi nên tiếp tục như thế nào giống nhau?" –

1

enter image description here

rất đơn giản cách chỉnh sửa -> bí mật -> để Objective-C ARC

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