Tek ihtiyacınız olan düz eski C genel değişkenlerini kullanmaktır.
İlk olarak, main
işlevi önce senin main.m
bir değişken tanımlamak:
#import <...>
// Your global variable definition.
type variable;
int main() {
...
İkinci, diğer kaynak dosyaları bu konuda bildirmek gerekir. aksi takdirde bunun bir tanım olur sen beyanı bloğunda değişkene bir değer atanamıyor
// .h file
// Declaration of your variable.
extern type variable;
Not: Eğer sizin değişken ihtiyaç .m
dosyaları bazı .h
dosyasında beyan ve tüm bu dosyayı içe gerekir değişkeni ve aynı adın birden çok tanımından şikayetçi olan linker hatası ile biter. Her bir değişken (Deklarasyonu bu değişken bir yerde var olduğunu söylüyor) defalarca bildirilmiş olabilir, ama (tanım aslında bu değişken için bellek oluşturur) sadece bir kez tanımlamıştır:
Açıkça ifade etmek gerekirse.
Ancak, global değişkenler kötü bir kodlama uygulamasıdır, çünkü bunların değerleri beklenmedik biçimde herhangi bir dosyada değiştirilebildiğinden, hata ayıklama hatalarıyla karşılaşabilirsiniz. Örneğin, Singleton desenini kullanarak global değişkenlerden kaçınabilirsiniz.
Imo, küresel değişkenler aslında Objective C anlamda bir sürü yapmak, eğilim verilen:
izleyin bu bağlantıyı sabitleri ve statik değişkenler hakkında daha fazla bilgi edinmek için singletons, özellikle denetleyicileri görüntüleyin. Bu durumda değişkenlerden daha çok sabitler gibi davranırlar. – devios1Aslında, bekarlar, global bir değişken kullanır - paylaşılan örnek - böylece her üye global hale gelir; Sadece bir tür küreselliği başka biriyle değiştiriyorsun. – Cristik