Swift: Creating Plist Programmatically

It’s practical to use plist in files for iOS projects either to store configuration settings or to store any other information you may need in the execution of your application.

The plist or property list structure is key-value relation:

example:

plist

Before we try to generate the plist file we can check if the plist exists:


let fileManager = FileManager.default
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
    let path = documentDirectory.appending("/example.plist")

In case the file doesn’t exist:

    if (!fileManager.fileExists(atPath: path)) {
            /*
                        here is where we are going to create the plist file
            */
    }

To generate the plist file lets start with the content. In this case we are going to use the capitals of the states:

let dicContent:[String: String] = ["Alabama": "Montgomery", "Alaska":"Juneau","Arizona":"Phoenix"]

Now we are going to convert the dictionary content to NSDictionary:

let plistContent = NSDictionary(dictionary: dicContent)

With the content already in NSDictionary we can try to write to disk:

let success:Bool = plistContent.write(toFile: path, atomically: true)

We can check if write to disk was successful

 
if success {
	print("file has been created!")
}else{
	print("unable to create the file")
}
	 func pListCreation() {
           let fileManager = FileManager.default
            let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
            let path = documentDirectory.appending("/example.plist")
           
            if (!fileManager.fileExists(atPath: path)) {
                let dicContent:[String: String] = ["Alabama": "Montgomery", "Alaska":"Juneau","Arizona":"Phoenix"]
                let plistContent = NSDictionary(dictionary: dicContent)
                let success:Bool = plistContent.write(toFile: path, atomically: true)
                if success {
                    print("file has been created!")
                }else{
                    print("unable to create the file")
                }
               
            }else{
                print("file already exist")
            }
        }

Please let me know if you have any questions by leaving a comment below or on twitter @luisemedr

Leave a Reply

Your email address will not be published. Required fields are marked *