لماذا أتلقى خطأ في هذا؟
-
22-08-2019 - |
سؤال
لماذا أتلقى هذه الأخطاء؟نص بديل http://img39.imageshack.us/img39/2203/help.tif
انها تقول:
خطأ:طلب عضو "jokeTableView" في شيء ليس بناء أو اتحاد
ماذا يعني ذالك؟ولماذا ينكسر.حاولت القراءة عنها initWithStyle ولكن يمكنني فقط اللحاق به
هنا ملف .h الخاص بي:
#import <UIKit/UIKit.h>
@interface TableViewController : UITableViewController {
NSMutableArray *jokes;
IBOutlet UITableView *jokeTableView;
}
@property (nonatomic, retain) NSMutableArray *jokes;
@end
شكرًا!
المحلول
لا يحتوي الكائن الخاص بك (TableViewController) على خاصية تسمى jokeTableView.
من أجل الوصول إلى jokeTableView باستخدام عامل النقطة الخاص، يجب أن يكون خاصية.بخلاف ذلك، يتعين عليك الوصول إليه باستخدام الطرق المتوافقة مع Key-Value-Coding أو مباشرة باستخدام عامل التشغيل -> (أو استخدمه فقط كـ ivar وبدون إشارة إلى الذات):
jokeTableView.delegate = self;
أو
self->jokeTableView.delegate = self;
أو
[self jokeTableView].delegate = self;
أو
@property (retain) UITableView *jokeTableView;
// later...
self.jokeTableView.delegate = self;
ومع ذلك، لاحظ أيضًا أنك تقوم بتعيين منفذ في المُهيئ وهذا لن ينجح.سيتعين عليك تعيين هذا في طريقة -[TableViewController WakeFromNib] نظرًا لأن self->jokeTableView سيكون صفرًا عندما يتم استدعاء المُهيئ فعليًا (وهو ما يحدث في IB قبل إجراء تسلسل للكائن في ملف nib).
نصائح أخرى
نظرًا لأنك تقوم بذلك في وقت البدء، فيجب أن تكون المنافذ فارغة، لذا لا ينبغي أن تفعل هذه التهيئة أي شيء.يجب أن يتم ذلك في وقت WakeFromNib في أقرب وقت ممكن.