Skip to content

Instantly share code, notes, and snippets.

import RealmSwift
class MarketGroup: Object {
dynamic var marketGroupID: Int = -1
dynamic var parentGroup: MarketGroup? = nil
dynamic var marketGroupName: String = ""
dynamic var groupDescription: String = ""
dynamic var hasTypes: Bool = false
var iconID: RealmOptional<Int> = RealmOptional(nil)

Моя имлементация builder выглядела следующим образом:

import UIKit

class AnyCellBuilder<C> where C: UITableViewCell {
  
  typealias Cell = C
  var tableView: UITableView!
  var indexPath: IndexPath!
import UIKit
protocol ItemViewBinder {
func bind(model: Item,to view: ItemViewType)
}
extension ItemViewBinder {
func bind(model: Item,to view: ItemViewType) {

Вот как выглядит SOA и MVPVM в моем последнем приложении (это экран который отображает магазины на google картах):

StoresTarget (Транспортный слой построен на Moya):

extension TargetType {
  
  var baseURL: URL { return URL(string: "https://my-api-base-url")! }
  
  var parameterEncoding: ParameterEncoding { return JSONEncoding() }
  

StoresViewController:

class StoresViewController: BasicViewController, RouterType {
  
  @IBOutlet weak var tableView: UITableView!
  
  let presentationModel: StoresPresentationModel = StoresPresentationModel()
  
  let storesSectionSubject: BehaviorSubject<[StoreViewModel]> = BehaviorSubject(value: [])
//: Playground - noun: a place where people can play
import PlaygroundSupport
import Foundation
import RealmSwift
import RxSwift
PlaygroundPage.current.needsIndefiniteExecution = true
class RealmString: Object {
import UIKit
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class ObjcClass: NSObject {
func thisMethodWillBeEnqueuedToRunLoop() {
print("I am executed")
}
final class MoreItems: BasicCollection<Item> {
init(for viewController: UIViewController) {
let items: [Item] = [
BasicItem(
image: #imageLiteral(resourceName: "ImageProfilePlaceholder"),
title: "Профиль",
description: "",
command: CommandToPerform{ [weak viewController] in
viewController?.navigationController?.pushViewController(Storyboard.More.profileViewController(), animated: true)
}),
//: Playground - noun: a place where people can play
import UIKit
@testable import Web3Swift
print(
try Keccak256Bytes(
origin: EthContractCreationBytes(
networkID: BigEndianCompactNumber(
hex: "0x2a"
/**
{
"exchangeContractAddress" : "0x12459c951127e0c374ff9105dda097662a027093",
"maker" : "0x8c7d76d9aef6a104b500cfd1746c331f4da5bce8",
"taker" : "0x0000000000000000000000000000000000000000",
"makerTokenAddress" : "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"takerTokenAddress" : "0xe41d2489571d322189246dafa5ebde1f4699f498",
"feeRecipient" : "0xa258b39954cef5cb142fd567a46cddb31a670124",
"makerTokenAmount" : "1950100000000000",