应用会在一段时间后将所有输入变量恢复为默认值

时间:2019-07-19 16:19:31

标签: swift

我写了我的拳头应用程序,非常简单,它在用户定义的时间范围内随机创建用户定义的徽章数量。它可以正常工作,但是经过一段时间(不确定多长时间,需要2-4个小时)后,所有用户输入信息都将恢复为程序的默认值。问题是应该每天运行,但是每天早晨都要设置它很烦人。我不确定这是编码问题还是应用程序在后台不执行任何操作时是否“重新启动”。请注意,这发生在我的iPhone 8上,但没有出现在模拟器上(或者我没有足够的耐心让它在模拟器上发生)。

我已经贴了几张印刷品和标签,试图确定何时发生;我确定我将它们放在正确的位置。我为包含这么多代码而感到抱歉-我试图清除一些错误,但我不知道问题出在哪里。

/*         Home  Navigation    */

.nav-t-holder {
    position: relative;
}
.nav-t-holder .nav-header {
    display: none;
    padding: 12px 20px;
}
.nav-t-holder .nav-t-header button {
    background: transparent;
    border: none;
    outline: none;
    color: #fff;
    font-size: 25px;
    border-radius: 5px;
}
.nav-t-holder .nav-t-footer {
    display: block;
}
.nav-t-holder .nav-t-footer ul.nav > li {
    display: inline-block;
    padding: 1.6em 0;
    position: relative;
}
.nav-t-holder .nav-t-footer ul.nav > li:hover a,
.nav-t-holder .nav-t-footer ul.nav > li.active a {
    color: #0071bd;
    background-color: transparent;
}
.nav-t-holder .nav-t-footer ul.nav > li:last-child > a {
    border: none;
    padding-right: 0;
}
.nav-t-holder .nav-t-footer ul.nav > li:first-child > a
{
    padding: 0 1.3em 0 0;
}
.nav-t-holder .nav-t-footer ul.nav > li > a {
    padding: 0 1.3em;
    display: block;
    color: #fff;
    text-transform: uppercase;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    font-family: 'Montserrat', sans-serif;
    font-size: 16px;
    font-weight: 600;
    border-right: 1px dashed #3f5262;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu {
    top: 100%;
    left: 0;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu.align-right {
    right: 0;
    left: auto;
}
.nav-t-holder .nav-t-footer ul.nav > li:hover > ul.sub-menu {
    visibility: visible;
    opacity: 1;
    display:block;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu > li > ul.sub-menu {
    top: 0;
    left: 100%;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu > li > ul.sub-menu.align-right {
    right: 100%;
    left: auto;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu > li:hover > ul.sub-menu {
    visibility: visible;
    opacity: 1;
}
.nav-t-holder .nav-t-footer ul.nav > li ul.sub-menu {
    position: absolute;
    width: 275px;
    opacity: 0;
    display:none;
    visibility: hidden;
    z-index: 99999;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    padding-left: 0;
     box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .16);
    -webkit-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .16);
    -moz-box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .16);
}
.nav-t-holder .nav-t-footer ul.nav > li ul.sub-menu li {
    display: block;
    padding: 0;
    background: #fff;
    position: relative;
}
.nav-t-holder .nav-t-footer ul.nav > li ul.sub-menu li:last-child a {
    border-bottom: 0;
}
.nav-t-holder .nav-t-footer ul.nav > li ul.sub-menu li:last-child a:after {
    display: none;
}
nav.main_menu .nav-holder .nav-t-footer ul.nav > li ul.sub-menu li:hover > a {
    color: #fff;
    background: #51c5e9;
}
.nav-t-holder .nav-t-footer ul.nav > li > ul.sub-menu > li:hover > ul.sub-menu {
    visibility: visible;
    opacity: 1;
    display:block;
}
nav.main_menu .nav-holder ul.nav.ind-menu li.current-menu-item a{
    color: #fab90a;
}

nav.main_menu .nav-holder ul.nav.ind-menu li ul.sub-menu li.current-menu-item a,nav.main_menu .nav-holder ul.nav.ind-menu li ul.sub-menu li.current-menu-item a:active  {
    color: #ffffff!important;
    background: #51c5e9;
}
nav.main_menu .nav-holder ul.nav.ind-menu li ul.sub-menu li a {
    color: #242424;
    font: 600 16px 'Open Sans', sans-serif;
    padding: 15px 25px 15px;
    border-bottom: 1px solid #e9e9e9;
    position: relative;
    display: block;
    font-weight: 600;
    -webkit-transition: all .3s ease;
    transition: all .3s ease;
    text-transform: capitalize;
    text-decoration: none;
}
nav.main_menu .nav-holder ul.nav.ind-menu li ul.sub-menu li:last-child a{
    border-bottom: none;
}
.nav-t-holder ul.nav li.has-t-sub-menu > a > button {
    display: none;
}
.nav-t-holder .nav-t-header {
    display: none;
    padding: 12px 0px;
    float: right;
}
.touch_top ul .item .media .blue-color a i {
    color: #1fa6c8;
}

1 个答案:

答案 0 :(得分:0)

您应该将数据存储在UserDefaults,Keychain和Core Data或其他内容中。如果您每次关闭应用程序时都不存储数据,则所有数据将从内存中取消分配,因为它们存储在堆中。

未保存的数据:

let myLabel: UILabel = UILabel()
myLabel.text = "Some text"

应保存为:

UserDefaults.standard.setValue(myLabel.text, forKey: "it.is.custom")

加载如下:

myLabel.text = UserDefaults.standard.value(forKey: "it.is.custom") as? String

学习参考:https://fluffy.es/persist-data/