Ошибки в iOS swift при попытке использовать ансамбли

Я успешно добавил ансамбли, используя стручки и скомпилировал без ошибок. Теперь я добавляю код в мой файл AppDelegate.swift. Сбой сборки с

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_CDEPersistentStoreEnsemble", referenced from:
      __TMaCSo26CDEPersistentStoreEnsemble in AppDelegate.o
  "_CDEMonitoredManagedObjectContextDidSaveNotification", referenced from:
      __TFC8nicepal11AppDelegate11applicationfS0_FTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVSs10DictionaryCSo8NSObjectPSs9AnyObject____Sb in AppDelegate.o
  "_OBJC_CLASS_$_CDEICloudFileSystem", referenced from:
      __TMaCSo19CDEICloudFileSystem in AppDelegate.o
  "_CDEICloudFileSystemDidDownloadFilesNotification", referenced from:
      __TFC8nicepal11AppDelegate11applicationfS0_FTCSo13UIApplication29didFinishLaunchingWithOptionsGSqGVSs10DictionaryCSo8NSObjectPSs9AnyObject____Sb in AppDelegate.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я думаю, что соответствующий код в AppDelegate.swift

var ensemble:CDEPersistentStoreEnsemble?
var ensembleCloudFileSystem:CDECloudFileSystem?
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, CDEPersistentStoreEnsembleDelegate {

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        let store_url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("nicepal.sqlite")
        let modelURL = NSBundle.mainBundle().URLForResource("nicepal", withExtension: "momd")!

    ensembleCloudFileSystem = CDEICloudFileSystem(
        ubiquityContainerIdentifier: "something"
    )

    ensemble = CDEPersistentStoreEnsemble(
        ensembleIdentifier: "IDENTIFIER",
        persistentStoreURL: store_url,
        managedObjectModelURL:modelURL,
        cloudFileSystem:ensembleCloudFileSystem
    )

    ensemble?.delegate = self
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "syncWithCompletion:", name: CDEMonitoredManagedObjectContextDidSaveNotification, object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "syncWithCompletion:", name: CDEICloudFileSystemDidDownloadFilesNotification, object: nil)
    return true
}

Моя ошибка, вероятно, прямо передо мной, но я не знаю.

мой Bridging-Header.h выглядит так

#import <Foundation/Foundation.h>
#import <Ensembles/Ensembles.h>
#import "DropboxSDK.h"
#import "CDEDropboxCloudFileSystem.h"

1 ответ

Скорее всего, ваш соединительный заголовок не читается.

В разделе Параметры сборки убедитесь, что в параметре сборки Objective-C Bridging Header в Swift Compiler - Code Generation указан путь к заголовку. Путь должен быть относительно вашего проекта, аналогично тому, как ваш путь Info.plist указан в настройках сборки. В большинстве случаев вам не нужно изменять этот параметр.

В зависимости от вашей настройки, возможно, вам также необходимо импортировать фреймворк в ваш файл Swift.

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