سؤال
وتوسيع قالب المساعدة
وأنا أعمل مع القالب كسكودي المساعدة (Mainside / الجانب الثاني) وأنا بحاجة لإضافة شاشة جديدة. واضاف لقد:
docView.xib (copy of FlipsideView.xib)
docView.m
docView.h
docViewController.m
docViewController.h
في rootViewController.h أضفت:
UINavigationBar *docNavigationBar;
docViewController *docViewController;
@property (nonatomic, retain) UINavigationBar *docNavigationBar;
@property (nonatomic, retain) docViewController *docViewController;
في rootViewController.m، وتوليفها الإضافات:
@synthesize docNavigationBar;
@synthesize docViewController;
وأفعل استيراد بلدي. ح إلى rootViewController.m:
#import "docViewController.h"
وعندما أحاول تجميع I خطأ خارجا مع:
RootViewController.m:22: error: syntax error before 'docViewController'
وتحذيرات:
RootViewController.m:160: warning: property 'docViewController' requires method '-docViewController' to be defined - use @synthesize, @dynamic or provide a method implementation
وRootViewController.m: 160: تحذير: الملكية "docViewController" يتطلب طريقة "setDocViewController:" أن تكون محددة - استخدامsynthesize،dynamic أو توفير تطبيق الأسلوب
ما الذي فاتني؟
المحلول
والواقع، وأعتقد أنه من المفترض أن وضعت docViewController (هو الجديد تحكم الرأي، أليس كذلك؟). في أي حال، إذا كان هذا هو ما كنت تعني، وليس FlipsideViewController كما يقول اريك، ثم مشكلتك هي أنك أطلقوا عليه اسم نفس الخاصية. فكرة سيئة. طبيعية اتفاقية الهدف-C هي أحرف كبيرة الحرف الأول من أسماء صفك، ثم أحرف صغيرة منها عند استخدامها من الخصائص، وما إلى ذلك.
docViewController *docViewController;
ويجب أن تكون:
DocViewController *docViewController;
وانها ستعمل بشكل افضل كثيرا على هذا النحو:)
نصائح أخرى
في rootViewController.h، يبدو وكأنه خط إعلان بك:
docViewController *docViewController;
ويجب أن تكون:
FlipsideViewController *docViewController