在表中分配对象时出现问题

时间:2011-04-08 11:11:37

标签: iphone objective-c

我有一个单身CarteManager,它由一个数组carteMan of carte

组成
 @interface CartesManager : NSObject {


NSMutableArray *carteMan ; 

       }

@interface Carte : NSObject {

    NSString *titre ; 
    NSString *commentaire ; 
    UIImage *image1 ; 
    UIImage *image2 ; 
    NSMutableArray *information ; 
} 

之后我不会将CarteMan中的所有图片分配到数组图像

- (id)init
{
    int i ; 
    if (self = [super initWithNibName:nil bundle:nil])

    {
        NSMutableArray * images =[[[NSMutableArray alloc]init]autorelease];

        for (i=0; i<([[CartesManager sharedInstance].carteMan count]); i++) {

            [images addObject:[[[[CartesManager sharedInstance]carteMan]image1]indexOfObject:i]]; //don"t work
        }
        self.view = [[[SlideShowView alloc] initWithImages:images] autorelease];
    }

    return self;
}

2 个答案:

答案 0 :(得分:1)

封装如此多的对象和方法是通过搜索错误来驱使你疯狂的最好方法; - )

一步一步地做,你会得到正确的答案:

我敢肯定,解决方案将是这样的:(但)

CartesManager *cartesManager = [CartesManager sharedInstance];

[images addObject:[[cartesManager image1] objectAtIndex:i]];

(但)我没有真正得到CartesManager的结构。 CartesManager是否有“image1” - 带图像的阵列?或者你可以发布你的CartesManager.h吗?

好的,我看了你的编辑,但我仍然不确定你想要什么; - )

可能是这样的吗?

CartesManager *cartesManager = [CartesManager sharedInstance];
Carte *carte = [[Carte alloc] init];
carte = [cartesManager carteMan] objectAtIndex:i]

[images addObject:[carte image1]];
[images addObject:[carte image2]];

答案 1 :(得分:0)

你正在那个呼叫巢内的某个地方有效地召唤,

[carteMan image1]

其中carteManNSMutableArray。那不行!我想你要交换image1objectAtIndex:i的顺序。 (你实际上写了indexOfObject,但我认为你不是这个意思。)因此:

[images addObject:[[[[CartesManager sharedInstance] carteMan] objectAtIndex:i] image1]];