iOS开发判断版本号不同

2023-11-08

/*
     //判断是否是第一次启动或者版本号不同时
     NSString * key = @"CFBundleVersion";
     // 上一次打开的版本号 (存储在沙盒中的版本号)
     NSString * lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:key];
     // 当前打开的版本号 (从info.plist中获得)
     NSString * currentVersion = [NSBundle mainBundle].infoDictionary[key];
     if ([currentVersion isEqualToString:lastVersion]) {
     NSString * user = [[NSUserDefaults standardUserDefaults] objectForKey:EJiaoJiUserMobile];
     if (user.length == 0) {
     ZDLoginViewController * login = [ZDLoginViewController new];
     self.window.rootViewController =login;
     }
     else{
     
     ZDTabBarController * rootBar = [ZDTabBarController new];
     self.window.rootViewController = rootBar;
     }
     }else{
     self.window.rootViewController = [ZDNewFeatureViewController new];
     // 将当前的版本号存到沙盒
     [[NSUserDefaults standardUserDefaults] setObject:currentVersion forKey:key];
     [[NSUserDefaults standardUserDefaults] synchronize];//立即存储
     }
     */
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS开发判断版本号不同 的相关文章

  • 定位城市+iOS8 定位问题

    在IOS8中定位功能新增了两个方法 void requestWhenInUseAuthorization OSX AVAILABLE STARTING MAC NA IPHONE 8 0 void requestAlwaysAuthoriz
  • iOS开发设置状态栏字体颜色

    状态栏的字体为黑色 UIStatusBarStyleDefault 状态栏的字体为白色 UIStatusBarStyleLightContent 一 在info plist中 将View controller based status ba
  • iOS基础教程-SQLite数据库操作(二简单实例学生信息增删改查数据库操作)

    学生名单管理界面实现数据库的增删改操作 关于UI部分 我们使用storyboard简单完成 在上一篇文章中有详细的描述iOS基础教程 SQLite数据库操作 一 StoryBoard操作 SQLite操作前准备工作 本篇结束以后 就可以完成
  • JSBinding iOS与JS交互(When-iOS-loves-JS)

    What s JSBinding It s Not Hybrid It s NOT a new technology JSBinding 绑定JS和Native JSBinding和HyBrid的对比 原生OC语音和脚本JS语言对比 API
  • iOS架构-组件化(项目实战-项目首页架构)

    UI架构设计 设计模式 外观模式 代理模式 适配器模式 adapter 注意 一版本只是搭建结构 一 1 0 Tab搭建 二 1 1 新增UICollectionView 主页 gt 整体设计基于 gt UICollectionView 滑
  • 错误贴

    pod 报错 bash usr local bin pod System Library Frameworks Ruby framework Versions 2 0 usr bin ruby bad interpreter No such
  • iOS架构-组件化(Carthage管理工具)

    一 Carthage项目管理工具使用 Step 1 安装 更新Homebrew工具 1 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install ma
  • TestFlight 添加测试人员 (内部测试人员)

    用有管理员身份的账号登陆 itunes connect 在登陆页面可以看到如下界面 选择用户和职能 会看到之前已经添加的用户 可以管理用户的app访问权限 找到 添加用户 输入用户的apple id一般是注册时候的邮箱地址形式 添加成功后会
  • iOS自动化布局-AutoLayout约束优先级

    约束的优先级 AutoLayout添加的约束中也有优先级 Priority 优先级的数值1 1000 分为两种情况 一种情况是我们经常添加的各种约束 默认值1000 最大值 优先执行 条件允许的话系统会自动满足我们的约束需求 第二种就是固有
  • iOS开发之 __block 与 __weak的区别理解

    资料来源1 资料来源2 block对象在block中是可以被修改 重新赋值的 使用了 weak修饰符的对象 作用等同于定义为weak的property 自然不会导致循环引用问题 因为苹果文档已经说的很清楚 当原对象没有任何强引用的时候 弱引
  • 定制化UINavigationBar

    FirstViewController 定制化UINavigationBar void customNavigationBar 按钮被挡住 原因是 navigationbar的透明度默认为YES 先取出navigationbar UINav
  • OC中的基本容器和基本数据类型

    基本数据类型 NSRange 是一个结构体 里面有两个数据成员数据类型都为NSUInteger 就是c语言中的无符号整形 一个是location表示集合的起始地址 另外一个变量是length表示从起始地址开始算多少个元素 NSRange的三
  • iOS集成Bugly详解

    异常上报 SDK 集成 通过CocoaPods集成 新建项目 cd 项目目录 vim Podfile source https github com CocoaPods Specs git inhibit all warnings plat
  • iOS开发之动画篇-基础篇1

    基础篇 一 制作动画的原理 十二个基本的动画原理 网页动画的十二原则 参考全部开源的HTML和CSS代码实现 二 寻找灵感 1 知名设计师共享平台 Dribbble相当于程序员的gitHub 2 pttrns 手机设计较多 三 制作动画的基
  • iOS面试题(2.类变量的@protected,@private,@public,@package声明各有什么含义)拓展:常用框架和第三方框架

    2 类变量的 protected private public package声明各有什么含义 private 作用范围只能在自身类 protected 作用范围在自身类和继承自己的子类 默认 public 作用范围最大 可以在任何地方被访
  • iOS APP 启动页和icon图标尺寸

    前言 记录一下竖屏iPhone启动页和icon图标尺寸 好记性不如烂笔头 1 启动页尺寸 320x480 640x960 640x1136 750x1334 1125x2436 1242x2208 1242x2688 828x1792 2
  • iOS 报错:没有查看权限the file "xxx.app" couldn't be opened because you don't have permission to view it.

    iOS the file xxx app couldn t be opened because you don t have permission to view it 问题解决方法汇总 1 最近重构项目 增加target来区分环境进行差异
  • iOS架构-组件化(项目框架搭建2)

    静态库引用静态库 如果像上图一样 直接在业务层组件引用数据层组件的文件 则会报错 因为组件之间没有建立引用关系 如下图 静态库如何引用Pods第三方库 拷贝Podfile文件到项目 打开终端执行pad install 直接引用Pod下面的Y
  • iOS开发-国际化-配置App多语言

    作者 大慈大悲大熊猫 链接 http www jianshu com p 1edd4bda6fe5 來源 简书 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 基本设置 第一步 先在Project的info里添加所需要支
  • Testflight 添加外部测试人员

    内部测试人员 不需要提供所有的metadata 外部测试人员 为了使得外部人员可以测试app的预发布build 必须提供如下的metadata What to test App description Feedback email Mark

随机推荐

  • 使用 Docker 运行简单的 python 程序

    以下是一个简单的 python 程序 用户输入一个最小值和最大值 输出二者之间的随机数 from random import randint min number int input Please enter the min number
  • 利用chatgpt实现三分钟快速制作自定义PPT

    目录 利用ChatGPT MindShow三分钟生成PPT 机器人 道合顺 莓用ai 百晓生 aichat 结合提词器以达到更好地提问效果 更好地提问ChatGPT 常用prompt表 小黄同学LL的博客 CSDN博客 举个栗子 利用Cha
  • 现代循环神经网络-门控循环单元(GRU)

    理论 门控隐状态 门控循环单元与普通的循环神经网络之间的关键区别在于 前者支持隐状态的门控 这意味着模型有专门的机制来确定应该何时更新隐状态 以及应该何时重置隐状态 这些机制是可学习的 并且能够解决了上面列出的问题 例如 如果第一个词元非常
  • stream().sorted 排序

    想用stream sorted 做双字段排序 list stream sorted Comparator comparing outObject gt outObject getinnerObject getAttribute revers
  • 责任链模式在项目中的引入使用

    责任链模式是一种设计模式 在责任链模式里 很多对象由每一个对象对其下家的引用而连接起来形成一条链 请求在这个链上传递 直到链上的某一个对象决定处理此请求 发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求 这使得系统可以在不影响客
  • mybatisPlus 枚举类注解 @EnumValue @JsonValue

    1 概要说明 创建枚举类 在需要存储数据库的属性上添加 EnumValue注解 在需要前端展示的属性上添加 JsonValue注解 2 示例实践 public enum SexEnum MAN 1 男 WOMAN 2 女 EnumValue
  • 使用FormData对象

    使用FormData对象 TABLE OF CONTENTS 创建一个FormData对象 使用HTML表单来初始化一个FormData对象 使用FormData对象发送文件 TAGS 文件 利用FormData对象 你可以使用一系列的键值
  • swagger介绍及使用

    文章目录 Swagger 概述 1 maven导入Swagger包 2 配置开启swagger2 3 测试swagger 4 配置swagger信息 5 配置swagger扫描接口 6 swagger分组与接口注释 Swagger 概述 S
  • rockemq创建topic

    sh mqadmin updateTopic n sms pro 007 9876 sms pro 008 9876 c DefaultCluster t smsFrontSmsMq 10 w 4 r 4
  • Java 每日面试题6( BufferReader, 对象序列化)

    BufferReader属于哪种流 主要是用来做什么 里面有哪些方法 BufferReader属于处理流中的缓冲流 可以将读取的内容存在内存里面 比Reader类多了一个readLine 方法 这篇博文提供了BufferReader类的详细
  • 传输层 —— TCP协议

    一 TCP 二 TCP报文段首部格式 1 序号 在一个TCP连接中传送的字节流中的每一个字节都按顺序编号 本字段表示本报文段所发送数据的第一个字节的序号 2 确认号 期望收到对方下一个报文段的第一
  • 【HTML】HTML5给网页音频带来的变化

    HTML HTML5给网页音频带来的变化 引言 内容速递 看了本文您能了解到的知识 音乐播放 相信大家都很熟悉 但是早在之前的音乐播放之前 你的浏览器会问你 是否下载flash插件 然而现在 估计一些年轻的开发者都不用了解flash是啥了
  • Jmeter压测接口全流程详解

    Jmeter压测接口全流程详解 描述 内容包含Jmeter压测软件的安装 环境变量配置 具体实例参数的配置 动态参数构建 元件引入 函数引入 监控插件引入 在京东云上的引用等 第一部分 Jmeter应用下载 一 Jmeter下载 进入官网
  • 一起学nRF51xx 8 -  Time

    前言 Nrf518xx的TIMER有以下几部分组成 nrf51822有三个定时器 time0 1 2 1 计数时钟源 有1M 16M 2种时钟源 2 时钟源分频器 用来设置分频 范围是2的0 9次方 3 定时 计数模式选择 用来配置TIME
  • 百度翻译爬虫-使用execjs库逆向解析百度翻译

    本文目标破解百度翻译接口 抓取翻译结果数据 python3安装execjs方法 pip install pyexecjs 检查页面 使用Chrome浏览器打开百度翻译 观察界面 右键查看源代码 发现密密麻麻全是看不懂JS代码 初步判定为是异
  • CVE-2017-11882漏洞复现

    本文记录一下针对CVE 2017 11882的漏洞复现 0x00 前言 参考backlion师傅的PDF 记录一下这个过程 2017年11月14日 微软发布了11月份的安全补丁更新 其中比较引人关注的莫过于悄然修复了潜伏17年之久的Offi
  • 详解c++---优先级队列和仿函数

    目录标题 什么是仿函数 如何定义一个仿函数 什么是优先级队列 优先级队列的使用 模拟实现priority queue 准备工作 top函数的实现 size函数的实现 empty函数的实现 adjustup函数的实现 push函数的实现 po
  • Opencv图像处理(全)

    文章目录 博主精品专栏导航 备注 以下源码均可运行 不同项目涉及的函数均有详细分析说明 11 图像项目实战 一 银行卡号识别 sort contours resize 二 文档扫描OCR识别 cv2 getPerspectiveTransf
  • IntelliJ IDEA 修改 idea64.exe.vmoptions文件修改错误导致软件打不开

    如果修改了idea64 exe vmoptions文件中的参数 然后导致idea打不开 那么此文一定能帮你解决问题 有的小伙伴出现此类问题之后 可能尝试的重装IntelliJ IDEA的方法 但是重装之后发现还是解决不了问题 还是会弹出如下
  • iOS开发判断版本号不同

    判断是否是第一次启动或者版本号不同时 NSString key CFBundleVersion 上一次打开的版本号 存储在沙盒中的版本号 NSString lastVersion NSUserDefaults standardUserDef