Referencing a static NSString * const from another class

前端 未结 3 500
闹比i
闹比i 2020-12-10 01:27

In class A I have this:

static NSString * const kMyConstant = @\"my constant string\";

How can I reference this from class B?

3条回答
  •  一整个雨季
    2020-12-10 02:01

    You need to remove the static -- that specifies that kMyConstant is only visible in files linked with this one.

    Then, declare (as opposed to defining) the string in Class A's header:

    extern NSString * const kMyConstant;
    

    and import that header wherever you want to use this string. The extern declaration says that there exists an NSString * const by the name kMyConstant whose storage is created in some other place.

    If the static definition is already in the header, you need to move it elsewhere (usually the implementation file). Things can only be defined once, and if you try to import a file which defines a variable, you'll get a linker error.

提交回复
热议问题