Я строю проект с использованием Swift 3 и Xcode 8.1. Сначала я создал клиент API, использующий Siesta в фреймворке, и я включаю его в свой почтовый проект, но когда я пытаюсь использовать структуру из фреймворка, чтобы сделать downcast, я получаю сообщение об ошибке No type named 'Business' in module 'ApiClient'
, я пробовал использовать его как ApiClient.Business
, но не успевает ...Swift structs: нет типа «Бизнес» в модуле
Мои рамки находятся в рабочем пространстве вместе с другими зависимостями, введенными carthage, и я могу вызывать из него другие экземпляры (например, сам API), но мне нужно получить доступ к этому, чтобы иметь возможность понижать результаты. Я также попытался добавить рамки под Link Binary с библиотеками, Источники Compile, Встраивание Каркасы, Embedded Бинарные и Linked Каркасы и библиотеки, но не может заставить его работать ...
Вот мой код
//
// 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
}
}
У меня такая же проблема. Мой протокол написан быстро и не добавляется автоматически в файл заголовка framework.h, поэтому я добавил файл .swift в общедоступные заголовки, но он все еще не найден. (ошибка, которую я получаю, - «Нет типа с именем« имя протокола »в модуле« frameworkName ».) Любая помощь с этим была бы очень благодарна. Я также добавил публикацию в протокол ... – Jeremie
@ Jeremie, не имея больше контекста и код трудно сказать. Возможно, стоит проверить, есть ли у вас «import Foundation», а также связать его с целевой средой. –