2015-09-11 2 views
4

Это моя первая попытка с Parse on Swift, и я следил за инструкциями по быстрому началу работы на веб-сайте Parse, как показано здесь: https://parse.com/apps/quickstart#parse_data/mobile/ios/swift/existingParse «Быстрый старт» с Swift - «PFObject» не имеет члена с именем «subscript»

К сожалению, я получаю эту ошибку: «PFObject» не имеет члена с именем «индекс». Я следовал примеру кода и инструкциям точно так, как они написаны, и несколько раз переделал их, но с тем же результатом. Я действительно не понимаю, где я ошибался, особенно в том, что он прямо с сайта. Я нахожусь в Xcode 6.4, ориентированном на iOS SDK 8.4, используя версию 1.8.3 библиотеки Parse.

Это код на ViewController в методе viewDidLoad (я запомнила включить импорт Разбор)

let testObject = PFObject(className: "TestObject") 
testObject["foo"] = "bar" 
testObject.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in 
    println("Object has been saved.") 
} 

и это код, который я добавил к AppDelegate. Опять же, я импортировал Parse и Bolts, как указано в руководстве. Это единственный код, который я изменил, остальное - как стандартное пустое одноразовое приложение. Я изменил идентификатор приложения и клиентский ключ.

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

Parse.enableLocalDatastore() 

Parse.setApplicationId("-redacted-", 
    clientKey: "-redacted-") 

PFAnalytics.trackAppOpenedWithLaunchOptions(launchOptions) 
} 

Любые идеи относительно того, как я могу исправить это или где я, возможно, поступил не так?

ответ

0

Вы можете подождать лучшего ответа, в котором кто-нибудь объяснит быструю разворачиваемость и необязательные типы, связанные с деталями разбора (хотелось бы, чтобы я был квалифицирован, чтобы дать такой ответ). Тем временем быстрое исправление заключается в обходе сахара object["foo"] и использовании функциональной формы доступа к свойствам, например object.objectForKey("foo").

0

Я попробовал и получил тот же результат. я тоже стараюсь делать

testObject.setValue("bar", forKey: "foo") 

И та же ошибка происходит. Похоже, что это вставка «nil» вместо значения или объекта. Я не знаю почему.

Что я могу предложить, это использовать файлы Objective-C на Parse.com, а затем создать заголовочный файл с мостом.

Затем выполните код, указанный на языке Swift - тот, что находится в AppDelegate.swift, и тот, у которого есть viewDidLoad.

Код должен работать.

Я думаю, что должна быть проблема/несовместимость с их новой структурой для языка Swift. Я не уверен в этом.

Incase происходит та же ошибка, используйте

testObject.setValue("bar", forKey: "foo") 

в обмен с:

testObject["foo"] = "bar" 

Хотя я прочитал это ... я не знаю, если это связано с проблемой здесь, в их стартовом проекте: 'PFObject' does not have a member named 'subscript'