Tôi có một ứng dụng có cả mã ARC lẫn mã không phải ARC. Trình biên dịch sẽ bắt khi tôi cố gắng biên dịch mã không phải ARC như ARC. Làm cách nào để tạo ra lỗi/thông báo thời gian biên dịch khi mã ARC của tôi bị biên dịch sai mà không có ARC? Rõ ràng, mã sẽ biên dịch. Nó sẽ bị rò rỉ. Máy phân tích tĩnh sẽ bắt được vấn đề. Tôi thà tìm cách để lại một pragma hoặc xác định trong mã ARC của tôi.Làm thế nào để yêu cầu ARC trong một lớp học?
Sau đây là định nghĩa của Apple trong objc-api.h
:
/* OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc */
#if !defined(OBJC_ARC_UNAVAILABLE)
# if __has_feature(objc_arr)
# define OBJC_ARC_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))
# else
# define OBJC_ARC_UNAVAILABLE
# endif
#endif
My C-vĩ mô-fu còn yếu. Tôi sẽ sử dụng nó như thế nào? Hoặc, có lẽ có một biểu tượng tốt hơn để kiểm tra?
P.S. Tôi hỏi vì tôi xây dựng phần lớn ứng dụng của mình từ các thư viện có thể sử dụng lại. Tôi muốn đảm bảo rằng mỗi tệp được biên dịch theo đúng cách.
Cảm ơn bạn về macro. – adonoho