2011-02-02 70 views
1

我想添加对象到NSMutableArray中,一旦用户点击添加到收藏夹按钮我可以将数据放入NSDictionary,但是当我将NSDictionary传递给数组时,NSLog出现回零。我错过了什么吗?iPhone的addObject从另一个ViewController的NSMutableArray使用IBAction

-(IBAction) addtofavorites: (id)sender 
{ 
    NSArray *key = [NSArray arrayWithObjects:@"Title", @"Description", nil]; 
    NSArray *objects = [NSArray arrayWithObjects:CurrentTitle, description.text, nil]; 
    NSDictionary *fadd = [[NSDictionary alloc] initWithObjects:objects forKeys:key]; 

    FavoritesViewController *fvc = [[FavoritesViewController alloc] init]; 
    [fvc.favorites addObject:fadd]; 
    [FavoritesViewController release]; 
} 
+0

东西,所以我去一个不同的方向,但仍然有同样的问题。我现在使用核心数据保存我的收藏夹。我不知道如何将游戏添加到我的NSManagedObjectContex。我有一个叫做Games的类,想要传递3个NSString。我是否在我的AppDelegate,Games或我的ViewController中的Context中创建了一个方法?当然确实需要一段时间来教授自己的核心数据,但我认为我现在已经掌握了一些。谢谢 – 2011-03-25 17:25:23

回答

0
FavoritesViewController *fvc = [[FavoritesViewController alloc] init]; 
[fvc.favorites addObject:fadd]; 
[FavoritesViewController release]; 

看起来不正确的。你应该已经初始化的FavoritesViewController(其中可以直接访问并调用-addObject:)...

编辑

首先,请问在当前视图控制器(即具有-addtofavorites之一:定义在它上)与FavoritesViewController?用户如何在这两个视图控制器之间导航?

其次,收藏夹列表是否会在应用的不同运行过程中持续存在?如果是这样,你打算如何保存/恢复收藏夹?第三,将它们添加到将用于填充FavoritesViewController的底层“模型”可能会更好,而不是添加到视图控制器的收藏夹。

从“视图”中分离“模型”可以非常强大,同时还可以简化代码。

+0

我在我的DetailViewController中创建了IBAction,这就是为什么我在IBAction中分配并初始化它 – 2011-02-02 22:08:04

0

我会做的是在你的头文件中为你保留的FavoritesViewController创建一个实例变量。然后在按下addtofavorites时使用lazy init。像下面

if (!detailViewController) 
    { 
    self.fvc = [[FavoritesViewController alloc] init]; 
    } 

[self.fvc.favorites addObject:fad]; 

然后,只需松开FavoritesViewController对象的dealloc

- (void)dealloc { 
    [fvc release]; 
    [super dealloc]; 
} 
相关问题