How to create multi-dimensional arrays in swift

// you can set your dynamic count


var a = Array(repeating: Array(repeating: 0, count: 0), count: 3) // set you dynamic value

        a[0].append(2)

        a[0].append(5)

        a[1].append(9)

        a[2].append(10)

        print(a)

OUTPUT :   [[2, 5], [9], [10]]

Store and Retrive Image From Document Directory in Swift

Store OR Save Image in Document Directory


@objc static func SaveImage(image : UIImage, imageName : String) {

                let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!

             let fileName = imageName

            let fileURL = documentsDirectory.appendingPathComponent(fileName)

            if let data = image.jpegData(compressionQuality:  1.0),

            !FileManager.default.fileExists(atPath: fileURL.path) {

            do {

                 try data.write(to: fileURL)

            print("file saved")

            } catch {

            print("error saving file:", error)

            }

        }    

    }

How to Use :

ImagePickerManager.SaveImage(image: image, imageName: “one”)

Retrive Image From Document Directory :


@objc static func Retriveimage(name : String) -> UIImage {

        let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory

        let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask

        let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)

          var image: UIImage?

         if let dirPath = paths.first

        {

            let imageURL = URL(fileURLWithPath: dirPath).appendingPathComponent(name)

            image  = UIImage(contentsOfFile: imageURL.path)

        }

        return image!

    }

How to Use :

imgPicker.image = ImagePickerManager.Retriveimage(name: “one”)

Create Database Programatically in swift

Create , Insert and Dispaly databse in swift.

import UIKit

struct SampleData {

let id : Int

let FirstName : String

let LastName : String

}

class DBManagerrr: NSObject {

let field_ID = "fieldID"
let field_Firstname = "fieldFirstName"
let field_LastName = "FieldLastName"

static let shared: DBManagerrr = DBManagerrr()

let databaseFileName = "databasee.sqlite"
var pathToDatabase: String!
var database: FMDatabase!

override init() {

super.init()

let documentsDirectory = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString) as String

pathToDatabase = documentsDirectory.appending("/\(databaseFileName)")

}

// Create Database

func createDatabase(tableName : String) {

if !FileManager.default.fileExists(atPath: pathToDatabase) {

database = FMDatabase(path: pathToDatabase!)

if database != nil {

if database.open() {

let createMoviesTableQuery = "create table \(tableName) (\(field_ID) INTEGER PRIMARY KEY AUTOINCREMENT, \(field_Firstname) text, \(field_LastName) text)"

do {

try self.database.executeUpdate(createMoviesTableQuery, values: nil)

print("Successfully create table.")

}

catch {

print("Could not create table.")

print(error.localizedDescription)

}

database.close()

}

else {

print("Could not open the database.")

}

}

}

}

// OPen database table

func openDatabase() -> Bool {

if database == nil {

if FileManager.default.fileExists(atPath: pathToDatabase) {

database = FMDatabase(path: pathToDatabase)

}

}

if database != nil {

if database.open() {

return true

}

}

return false

}

//Insert Database in to table

func insertSampleData(tableName : String,firstName : String, LastName : String) {

if openDatabase() {

var query = ""

query += "insert into \(tableName) (\(field_Firstname), \(field_LastName)) values ( '\(firstName)', '\(LastName)');"

if !database.executeStatements(query) {

print("Failed to insert initial data into the database.")

print(database.lastError(), database.lastErrorMessage())

}else {
print("Successfully inserted")
}

}

database.close()

}

//Get Single database

func loadSampleData(tableName : String) -> SampleData! {

var sampleModel : SampleData!

if openDatabase() {

let query = "select * from \(tableName)"

do {

print(database)

let results = try database.executeQuery(query, values: nil)

while results.next() {

sampleModel = SampleData.init(id: Int(results.int(forColumn: field_ID)), FirstName: results.string(forColumn: field_Firstname), LastName: results.string(forColumn: field_LastName))
}

}

catch {

print(error.localizedDescription)

}

database.close()

}

return sampleModel

}

//Get All database

func GetAllData(tableName : String) -> [SampleData]! {

var sampleModel : [SampleData]!

if openDatabase() {

let query = "select * from \(tableName)"

do {

print(database)

let results = try database.executeQuery(query, values: nil)

while results.next() {

let sample = SampleData.init(id: Int(results.int(forColumn: field_ID)),
FirstName: results.string(forColumn: field_Firstname),
LastName: results.string(forColumn: field_LastName))

if sampleModel == nil {

sampleModel = [SampleData]()

}

sampleModel.append(sample)

}

}

catch {

print(error.localizedDescription)

}

database.close()

}

return sampleModel

}

}

//How TO USE

//Create Table
DBManagerrr.shared.createDatabase(tableName: “mySample”)

//Inset Data in to table
DBManagerrr.shared.insertSampleData(tableName: “mySample”, firstName: “Test1”, LastName: “Sample1”)

//Get Single DataFrom table
let data = DBManagerrr.shared.loadSampleData(tableName: “mySample”)
print(data!)

//Get All Data from table
let datas = DBManagerrr.shared.GetAllData(tableName: “mySample”)
print(datas!)

 

 

 

Get All string or symbol between two unicode (convert unicode in to string)


let scalarRange: ClosedRange = "\u{1200}" ... "\u{12BF}"

        let scalarValueRange = scalarRange.lowerBound.value ... scalarRange.upperBound.value

        let SymbolArray = scalarValueRange.compactMap({ (scalarValue: UInt32) -> String? in

            guard let scalar = Unicode.Scalar(scalarValue) else { return nil }

            return String(scalar)

        })

        print(SymbolArray)