Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 尝试在Plist中写入数据-几乎就在那里_Ios_Nsarray_Plist - Fatal编程技术网

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

Ios 尝试在Plist中写入数据-几乎就在那里,ios,nsarray,plist,Ios,Nsarray,Plist,因此,我试图将其结合起来——我制作了一个小的单视图应用程序来学习:-) 我正试图实现的是,正如您从附带的代码和图像中看到的那样,我有一个文本字段和一个submit to UITable按钮,这是我嵌入到导航视图中的第一个UIView,以便UITableView可以显示其结果。现在我有两个错误,我知道我忘记了一些东西,但我不知道如何编写声明它们 添加ViewController.h的代码 @interface AddingViewController : UIViewController { D

因此,我试图将其结合起来——我制作了一个小的单视图应用程序来学习:-)

我正试图实现的是,正如您从附带的代码和图像中看到的那样,我有一个文本字段和一个submit to UITable按钮,这是我嵌入到导航视图中的第一个UIView,以便UITableView可以显示其结果。现在我有两个错误,我知道我忘记了一些东西,但我不知道如何编写声明它们

添加ViewController.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
添加ViewController.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];

一旦我对这两个进行了排序,我是否应该将其设置为向pList添加数据

我在下面添加了一个屏幕截图,因此您无需可视化UI:-)

我希望所有这些都是有意义的——谢谢你的建议:-)


Cheers Jeff

NAME\u键应该是某个字符串,在上面引用它的位置定义(在
.h
接口文件或
.m
实现文件中)

例如:

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


在创建NSDictionary对象之前设置一个断点并找出原因。

您的大量问题仍然需要更详细的说明:您会遇到什么样的错误?“
NAME-KEY
”的定义是什么?是的,我知道这是一个很大的问题。对不起,我只是尽我所能添加了很多细节:-)定义NAME\u-KEY是我一直坚持的一件事-我不知道在哪里以及如何做。我称它为NAME_KEY,因为它在Plist中被称为KEY下的NAME。好的,一个错误过去了,就像你说的,定义NAME_键-但另一个错误仍然存在,设置断点也没有帮助-这是一个错误,因此它无法编译以在设备/模拟器上运行。“NSArray”没有可见的@interface声明选择器“addObject:”似乎我需要声明选择器addObject,我现在正试图弄清楚。噢,duh。。。将
testList
的声明更改为
NSMutableArray
。在创建
NSArray
之后,您无法将对象添加到其中(它是一个不可变的对象)。解决了它-必须更改@property设置-感谢您的输入:-)
[self.testList addObject:dict];
#define NAME_KEY @"jwk82"