嗨,我有这个头文件:
#import <Foundation/Foundation.h> @interface PCConstants : NSObject extern Nsstring *const kPCUserProfileKey; extern Nsstring *const kPCUserProfileNameKey; extern Nsstring *const kPCUserProfileFirstNameKey; extern Nsstring *const kPCUserProfileLocationKey; extern Nsstring *const kPCUserProfileGenderKey; extern Nsstring *const kPCUserProfileBirthDayKey; extern Nsstring *const kPCUserProfileInterestedInKey; @end
执行:
#import "PCConstants.h" @implementation PCConstants Nsstring *const kPCUserProfileKey = @"profile"; Nsstring *const kPCUserProfileNameKey = @"name"; Nsstring *const kPCUserProfileFirstNameKey = @"firstname"; Nsstring *const kPCUserProfileLocationKey = @"location"; Nsstring *const kPCUserProfileGenderKey = @"gender"; Nsstring *const kPCUserProfileBirthDayKey = @"birthday"; Nsstring *const kPCUserProfileInterestedInKey = @"interestedIn"; @end
当我在.pch文件中导入头文件时,我可以在任何地方访问常量.但我试着了解发生了什么.
我从不为此对象分配init,因此它们不能是实例常量.所以常量必须是“类对象常量对吗?但我认为类对象不能包含数据.
谁能解释一下?
解决方法
那些外部变量是app级全局变量.它们没有作用于类,它们不限于类的实例.
Objective-C不支持实例或类级别全局变量.
如果需要类级别常量,则需要定义类方法以访问它们.如果需要实例级常量,则需要定义实例方法或只读属性才能访问它们.