私は、別々のファイルを作成する方法を探しています。たとえば、名前、日付などのフォームを持つアプリケーションがあります。保存を押すと、そのフォームのすべての情報をファイルに保存します。フォームが記入されるたびに、各ユーザーのために新しいファイルを作成する必要があります。ファイルは、アプリケーションのドキュメントディレクトリに保存されます。ファイルの名前は、フォームの「名前」テキストフィールドから来る必要があります。私は迅速にファイルを作成する方法を見てきましたが、ファイル名は常にパスのURLにハードコードされ、フォームが記入されるたびに情報は同じファイルに保存されます。私はこれをしたくありません。どのような解決策やアドバイスをいただければ幸いです。私はこれをオンラインで解決する方法が見つからないようです(ハードコードされたファイル名でファイルを作成する方法のみです)。別ファイルを作成する
import UIKit
class FormViewController: UIViewController {
@IBOutlet weak var organdonationno: UITextField!
@IBOutlet weak var donorage: UITextField!
@IBOutlet weak var snodname: UITextField!
@IBOutlet weak var donorshospital: UITextField!
@IBOutlet weak var date: UITextField!
@IBOutlet weak var ID: UITextField!
var fileMgr: FileManager = FileManager.default
var docsDir: String?
var dataFile: String?
override func viewDidLoad() {
super.viewDidLoad()
let filemgr = FileManager.default
let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask)
dataFile = dirPaths[0].appendingPathComponent("path").path
if filemgr.fileExists(atPath: dataFile!) {
let databuffer1 = filemgr.contents(atPath: dataFile!)
let databuffer2 = filemgr.contents(atPath: dataFile!)
let databuffer3 = filemgr.contents(atPath: dataFile!)
let databuffer4 = filemgr.contents(atPath: dataFile!)
let databuffer5 = filemgr.contents(atPath: dataFile!)
let datastring1 = NSString(data: databuffer1!, encoding: String.Encoding.utf8.rawValue)
let datastring2 = NSString(data: databuffer2!, encoding: String.Encoding.utf8.rawValue)
let datastring3 = NSString(data: databuffer3!, encoding: String.Encoding.utf8.rawValue)
let datastring4 = NSString(data: databuffer4!, encoding: String.Encoding.utf8.rawValue)
let datastring5 = NSString(data: databuffer5!, encoding: String.Encoding.utf8.rawValue)
organdonationno.text = datastring1 as? String
donorage.text = datastring2 as? String
snodname.text = datastring3 as? String
donorshospital.text = datastring4 as? String
date.text = datastring5 as? String
}
// Do any additional setup after loading the view.
}
@IBAction func savdata(_ sender: Any) {
let databuffer1 = (organdonationno.text)!.data(using: String.Encoding.utf8)
let databuffer2 = (donorage.text)!.data(using: String.Encoding.utf8)
let databuffer3 = (snodname.text)!.data(using: String.Encoding.utf8)
let databuffer4 = (donorshospital.text)!.data(using: String.Encoding.utf8)
let databuffer5 = (date.text)!.data(using: String.Encoding.utf8)
fileMgr.createFile(atPath: dataFile!, contents: databuffer1, attributes: nil)
fileMgr.createFile(atPath: dataFile!, contents: databuffer2, attributes: nil)
fileMgr.createFile(atPath: dataFile!, contents: databuffer3, attributes: nil)
fileMgr.createFile(atPath: dataFile!, contents: databuffer4, attributes: nil)
fileMgr.createFile(atPath: dataFile!, contents: databuffer5, attributes: nil)
}
}
ファイル名を指定しないでください。ファイルの名前は、フォームの 'name' + 'date' + 'creationTime'から来る必要があります。それは一意のファイル名になります。 – luckyShubhra
私たちの作業コードを示しています。それは役に立つだろう。 – luckyShubhra
@luckyShubhraコードを追加しましたが、日付だけを保存するだけでフォームの残りの情報は保存されないため、正しく動作しません。私が初心者である間違いがあれば、私に同行してください。 – Aneesa