2015-10-26 55 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