试图在Plist中写入数据 - 几乎就在那里

时间:2012-03-27 00:32:04

标签: ios nsarray plist

所以我想把它拼凑起来 - 我已经做了一个小的单一视图应用程序来学习: - )

我想要实现的目标,你可以通过容纳的代码和图像看到我有一个textField和一个提交到UITable按钮 - 我已经嵌入导航视图中的第一个UIView,以便UITableView可以显示这是结果。现在我收到了2个错误,我知道我忘记了什么,但我无法弄清楚如何写出声明它们。

AddingViewController.h代码

@interface AddingViewController : UIViewController {

Dfetch *dao;
IBOutlet UITextField *addToPlistTxt;
IBOutlet UITableView *table;

NSArray *testList;

}

 @property (retain, nonatomic) IBOutlet UITextField *addToPlistTxt;
 @property (retain, nonatomic) IBOutlet UITableView *table;

 @property (retain, nonatomic) NSArray *testList;

 -(IBAction)makeKeyBoardGoAway;
 -(IBAction)submitToPlistAction;

 @end

AddingViewController.m的代码:

@implementation AddingViewController
@synthesize addToPlistTxt;
@synthesize table;
@synthesize testList;


   //Not very elegant way to dismiss keyboard, but it will do for the excersize
   -(IBAction)makeKeyBoardGoAway{    
    [addToPlistTxt resignFirstResponder];
    }

   -(IBAction)submitToPlistAction{

    NSString     *path     = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
    NSString     *addLine  =   self.addToPlistTxt.text;
    NSArray      *values   = [[NSArray alloc] initWithObjects:addLine, nil];
    NSArray      *keys     = [[NSArray alloc] initWithObjects:NAME_KEY, nil];
    NSDictionary *dict     = [[NSDictionary alloc] initWithObjects:values forKeys:keys];
    [self.testList addObject:dict];
    [self.testList writeToFile:path atomically:YES];
    }

   - (void)viewDidLoad
   {
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.


    }

   @end

现在我只是想学习这个,因此我粘贴了整个文件,以便我可以看到我出错的地方。

错误是:

NSArray      *keys     = [[NSArray alloc] initWithObjects:NAME_KEY, nil];

[self.testList addObject:dict];

一旦我将这两个排序后,是否应该为我设置将数据添加到我的pList?

我在下面添加了截图,因此您无需可视化用户界面: - )

enter image description here

我希望这一切都有意义 - 感谢任何建议: - )

干杯杰夫

1 个答案:

答案 0 :(得分:1)

NAME_KEY应该是一些字符串,在上面定义,它被引用(在.h接口文件或.m实现文件中)。

E.G:

#define NAME_KEY @"jwk82"

至于dict没有添加,我想知道你的addToPlistTxt UITextField是否为零,这是导致错误(或崩溃)的原因。

在创建NSDictionary对象之前设置断点并查找。