【问题标题】:Objective-C: Extend a default object with constant valuesObjective-C:使用常量值扩展默认对象
【发布时间】:2012-04-26 10:37:40
【问题描述】:

刚刚开始使用 Objective-C,这可能是一个非常基本的问题。在objective-c中,如何在扩展默认对象(比如UIViewController)时定义常量。然后,所有扩展默认对象的对象都将使用常量值。

一种方法是为对象创建类别,类似这样...

@implementation UIViewController (Constants)

+ (NSString *)navigationView {
    return @"navigationView";
}
+ (NSString *)detailView {
    return @"detailView";
}

@end

在类别实现中使用#define 值也可以正常工作吗??? 或者可能有一些更好的方法来做到这一点?

【问题讨论】:

    标签: objective-c constants categories


    【解决方案1】:

    没关系。这将按预期工作,尽管我建议使用更合适的名称(选择器 navigationView 建议您将返回一个实际视图,而不是包含其名称的字符串)。

    如果您愿意,可以使用#defines - 只需在头文件中直接定义它们即可。或者您可以定义字符串常量,例如

    // in the header
    
    extern NSString* const NAVIGATION_VIEW_NAME; // declaration
    
    // in a .m file somewhere
    
    NSString* const NAVIGATION_VIEW_NAME = @"navigationView"; // definition
    

    【讨论】:

    • 我也可以在类别中定义外部变量吗?我将在类别实现文件中的哪里实现它们?
    • @ShiVik:是的,你可以。您可以将定义放在您喜欢的任何位置,尽管在 @implementation ... @end 之外可能是最好的。
    猜你喜欢
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多