【问题标题】:Cocoa - defining a global function like NSLogCocoa - 定义一个像 NSLog 这样的全局函数
【发布时间】:2011-10-26 18:07:21
【问题描述】:

查看该帖子和接受的答案:

In XCode, is there a way to disable the timestamps that appear in the debugger console when calling NSLog?

对于该示例或任何其他情况,我如何声明一个全局函数,其中包括我可以直接调用的 Objective-c 调用,例如 NSLog,而不必像 [MyClass myFunction] 那样进行调用?

【问题讨论】:

标签: ios cocoa function


【解决方案1】:

只需使用标准的 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 文件中,则应将其放在 @implementation ... @end 块之外。 (嗯,你可以把你的函数放在里面,但我觉得它很混乱。)就是这样!

【讨论】:

  • 编译时出现此错误:体系结构 i386 的未定义符号:“_MyNSLog”,引用自:MyClass.o ld 中的 -[MyClass doJob:]:未找到体系结构 i386 的符号collect2: ld 返回 1 个退出状态
  • 您忘记在目标中包含.m 文件,或者您的函数实现(在.m 文件中)的名称与.h 文件中的声明不同。跨度>
  • 谢谢你。我一直在努力正确地实现这样的事情。现在一切顺利。
猜你喜欢
  • 2012-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多