Почему приложение View View Swift без утечки кода памяти? - PullRequest
0 голосов
/ 01 июля 2019

Я создал одно приложение Swift View с UILabel на нем.

Когда я пытаюсь профилировать это приложение, кажется, что у него течет память. Почему это происходит?

Screenshot with leaked memory

Я уверен, что где-то пропущен шаг или флаг, но я не могу его найти.

Я не написал ни одного своего кода в этом приложении. Это приложение, созданное с помощью шаблона XCode iOS Single View App. Может ли кто-нибудь помочь мне понять, что здесь происходит?

Редактировать 1:

Вот код:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(_ application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    }
}

class ViewController: UIViewController {
}

Также прилагается скриншот главной раскадровки. Screenshot of Main storyboard

1 Ответ

0 голосов
/ 01 июля 2019

Если у вас нет кода в вашем приложении, логически не должно быть утечки памяти.

После того, как вы это выясните, давайте поговорим об инструментах (зеленые флажки икрасные метки x) , они обычно указывают на изменение в использовании памяти, не всегда означает, что произошла утечка памяти, это может быть вызвано многими причинами.

Как вы можете видеть, проверка выполняется для каждой временной отметки, поэтому она сравнивает использование памяти между этими временными метками и решает, есть ли потенциальная утечка памяти, эти скачки в памяти не всегда оправдываются памятью, но большеКак будто во время этой отметки времени произошли изменения в памяти, так что вы можете проверить, действительно ли это была утечка памяти или просто нормальная память росла из-за некоторых функциональных возможностей или выделения зависимых объектов, это скорее инструмент мониторинга, чеминструмент обнаружения ошибок, который используется для отслеживания изменений в распределении памяти нашего приложения и т.д ..

...