我写了我的拳头应用程序,非常简单,它在用户定义的时间范围内随机创建用户定义的徽章数量。它可以正常工作,但是经过一段时间(不确定多长时间,需要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;
}
答案 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