2016-09-01 2 views
2

Я буквально копирую и вставляю код из официальной документации для Swift - и не компилируется:Swift and Realm: Недопустимое использование модуля '()' для вызова модуля нефункционального типа <Realm> '

https://realm.io/docs/swift/latest/#adding-objects

enter image description here

enter image description here Я использую Realm 1.0.2

документация действительно конфликтует с самим собой - с меняться():

let realm = RLMRealm.defaultRealm() 
let realm = Realm() 
let realm = try! Realm() 

Что происходит с королевством?

И в чем разница между королевством и RLMRealm? Первая строка выше будет компилировать штраф - но следующие две будут NOT.

+0

Вы добавили 'import Realm'? – sage444

+0

У меня - это не проблема. Попробуйте взять этот код и посмотрите, компилируется ли он для вас. – etayluz

ответ

3

Я буквально копируя и вставляя код из official Realm documentation for Swift - и он не компилируется:

Фрагмент кода, приведенный в вашем скриншоте не хватают круглые скобки, необходимых для вызова инициализатора Realm типа , Я просмотрел страницу документации, на которую вы ссылались, и из того, что я вижу, все использования инициализатора Realm правильно имеют свои parens.

документация действительно конфликтует с самим собой - с различными декларациями области:

Я не уверен, какие документы вы имеете в виду. Единственная форма, которую я вижу в Realm Swift documentation, - let realm = try! Realm(), которая является правильной формой для использования с Realm Swift.

И в чем разница между Realm и RLMRealm?

Структура Realm предоставляет API Objective-C с классом RLMRealm, представляющим файл Realm. Структура RealmSwift предоставляет Swift API с классом Realm, представляющим файл Realm.

Первая строка, указанная выше, скомпилирует штраф, но следующие две будут НЕ.

Это показывает, что вы используете рамки Realm Objective-C от Swift (import Realm), а не Realm Swift (import RealmSwift).

+0

Спасибо! Если вы выполните поиск Google в «учебном курсе реального времени», вы увидите, что первая статья, выходящая из realm.io, полностью устарела и привела меня к неправильному пути. Пожалуйста, удалите или иным образом обновите эту статью. – etayluz

+0

Я поднял вопрос об обновлении старых сообщений в блоге с нашей командой. Пока мы не сможем сделать это, мы добавили даты на такие должности, чтобы дать некоторое представление о периодичности таких сообщений.Если мой ответ затронул вашу проблему, этикет «Переполнение стека» указывает, что вы должны пометить его как принятое. – bdash

+0

Я бы просто удалил сообщение в блоге полностью - для этого нет пользы - если бы я не видел, чтобы этот вопрос никогда не был опубликован. – etayluz

Смежные вопросы