2010-04-18 36 views
5

Tôi muốn viết một hàm độc lập trong Mục tiêu-C; về cơ bản là một chức năng kiểu C, với các cuộc gọi Objective-C trong đó. Ví dụ:Các hàm không phải thành viên trong Mục tiêu-C

NSString* someFunc() 
{ 
NSString* str = [[NSString alloc] init]; 

return str; 
} 

Tôi khai báo hàm trong tệp tiêu đề và xác định trong tệp .m. Tuy nhiên, hàm này dường như không được biên dịch, vì trình liên kết phàn nàn về biểu tượng bị thiếu. Tôi nghĩ rằng có lẽ tôi nên đặt nó trong một tập tin C, nhưng sau đó tất nhiên nó nhổ vào tôi để viết Objective-C Nonsense trong BASI ... C.

Làm gì?

Trả lời

3

Điều này hóa ra là một sai lầm ngớ ngẩn từ tôi. Hàm này đã được định nghĩa trong một tệp .m nhưng tôi đã cố gắng sử dụng nó trong một tệp .mm (C++/Objective-C), vì vậy tự nhiên nó đang tìm kiếm một biểu tượng bị xén - C++. Đặt

#ifdef __cplusplus 
extern "C" { 
#endif 

// Declaration 

#ifdef __cplusplus 
} 
#endif 

trong tệp tiêu đề khắc phục sự cố.

+0

Tôi có cùng một câu hỏi, nhưng rõ ràng là một câu trả lời khác. Tiếp tục tìm kiếm :( –

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