אשמח לקבל הסבר על שימוש במשתנים גלובליים בObj

guyddor

New member
אשמח לקבל הסבר על שימוש במשתנים גלובליים בObj

תודה!
 

guyiphone

New member
אני שומע משתנים גלובליים ונעשה לי חלושס ....

ואני מניח שמי שעסק בפיתוח בשפת C++/C (שהיא unmanaged) ודומיה יודע על מה אני מדבר... לשאלתך, ישנם הרבה אפשרויות למימוש יעיל (יחסית) של משתנים גלובליים והנה שתים מהן: 1. יצר קובץ h עם כל הקבועים (שאינם משתנים) בצורה של DEFINE וייבא אותו בכל המחלקות בפרויקט שלך - מתאים בד"כ ל-Enums ולקבועי מערכת (משהו בסגנון pch - PreCompiled Header). 2. יצר Singleton (מחלקה סטטית אם תרצה), ובו תוכל לממש את ה- setters וה- Getters שלך עם properties או ידנית - וייבא אותו בכל המקומות שבהם אתה צריך את המשתנים. אם שתי השיטות לא מתאימות לך "תרים דגל" ... בהצלחה !
 

BinKi

New member
בהמשך ל-Singleton

כאשר יוצרים פרוייקט חדש נוצרת המחלקה: ProjectNameAppDelegate שניתן לגשת אליה מכל מחלקה אחרת ע"י - יבוא קובץ ה-H
#import "ProjectNameAppDelegate.h"​
ולאחר מכן לקבל את הנתונים ע"י:
ProjectNameAppDelegate *delegate = (ProjectNameAppDelegate *) [[UIApplication sharedApplication] delegate]; delegate.sharedInt = 54; delegate.sharedString = @"Hello";​
לכל משתנה יש לזכור ליצור Property. אפשר להשתמש ב-AppDelegate גם ליצורת פונקציות משותפות.
 

guyiphone

New member
שיטה טובה אבל ...

קודם כל, הגיע הזמן שנכתוב כאן קצת קוד ... תודה לך ! תראה, בפיתוח אנחנו דוגלים בכתיבת קוד שהוא Reusable כלומר ניתן לשימוש חוזר (לא באותו הפרויקט אלא בפרויקטים אחרים). במקרה הזה לא רק שאתה מוגבל באפשרויות העברת הנתונים שלך, אלא אתה גם מעמיס משתנים על ה Delegate הראשי שלך. מה גם שלא תוכל לגרור אותו לפרויקטים אחרים (ובטח לא לשלוט בו ברמת צריכת הזיכרון). אני אפרסם מאמר (אני מקווה מקרוב מאוד) על SingleTones יעילים. שיהיה יום מוצלח !
 
למעלה