这个功能使用说明是每次app更新或者第一次安装都需要显示的

简介:

这个功能使用说明是每次app更新或者第一次安装都需要显示的

这个功能使用说明是每次app更新或者第一次安装都需要显示的。你可以给每个需要显示的说明界面设置一个BOOL变量控制它是否显示。在applicationDidFinishLaunching的函数中判断app是第一次安装还是更新升级。


NSString *appVersion = [[[NSBundle mainBundleinfoDictionaryobjectForKey:@"CFBundleShortVersionString"];


    NSString *appBuild = [[[NSBundle mainBundleinfoDictionaryobjectForKey:@"CFBundleVersion"];


    if (![NSUserDefaults stringForKey:@"appVersion"] || 


        ![NSUserDefaults stringForKey:@"appBuild"] || 


        ![[NSUserDefaults stringForKey:@"appVersion"] isEqualToString:appVersion] || 


        ![[NSUserDefaults stringForKey:@"appBuild"] isEqualToString:appBuild]) {


        [NSUserDefaults setBool:YES forKey:isFirstLaunch];


        [NSUserDefaults setString:appVersion forKey:@"appVersion"];


        [NSUserDefaults setString:appBuild forKey:@"appBuild"];


    }


这段代码用了NSUserDefaults 的Category方法来取值和保存值。isFirstLaunch 是定义的宏,通过取这个key的值就知道是否是第一次安装。根据这个key的BOOL值来判断是否需要显示功能特效界面。显示完功能特效界面再将这个key值设为NO并保存在NSUserDefaults ,这样下次就不会再重复显示功能说明界面。由于每个功能说明界面都不一样,为了方便起见,你可以给每个界面都设置一个BOOL变量来控制它们是否要显示。


这个功能使用说明是每次app更新或者第一次安装都需要显示的。你可以给每个需要显示的说明界面设置一个BOOL变量控制它是否显示。在applicationDidFinishLaunching的函数中判断app是第一次安装还是更新升级。


NSString *appVersion = [[[NSBundle mainBundleinfoDictionaryobjectForKey:@"CFBundleShortVersionString"];


    NSString *appBuild = [[[NSBundle mainBundleinfoDictionaryobjectForKey:@"CFBundleVersion"];


    if (![NSUserDefaults stringForKey:@"appVersion"] || 


        ![NSUserDefaults stringForKey:@"appBuild"] || 


        ![[NSUserDefaults stringForKey:@"appVersion"] isEqualToString:appVersion] || 


        ![[NSUserDefaults stringForKey:@"appBuild"] isEqualToString:appBuild]) {


        [NSUserDefaults setBool:YES forKey:isFirstLaunch];


        [NSUserDefaults setString:appVersion forKey:@"appVersion"];


        [NSUserDefaults setString:appBuild forKey:@"appBuild"];


    }


这段代码用了NSUserDefaults 的Category方法来取值和保存值。isFirstLaunch 是定义的宏,通过取这个key的值就知道是否是第一次安装。根据这个key的BOOL值来判断是否需要显示功能特效界面。显示完功能特效界面再将这个key值设为NO并保存在NSUserDefaults ,这样下次就不会再重复显示功能说明界面。由于每个功能说明界面都不一样,为了方便起见,你可以给每个界面都设置一个BOOL变量来控制它们是否要显示。










本文转自 卓行天下  51CTO博客,原文链接:http://blog.51cto.com/9951038/1746323,如需转载请自行联系原作者
目录
相关文章
|
6天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
2月前
|
Java PHP
【应用服务 App Service】 App Service Rewrite 实例 - 反向代理转发功能
【应用服务 App Service】 App Service Rewrite 实例 - 反向代理转发功能
【应用服务 App Service】 App Service Rewrite 实例 - 反向代理转发功能
|
2月前
|
Python
【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"
【Azure 应用服务】App Service的运行状况检查功能失效,一直提示"实例运行不正常"
|
2月前
|
Go PHP 数据安全/隐私保护
【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP
【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP
|
2月前
|
测试技术
一款功能完善的智能匹配1V1视频聊天App应该通过的测试CASE
文章列举了一系列针对1V1视频聊天App的测试用例,包括UI样式、权限请求、登录流程、匹配逻辑、消息处理、充值功能等多个方面的测试点,并标注了每个测试用例的执行状态,如通过(PASS)、失败(FAIL)或需要进一步处理(延期修改、待定、方案再定等)。
39 0
|
2月前
|
关系型数据库 Linux PostgreSQL
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
|
2月前
|
Linux C++ Docker
【Azure 应用服务】App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)
【Azure 应用服务】App Service for Linux 中实现 WebSocket 功能 (Python SocketIO)
|
2月前
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
|
2月前
|
数据库 Python
【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
|
2月前
|
监控 安全 前端开发
【Azure 应用服务】App Service 运行状况健康检查功能简介 (Health check)
【Azure 应用服务】App Service 运行状况健康检查功能简介 (Health check)
下一篇
无影云桌面