我記得在我的學習階段的某個特定時間,實現了iOS中'全局'變量的概念,可以在任何類的整個應用程序。我通過Matt Galloway閱讀了很多很好的教程,例如這個。關於iOS中全局變量的替代方法(使用類方法和變量)
我剛剛完成了我終於實現的代碼,我意識到我已經以非常不同的方式完成了這些教程。我想知道我收養
我的.h文件是類似的方法可能帶來的弊病/優點:
@interface GlobalVariables : NSObject
+(void)setUsername:(NSString *)string;
+(NSString *)getUsername;
@end
和我的M檔是:
static NSString *name;
@implementation GlobalVariables
+(void)setUsername:(NSString *)string{
name = string;
}
+(NSString *)getUsername{
return name;
}
@end
我設置全球變量在任何其他類像
[GlobalVariables setUsername:@"user1"];
並得到它在其他類
self.nameLabel.text = [GlobalVariables getUsername];
對於我所做的是否有任何錯誤/正確?任何意見的正確方向將不勝感激。謝謝:)
如果你要實現的東西,你在這裏描述,你會(IMO)更好關閉使你的數據成爲一個單例的實例變量(通常包括單個靜態指向該單例)。這個觀點被說明了,你的方法沒有任何問題。 – mah
如果您製作了應用程序代理的這些屬性,該怎麼辦?這可以與@mah建議的單例實例完美協作。 –
@mah,我想我的方法的推理是,讓他們作爲實例變量會導致每次需要訪問變量時都需要實例化類。如果我的方法本身沒有任何問題,那麼我認爲緊湊性可能是我當時看到的一個優點:)感謝您的意見! – Sachin