Свифт структуры: в модуле нет типа с именем "Бизнес"

Я строю проект с использованием Swift 3 и Xcode 8.1. Сначала я создал клиент API с использованием Siesta на платформе и включил его в свой почтовый проект, но когда я пытаюсь использовать структуру из фреймворка для выполнения downcast, я получаю ошибку No type named 'Business' in module 'ApiClient' Я пытался использовать его как ApiClient.Business но безуспешно...

Мой фреймворк находится в рабочей области вместе с другими зависимостями, внедренными Carthage, и я могу вызывать из него другие экземпляры (например, сам API), но мне нужно получить доступ к этому, чтобы иметь возможность снизить результаты. Я также пытался добавить фреймворк в разделе " Связать двоичные файлы с библиотеками, исходными кодами компиляции", " Встроить фреймворки", " Встроенные бинарные файлы" и " Связанные фреймворки и библиотеки", но не могу заставить его работать...

Вот мой код

//
//  BusinessesViewController.swift
//

import UIKit
import ApiClient
import Siesta

class BusinessesViewController: UIViewController, ResourceObserver{

    override func viewDidLoad() {
        super.viewDidLoad()
        globalInstance.MyAPI.businesses.addObserver(self).loadIfNeeded()
    }

    func resourceChanged(_ resource: Resource, event: ResourceEvent) {

        let businesses: Array = resource.typedContent(ifNone: [])
        if(businesses.count > 0){
            let object : ApiClient.Business =  businesses[0] as! ApiClient.Business // <-- error here
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}



//
//  global.swift
//

import Foundation
import ApiClient

class Global {
    var MyAPI :ApiClientService 

    init() {
        MyAPI = ApiClientService(baseURL: "http://test.myproject.com")
    }

}
var globalInstance = Global()



//
//  Business.swift  -- from ApiClient framework
//

import SwiftyJSON
import Foundation
struct Business {
    let name, id: String?
    let userId: Int?
    let description: String?

    init(json: JSON) throws {
        id          = json["id"].string
        userId     =  json["user_id"].int
        name        = json["name"].string
        description = json["description"].string
    }
}

1 ответ

Решение

Это была ошибка нуба, просто нужно было добавить public в структуру:)

Другие вопросы по тегам