2017-01-16 2 views
0

Я ничего не делаю на контроллере просмотра, и я вижу график, который меняется во время работы приложения.Утечка памяти Xcode 8 instrument

Действительно ли это утечки?

enter image description here

Первый раз показать зеленую галочку, то это показывает 1 утечку и тогда никаких новых утечек.

Значит, это означает, что утечек нет или есть еще одна утечка, но не новые?

У меня есть фактически делегат приложения, который содержит сильную ссылку менеджера.

class AppDelegate { 

var applicationManager = ApplicationManager() 

} 

и у меня есть несколько услуг в ApplicationManager

class ApplicationManager 
{ 
    lazy var apiService: APIService = { 

    let service = APIService() 

    return service 

    }() 

    lazy var facebookService: FacebookService = { 

    let service = FacebookService() 

    return service 

    }() 
} 

У меня есть функция

func logInUser() 
    { 
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { 
     fatalError() 
    } 

    let apiService = appDelegate.applicationManager.apiService 

    guard let email = emailTextField.text, let password = passwordTextField.text else { 
     return 
    } 
    apiService.loginUserWith(email, password: password) {(result) in 
} 

мог этот код приводит проблемы?

Используя новые инструменты, которые я также вижу

что у меня есть один просочились объект (это в другом предыдущем проекте), но с теми же реализациями менеджера и услуг.

enter image description here

+0

утечка утечка; как только объект просочился, он просочился навсегда. Но это всего лишь один объект, один раз, поэтому, возможно, вам все равно. Вы можете использовать инструменты для отслеживания управления памятью объекта, о котором идет речь, если хотите. – matt

+0

@matt, может быть, что-то не так, да, я это понял), но странно, что служба, которую я только выделил, вызывает утечку, могу ли я поделиться источниками? –

+0

Существует ошибка утечки информации http://stackoverflow.com/questions/39944703/object-hierarchy-is-causing-a-memory-leak-in-swift, поэтому, возможно, ваша утечка не является реальной. – matt

ответ

2

Я собираюсь предложить, что есть на самом деле никакой утечки. Примечания к выпуску Xcode 8.2 говорят:

Отладчик памяти для MacOS и IOS Simulator фиксируют представления ложных утечек памяти для Swift классов, содержащих либо поля типа перечисления или классы, которые наследуют от некоторых Objective-C каркасных классов. (27932061)

Вы используете Xcode 8.1, поэтому мы знаем, что есть «сообщение о ложных утечек памяти для Swift классов» в этой версии (хотя при каких точных обстоятельств, и будет ли ошибка полностью фиксируется даже в Xcode 8.2, остается неясным для меня).

Кроме того, я загрузил ваш проект примера github и запустил его в Xcode 8.2.1 и не заметил утечки информации ни в инструментах, ни в графе памяти. Вот вывод Инструменты:

enter image description here

+0

благодарю за помощь!) Очень ценю это, как я и предполагал, тогда все мои приложения были написаны с утечками, что сумасшествие). Слава богу, и вы –

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