Я новичок в Swift и пытался понять ленивую переменную. У меня есть опыт работы на Objective-C, но быстрый сбивает меня с ума.Как получить доступ к переменной экземпляра в объявлении ленивой переменной swift
У меня есть базовая модель данных. Где Person
---- пробы ---->Account
и Account
---- принадлежит для ->Person
. holds
и belongsTo
- это отношения.
Person
будет отображаться список, а при нажатии на человека все связанные с ним учетные записи должны быть перечислены в TableView. Я использую NSFetchedResultsController
, потому что учетная запись может быть добавлена «на лету», и я хочу немедленно отразить изменения, используя делегат NSFetchedResultsController
.
Теперь я передал объект испытанного человека в свой класс.
class DetailViewController : ViewController{
var foundPerson : Person?
lazy var accountFetchedResultsController : NSFetchedResultsController = {
let fetchRequest = NSFetchRequest(entityName: "AccountInfo")
fetchRequest.predicate = NSPredicate(format: "belongsTo = %@", foundPerson!)
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "accountnumber", ascending: true)]
let appdelegate = UIApplication.sharedApplication().delegate as? AppDelegate
var fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: appdelegate!.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
return fetchedResultsController
}()
//other view controller methods
}
Когда я пытаюсь скомпилировать это дает ошибку о том, что
«foundPerson члены экземпляра не могут быть использованы на типе DetailViewController»
Я не мог многое из этого понять ошибка. Что именно он пытается передать? Какая ошибка? Заранее спасибо
Бинго дружище :) Получил ответ :) Я собирался удалить мой вопрос и увидел ур ответ :) Спасибо :) Я принимаю ур ответ через 8 минут (Не могу принять ответ, поскольку я его проголосовал именно сейчас) –