Sobes.tech
Junior

A que momento o objeto é criado?

sobes.tech IA

Resposta da IA

Um objeto em iOS é criado em:

  1. A inicialização de uma classe ou estrutura (criação de uma instância).
class MyClass {
    init() {
        // Código de inicialização
    }
}

let myObject = MyClass() // Criação de um objeto MyClass
struct MyStruct {
    var value: Int

    init(value: Int) {
        self.value = value
    }
}

let myStructInstance = MyStruct(value: 10) // Criação de uma instância da estrutura MyStruct
  1. A desserialização de dados (por exemplo, de JSON).
struct User: Codable {
    let name: String
    let age: Int
}

let jsonData = """
{
    "name": "Alice",
    "age": 30
}
""".data(using: .utf8)!

let decoder = JSONDecoder()
if let user = try? decoder.decode(User.self, from: jsonData) {
    // user - é o objeto User criado
}
  1. Uso de métodos de fábrica, que retornam uma nova instância.
class MyFactory {
    static func createObject() -> MyClass {
        return MyClass() // O método de fábrica cria e retorna um novo objeto
    }
}

let anotherObject = MyFactory.createObject()
  1. Criação de objetos Core Data através de NSEntityDescription.insertNewObject(forEntityName:into:).
import CoreData

// Suponha que o contexto seja um NSManagedObjectContext existente
if let entity = NSEntityDescription.entity(forEntityName: "MyEntity", in: context) {
    let myCoreDataObject = NSManagedObject(entity: entity, insertInto: context) // Criação de um objeto Core Data
    // Configuração das propriedades do objeto
}
  1. Carregamento via Interface Builder (XIB/Storyboard), onde objetos (por exemplo, ViewController) são definidos.
import UIKit

let storyboard = UIStoryboard(name: "Main", bundle: nil)
if let viewController = storyboard.instantiateViewController(withIdentifier: "MyViewController") as? MyViewController {
    // viewController - é o objeto MyViewController criado
}

O momento de criação é determinado ao chamar o inicializador (init) ou o método que realiza a criação de uma nova instância.