代码之家  ›  专栏  ›  技术社区  ›  Thanks

我如何在objective-c中编写一个函数,以便在iPhone应用程序中的任何对象上使用?

  •  7
  • Thanks  · 技术社区  · 17 年前

    analyzeThis(anyObject);
    

    我知道方法,但不知道如何创建函数。据我所知,函数在所有方法和类中都是全局工作的,对吗?

    3 回复  |  直到 10 年前
        1
  •  14
  •   Jason Coco superfell    17 年前

    您将以与用C编写的任何其他函数相同的方式执行此操作。因此,如果您在名为的源文件中定义了您的函数 myLibraryFunctions.m ,任何想要使用该函数的人都会包含您定义它的头文件(可能 myLibraryFunctions.h

    void analyzeThis(id anyObject);
    
    void analyzeThis(id anyObject) {
        NSLog(@"Object %p: %zu, %@", anyObject, malloc_size(anyObject), anyObject);
    }
    

    但实际上,你会在函数中写任何你想写的东西。这些函数不必是任何类定义或类似定义的一部分。在这种情况下,它们与C中的完全相同。

        2
  •  1
  •   Rog    17 年前

    您是否正在尝试重新实现NSObject的描述方法?如果您发送NSObject消息,它将返回一个包含自身信息的字符串。您可以覆盖-(NSString*)描述,并向此字符串添加更多信息。

    如果你这样做,你会发现神奇的事情发生了——例如,当你在调试器中打印一个数组对象时,它会迭代数组的所有成员并打印它们的描述。

        3
  •  1
  •   mouviciel    17 年前

    • 编写一个全局函数,就像在C中一样
    • 创建一个NSObject类别,在其中实现一个方法,然后该方法将可用于所有以NSObject为祖先的类。