בעיה עם ירושת מחרוזות ממחלה מסוג UIViewController

2010-07-17 07:15:48
˄
0
˅

היי

יש לי שתי מחלקות, נקרא להן classA ו-classB. שתיהן subclass של UIViewController. במחלקה classA יש לי מחרוזת שמקבלת את הערך שלה לאחר [self presentModalViewController:viewController ... אני רוצה להשתמש בערך שלה במחלקה classB להלן הקוד:

ClassA.h:

@class ClassB;
@interface ClassA : UIViewController {
   ClassB *classB;
   NSString stringA;
}
@property (nonatomic, retain) ClassB *classB;
@property (nonatomic, retain) NSString *stringA;

@end

ClassA.m:

stringA = [NSString stringWithString:webView.request.URL.absoluteString];

ClassB.h:

@class ClassA;
@interface ClassA : UIViewController {
   ClassB *classA;
   NSString stringB;
}
@property (nonatomic, retain) ClassB *classA;
@property (nonatomic, retain) NSString *stringB;

@end

ClassB.m:

- (void)viewWillAppear:(BOOL)animated { 
self.stringB = classA.stringA;
}

כמובן ביצעתי #import במחלקות

משום מה אני מקבל (null) במחרוזת במחלקה classB.

אשמח לעזרה

תודה!

1 תשובה

2010-07-17 13:01:57
˄
0
˅

שני דברים:

א. מדוע ב-ClassB.m המשתנה classA הוא הצבעה מסוג Class B? האם זה בכוונה? כמו כן, NSString בדרך כלל אמור להיות מוגדר כהצבעה (הבעיה חוזרת בשתי המחקלות), כלומר:

NSString *stringB

ב. נראה כאילו הערך של classA הוא פרטי ולכן לא ניתן לגשת אליו מבחוץ. תנסה לתת לו הרשאת קריאה:

@property (retain, readonly)NSString *stringA;

או הרשאת קריאה וכתיבה:

@property (retain, readwrite)NSString *stringA;
סליחה, הייתה טעות בקוד שכתבתי, הנה הקוד המתוקן: ClassB.h @class ClassA; @interface ClassA : UIViewController { ClassA *classA; NSString *stringB; } @property (nonatomic, retain) ClassB *classA; @property (nonatomic, retain) NSString *stringB; @end ClassB.m: - (void)viewWillAppear:(BOOL)animated { self.stringB = classA.stringA; } שיניתי את כל המחרוזות ל- @propert (retain, readwrite) NSString * - גיא

זהו אתר שאלות ותשובות למתכנתים. כל אחד יכול לשאול שאלה , כל אחד יכול לענות על שאלה, כל אחד יכול להגיב לתשובות.

דוא"ל

סיסמה

או הצטרפות