Ios Cocoa-定义像NSLog这样的全局函数
请参阅该帖子和公认的答案:Ios Cocoa-定义像NSLog这样的全局函数,ios,cocoa,function,Ios,Cocoa,Function,请参阅该帖子和公认的答案: 在那个例子或任何其他情况下,我如何声明一个全局函数,其中包括我可以直接调用的objective-c调用,比如NSLog,而不必像[MyClass myFunction]那样调用?只需使用标准c语法;记住,Objective-C是C的严格超集 在.h文件中,编写声明 extern return_type function_name(argument_type1 argument_name1,argument_type2 argument_name 2); 并在.m文
在那个例子或任何其他情况下,我如何声明一个全局函数,其中包括我可以直接调用的objective-c调用,比如NSLog,而不必像[MyClass myFunction]那样调用?只需使用标准c语法;记住,Objective-C是C的严格超集 在
.h
文件中,编写声明
extern return_type function_name(argument_type1 argument_name1,argument_type2 argument_name 2);
并在.m
文件(或.c
文件或任何文件)中编写实现
return_type function_name(argument_type1 argument_name1,argument_type2 argument_name 2){
....
}
如果它位于
.m
文件中,则应将其置于@实现之外@结束
块。(好吧,你可以把你的函数放在里面,但我觉得很困惑。)就是这样 我在编译时可能重复此错误:架构i386的未定义符号:“\u MyNSLog”,引用自MyClass中的:-[MyClass doJob:]。o ld:symbol未找到架构i386 collect2:ld返回1退出状态您忘记在目标或函数实现中包含.m
文件(在.m
文件中)有一个与.h
文件中声明不同的名称。谢谢你。我一直在努力获得这样的正确实现。现在一切都开始了。