檢查brain
是否不爲零。
如果不是:
檢查myrecipe
和ingredient1
屬性?它們是否設置爲retain
?
如果沒有,請保留。
檢查@synthesize
兩者。是不是有任何類型的錯誤,所以他們的名字不會匹配屬性和ivars?
如果有錯誤(lokk吃上/下),正確。
我也猜測Ingredient
繼承自NSObject
(至少)並有[super init]
初始化的方法?
如果不是,你的類繼承NSObject,並首先啓動它。
如果什麼都行不通......那麼只需放一些代碼即可。你如何讓我們用這麼一小段代碼解決你的問題?
你應該是這樣的:
Brain : NSObject {
MyReceipe* receipe;
}
@property (nonatomic, retain) MyReceipe* receipe;
MyReceipe : NSObject {
Ingredient* ingredient1;
}
@property (nonatomic, retain) Ingredient* ingredient1;
Ingredient : NSObject {
NSString* ingredientName;
}
@property (nonatomic, retain) NSString* ingredientName;
在所有的.m
,加@synthsize the_property_name
和像
- (id) init {
self = [super init];
if (!self) return nil;
self.the_ivar = nil; (or whatever you want)
return self;
}
是在ingredient1財產的指針的init方法?我的Obj-C語法有點生疏,這已經有一段時間了。我知道Ingredient * temp的原因是因爲你正在設置一個指向該對象的指針,所以編譯器詢問「什麼是myIngredients.ingredientName的值?」當使用溫度。 – Yatrix
是的,ingredient1屬性是一個指向成分對象的指針 – sayguh