从任何类实例访问实用程序方法?

时间:2014-06-24 22:45:37

标签: ios objective-c

(这可能已在其他地方得到解答,但我不知道要搜索什么来找到它)

我在下面有printErrorMessage方法,我发现它非常有用。我已经将它包含在我的所有课程中,但在复制代码方面有点愚蠢。我可以在单独的Utility类中将其定义为Class方法吗?

如果重要的话,这是在iOS上。

- (void) printErrorMessage: (NSString *) errorString withStatus: (OSStatus) result
{
    char str[20];
    // see if it appears to be a 4-char-code
    *(UInt32 *)(str + 1) = CFSwapInt32HostToBig(result);
    if (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {
        str[0] = str[5] = '\'';
        str[6] = '\0';
    } else
        // no, format it as an integer
        sprintf(str, "%d", (int)result);

    NSLog (@"*** %@ error: %s\n", errorString, str);
}

2 个答案:

答案 0 :(得分:1)

  

我可以在单独的Utility类中将其定义为Class方法吗?

当然可以。这就是类方法的用途。或者,通过类别将其注入现有的类中。

答案 1 :(得分:0)

我用来创建一个静态方法的类:

@interface Utils

+ (void) printErrorMessage: (NSString *) errorString withStatus: (OSStatus) result

@end

现在,您可以使用以下代码从代码中的任何位置调用此方法:

[Utils printErrorMessage:@"string" withStatus:status];