2015-10-26 57 views
0

我正在注册表单应用程序。现在我试图想出一种动态创建表单的方法。现在我有一个硬编码格式,硬编码问题,将表单数据保存到.csv文件中。下面是一些代码:iOS:创建一个动态注册表

// saves text field data in comma separated CSV file format 
    NSString *formData = [NSString stringWithFormat:@"%@,%@,%@,%@,%@,%@,%@,%@,%@,%@,%@\n", 
          self.nameTextfield.text, self.emailTextfield.text, 
          self.phoneTextfield.text, self.termTextfield.text, 
          self.schoolTextfield.text, self.graduationTextfield.text, 
          self.gpaTextfield.text, degreeString, 
          self.interestTextfield.text, groupString, 
          appliedString]; 

    // get document directory path 
    NSString *documentDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                      NSUserDomainMask, YES)objectAtIndex:0]; 
    NSString *csv = @".csv"; 
    NSString *filename = [NSString stringWithFormat:@"%@%@", _eventName.text, csv]; 
    // append results.csv onto doc path 
    NSString *event = [documentDirectoryPath stringByAppendingPathComponent:filename]; 

    // creates folder if it does not exist 
    if (![[NSFileManager defaultManager] fileExistsAtPath:event]) { 
     [[NSFileManager defaultManager] createFileAtPath:event contents:nil attributes:nil]; 
    } 

    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:event]; 
    [fileHandle seekToEndOfFile]; 
    [fileHandle writeData:[formData dataUsingEncoding:NSUTF8StringEncoding]]; 
    [fileHandle closeFile]; 

基本上,我希望能够在其上创建应用程序,可以是任意数量的问题形式,而且无论是采用分段控制或文本输入。我看到的一个问题是使用逗号分隔格式格式化文件。例如,如果应用程序创建了5个问题,那么如何在不进行硬编码的情况下格式化文件以使formData = [NSString stringWithFormat:@“%@,%@,%@,%@,%@ \ n”]?

非常感谢您的帮助!

回答

0

一个(但不是唯一的)正确创建动态表单的方法是构建典型块(如开关块,文本块等)。您可以添加这些块来手动查看或使用UITableView作为例子。您还需要描述具体形式(块的数量和类型)的数据结构。

格式化文件是没有问题的,因为您始终可以使用NSMutableString并逐个追加值。

+0

NSMutableString可能是我需要得到这个工作。我可以创建一系列问题以及它们是什么控制,然后通过for循环运行该数组并对其执行操作! – Malexc