2014-10-02 6 views
4

Я пытаюсь добавить Realm в мое приложение, написанное в быстром. Я следил за учебником, и я не могу заставить его работать. Самая большая проблема заключается в том, что когда я пытаюсь импортировать Realm, я получаю No such module 'Realm'. Я не знаю, что еще попробовать. Вы можете увидеть мои усилия ниже.Установить Realm в Swift App

Вы можете увидеть здесь инструкции: http://realm.io/docs/cocoa/0.85.0/#swft

Я также скопировал инструкцию:

В связи с отсутствием в настоящее время соответствующей инфраструктуры для управления Swift зависимостей, используя Сферу в проекте необходимо выполнить следующие шаги :

  1. Добавить Realm как подмодуль, открыв терминал, CD-ING в каталог проекта верхнего уровня, и введя команду мерзавец подмодуль добавить [email protected]: царство/область-cocoa.git
  2. Откройте папку realm-cocoa и перетащите Realm.xcodeproj в навигатор файлов вашего проекта Xcode.
  3. В Xcode перейдите к целевому окну конфигурации, щелкнув значок синего проекта и выбрав целевую программу приложения в разделе «Цели» на боковой панели.
  4. В панели вкладок в верхней части этого окна откройте панель «Построить фазы».
  5. Разверните gorup «Зависимости целей» и добавьте инфраструктуру iOS в Realm.
  6. Разверните группу «Ссылка на двоичные файлы с библиотеками» и добавьте инфраструктуру iOS в Realm, а также libC++. Dylib.
  7. Нажмите кнопку + в левом верхнем углу панели и выберите «Новая фаза файлов копий». Переименуйте этот новый этап в «Copy Frameworks», установите «Destination» в «Frameworks» и добавьте Realm.framework.
  8. Перетащите файл в realm-cocoa/Realm/Swift/RLMSupport.swift в файловый навигатор вашего проекта Xcode, сняв флажок «Скопировать элементы, если необходимо».

Ниже то, что он выглядит в моем проекте:

enter image description here enter image description here enter image description here enter image description here enter image description here

+1

Мы работаем над упрощением наших инструкций по установке. Мы опубликуем ответ на этот вопрос через несколько часов, как только появятся новые инструкции. – jpsim

ответ

4

Я говорил с ребятами в Realm, и оказывается, что последняя инструкции не работают с Realm < = 0.85 Они изменили способ сборки рамки, и он больше не будет работать. Они сказали, что сегодня выпустят 0.86, которые должны решить проблемы, с которыми сталкивается Свифт. Тем временем у меня есть тестовый проект, в котором каждый может принять последнюю структуру. https://github.com/smitt04/testRealm

Версия 0.86 теперь отсутствует, и это уже не проблема.

2

Инструкции по установке Swift были длинные и запутанным, так что я не удивлен Вас несколько других пользователей столкнулись с проблемами.

Следуйте инструкциям по установке here.

+2

Итак, я попробовал новые инструкции по установке. Я столкнулся с двумя проблемами. 1. В zip-архиве, который вы загружаете, нет быстрой папки, только в git-клоне. 2. Поэтому я попробовал клон git и перетащил файл 'Swift/RLMSupport.swift' в мой проект, и именно там проблема. В верхней части этого файла говорится: «Нет такого модуля« Realm »при попытке импорта. Так что у меня все еще есть проблемы с Королевством для быстрого. Кажется, я могу скомпилировать без быстрого файла, но не пытаюсь его использовать. Но я не могу скомпилировать его. – smitt04

+0

Я продолжаю получать ту же ошибку. В настоящее время инструкции не работают должным образом в XCode 6/Swift. Это едва ли окончательный ответ, но сейчас я предлагаю придерживаться obj-c для Realm. (Я следил за видео youtube, загруженным сегодня) http://i.imgur.com/M37Q7Th.png – CaptainCOOLGUY

+1

Инструкции будут работать после выпуска Realm 0.86.0, что произойдет в ближайшие несколько часов. – jpsim

7

Я не знаю точно, почему это не работает, но вот обходной путь:

  1. Следуйте последние инструкции.

  2. Создать заголовок мостовую, например

    • Добавить новый класс Objective-C для вашего Xcode проекта.
    • Согласитесь иметь заголовок шунтирующий создал
    • Удалить класс Objective-C

  3. Добавить это в обводного заголовке:

    #import "Realm/Realm.h"

  4. Удалить любые Import Realm заявления от вашего кода, в том числе от RLMSupport.swift

  5. Теперь он должен работать. Например, я испытываю с проставлением это в моем ViewController.swift

    import UIKit 
    
    class Person: RLMObject { 
        dynamic var name = "" 
        dynamic var birthdate = NSDate(timeIntervalSince1970: 1) 
    } 
    
    class ViewController: UIViewController { 
        override func viewDidLoad() { 
         super.viewDidLoad() 
    
         let author = Person() 
         author.name = "David Foster Wallace" 
    
         // Get the default Realm 
         let realm = RLMRealm.defaultRealm() 
    
         // Add to the Realm inside a transaction 
         realm.beginWriteTransaction() 
         realm.addObject(author) 
         realm.commitWriteTransaction() 
    
         // Print all Persons 
         println(Person.allObjects()) 
        } 
    } 
    

который печатает:

RLMArray <0x7a243760> (
    [0] Person { 
     name = David Foster Wallace; 
     birthdate = 1970-01-01 00:00:01 +0000; 
    } 
) 
Смежные вопросы