我有一个单例对象是我已定义的卡片我想要更改此卡片的价值......
@interface CartesManager : NSObject {
NSMutableArray *carteMan ;
NSInteger indexCarteCourante ;
BOOL isEditable ;
}
@property(nonatomic,retain) NSMutableArray *carteMan ;
@property(nonatomic) NSInteger indexCarteCourante ;
@property(nonatomic) BOOL isEditable ;
+(CartesManager*)sharedInstance;
对象:
@interface Carte : NSObject {
NSString *titre ;
NSString *commentaire ;
UIImage *image1 ;
UIImage *image2 ;
NSString *information ;
}
@property (nonatomic,retain )NSString *titre ;
@property (nonatomic,retain) NSString *commentaire ;
@property (nonatomic,retain) UIImage *image1 ;
@property (nonatomic,retain) UIImage *image2 ;
@property (nonatomic,retain) NSString *information ;
-(void) edit:(id)sender
{
Carte *uneCarte = [[Carte alloc]init];
uneCarte.titre = textField.text ;
uneCarte.commentaire = textView.text ;
uneCarte.image1 = imageView1.image ;
uneCarte.image2 = imageView2.image;
[[[[CartesManager sharedInstance] carteMan]objectAtIndex:[[CartesManager sharedInstance]indexCarteCourante]]addObject:uneCarte]; //don't Work to allocate in my array in this carte
}
答案 0 :(得分:2)
您正在添加对象,而不是修改数组中的现有对象。尝试:
-(void) edit:(id)sender
{
Carte *uneCarte = [[[CartesManager sharedInstance] carteMan]objectAtIndex:[[CartesManager sharedInstance]indexCarteCourante]];
uneCarte.titre = textField.text;
uneCarte.commentaire = textView.text;
uneCarte.image1 = imageView1.image;
uneCarte.image2 = imageView2.image;
}
希望这有帮助。
答案 1 :(得分:0)
实际上如果[[[CartesManager sharedInstance] carteMan] objectAtIndex:[[CartesManager sharedInstance] indexCarteCourante]];是一个Carte *,然后他试图将Carte *添加到另一个Carte *:
[[[[CartesManager sharedInstance] carteMan]objectAtIndex:[[CartesManager sharedInstance]indexCarteCourante]]addObject:uneCarte];
等同于
Carte *carte = [[[CartesManager sharedInstance] carteMan]objectAtIndex:[[CartesManager sharedInstance]indexCarteCourante]]
[carte addObject: uneCarte]
将Carte *添加到数组中:
[[[CartesManager sharedInstance] carteMan] addObject:uneCarte];
并且为了避免在将来重构代码中出现这样的问题,所有这些[[[[在一行中使其难以理解并且容易出错。