- 博客(51)
- 资源 (4)
- 收藏
- 关注
原创 BGTaskScheduler应用后台任务调度
1、在didFinishLaunchingWithOptions中创建任务,并设置任务标识(一段自己设置的字符串)这个标识符需要跟info.plist中BGTaskSchedulerPermittedIdentifiers所配置的数组中某个值保持一致。info.plist配置let queue = OperationQueue()func application(_ applica...
2024-02-19 13:57:40
521
原创 Github访问慢问题解决
1、打开这个网址:https://www.ipaddress.com/查询IP2、在搜索框里输入:github.com查询到的IP记录下来3、在搜索框里输入:github.global.ssl.fastly.net查询到的IP记录下来4、在搜索框里输入:assets-cdn.github.com查询到的IP记录下来5、把记录下的IP及域名录入到hosts里如下所示:hosts...
2024-02-18 11:21:22
297
原创 Xcode14.3打包的APP在iOS13.x上启动崩溃闪退
Xcode14.3 ,iOS13.6.1, iOS13.6, iOS13.3, iOS13.x今天用Xcode 14.3打包安装在iOS 13.x的手机启动崩溃,但是连着Xcode调试时没有问题,不连着Xcode14.3时启动APP就闪退。从苹果官网看到也有不少人遇到,但是没有具体的解决方案。目前从以下几点处理这个问题:1.降级Xcode到14.2打包可解决该问题2.app 最低目标版...
2023-04-21 14:00:07
112
原创 s7 s7pe s9 在APP中的配网攻略
低价入手一台S7体脂秤,满心欢喜,原价x99的秤,竟然被我几十块搞到手了,偷乐一会儿。但是这个秤让我费了不少功夫才配网成功分享下配网步骤吧。因简书的审核提示有营销性质,我就把前几步去掉吧,咱们直接到第4步:4、权限问题iOS需要支持定位功能,否则iOS 13上无法自动获取wifi名字,这时需要手动输入wifi名字安卓需要开启存储,位置,和悬浮窗权限5、输入wifi密码首先确认,你要...
2020-10-28 13:20:38
640
原创 Universal Links使用指南
最近搞微信授权登录,在开放平台创建app时发现需要配置Universal Links,以前没这个玩应儿,就研究研究怎么搞。Universal Links是什么这个翻译过来就是通用链接。如果设备里安装了你的app,用户点击一个Universal Links链接时,会直接跳转到你的app,无需通过safari中间中转。如果设备里没有安装你的app,点击Universal Links时,会在safa...
2020-04-20 17:52:41
960
原创 pod update ,pod install ,pod outdated的使用
pod install在项目里创建Podfile文件,并且在该文件里录入了pod库及其版本, pod install会安装指定的pod库版本, 并且会把安装的pod库版本号记录到Podfile.lock文件里,下次再pod install时,pod库并不会更新pod库的版本,但是如果在Podfile里删除了或注释了某个库,pod install时就会删除该pod库,并且Podfile.lock...
2020-04-17 16:52:37
340
原创 CocoaPods版本升级
当你遇到下面的场景时就表示需要升级Cocoapods了the version of cocoapods used to generate the lockfile (1.9.1) is higher than the version of ...可以查看下自己的cocoapods版本号执行命令:pod --version结果:1.8.4查看cocoapods源执行命令:gem sour...
2020-04-10 15:00:33
407
1
原创 iOS UICollectionView的cell没有按预期展示问题
当你的cell没有按你设计的位置展示是可能原因有以下几点:使用了storyboard创建collectionView,并且collectionView的Estmate Size属性设置的是auto ,这个属性会导致页面总是乱的。需要把这个属性设置为None即可collectionView使用了storyboard创建了collectionView,但是没有对colle...
2020-03-31 15:55:18
330
原创 iOS NavigationBar与StatusBar的控制
NavigationBar透明控制NavigationBar默认是半透明的。isTranslucent属性true表示半透明,否则不透明。完全透明需要修改背景图和隐藏底部阴影线。代码如下//这个看到的NavigationBar就是透明的self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:...
2020-03-28 11:18:15
194
原创 iOS edgesForExtendedLayouts用到的适配
iOS7以后,VC默认使用全屏布局,即view的origin.x是从屏幕的左上角开始计算的。在有navigationcontroller合uitabbarcontroller时,view也是默认占满整个屏幕的。edgesForExtendedLayoutedgesForExtendedLayout的作用是,告知view是在整个屏幕哪个方向延展。默认值是:UIRectEdgeAll,向上下左右四...
2019-03-27 17:56:18
151
原创 iOS 如何配置UIButton的title与Image的EdgeInsets
如何配置UIButton的title与Image的EdgeInsetsUIEdgeInsetsMake(top,left,bottom,right),它的作用是处理控件距离容器的上左下右的距离,可以为正值也可以是负值。下面的表格展示了正负值表现的效果UIEdgeInsetstopleftbottomright正值向下偏移向右偏移向上偏移向左偏移负值向上偏...
2019-03-26 20:26:20
382
原创 iOS开发博客
1、刘彦玮的博客2、iOS开发技术栈路线图3、蓝牙开发4、蓝牙开发及位运算5、app秒开优化6、蓝牙UUID7、官方文档8、蓝牙29、蓝牙常用的service 和 characteric10、iOS获取bluetooth mac地址方法11、iOS ANCS服务12、iWatch开发113、iWatch开发214、蓝牙知识整理15、架构相关16、蓝牙ANCS相关...
2019-03-22 18:16:23
105
原创 SourceTree + Gerrit
通过Mac 上的SourceTree向Gerrit服务推送代码通过sourcetree向gerrit服务推送资源时不能直接推送。因为在gerrit上需要审查代码,审查代码之后才会合并到master。不清楚gerrit工作流程的可以查阅下面的文档gerrit的工作流程及使用可以查阅这个文档可以通过git命令向gerrit推送,但是个人更喜欢sourcetreee可视化的操作,下面就介绍配置流程...
2019-03-13 18:54:53
1341
原创 SourceTree fatal:Authentication failed for xxxxx
在sourcetree上推送代码时,让我输入账号和密码,当时可能是输入了错误的账号和密码。推送时一直报:incorrect username or password. fatal: Authentication failed for xxxxx让人非常不爽,当时也不知道如何修改再次重新输入账号和密码,后来查到需要删除以前输入的账号。步骤如下:sourceTree 偏好设置->高级如图所...
2019-03-12 23:28:33
244
原创 iOS CNContactStore 与AddressBook
为了兼容iOS9以前与iOS9以后用到的通讯录fromework,做了这个封装,方便调用CNContactStore和AddressBook需要导入的头文件//ios9之前导入的框架#import <AddressBook/AddressBook.h>#import <AddressBookUI/AddressBookUI.h>//ios9之后导入的框架#imp...
2018-12-03 19:17:25
1033
原创 iOS CLLocationManager 地理定位
鉴于地理位置的获取是异步的,所以在获取地理位置信息之后再通知当前用户使用,就封装了下。需要导入的头文件:import <CoreLocation/CoreLocation.h>涉及到的类CCLocationCClocationManagerCCLocationManager像个坐标的管理者。CCLocation可以理解为对坐标的一些信息的封装。封装的文件.h文件#imp...
2018-11-27 16:04:21
255
原创 Mac 系统安装tomcat
虽然Mac里自带了Apache,只能针对web和PHP服务,如果针对应用还是无法满足,于是就安装了tomcat。1、安装tomcat下载tomathttps://tomcat/apche.orgtomcat-apache8.0.png我这里下载的是tomcat8.0下载解压完之后,解压并修改名字为Tomcat8,然后拷贝到~/Library/中在Terminal(终端)...
2018-11-14 14:51:43
110
原创 Mac 系统启动Apache
Mac系统里自带有Apache服务,所以只需要启动或者停止来使用该服务即可1、查询Apache版本sudo apachectl -v看到的结果是Server version: Apache/2.4.34 (Unix)Server built: Aug 17 2018 16:29:432、启动Apache命令sudo apachectl startApache启动状态下再次启...
2018-11-14 14:29:44
257
原创 iOS-RunTime 动态添加属性和方法
1.1动态添加属性:#import "Person.h"#import <objc/runtime.h>const char *homeKey = "homeKey";@implementation Person@dynamic home;//通过运行时,动态添加属性- (void)setHome:(NSString *)home { [self willCh...
2018-09-21 12:21:16
142
原创 iOS NSKeyedArchiver数据序列化
数据序列化需要当前类遵循NSCoding协议,该协议有两个方法需要实现- (instancetype)initWithCoder:(NSCoder *)aDecoder;//反序列化数据- (void)encodeWithCoder:(NSCoder *)aCoder;//序列化数据举例:@interface Person : NSObject<NSCoding>@p...
2018-09-20 17:17:31
90
原创 iOS jenkins+cocoapods打包
本来只想贴一下网上的教程,结合自己遇到的问题分享一下。但貌似还是不少小伙伴对配置有疑问。其实我看网上的教程的时候,网上jenkins配置跟我要做的jenkins配置页面还是有区别的,导致我有点疑惑。不过后面测试下来发现,虽然界面不太一样,但是配置下来效果还是一样的。我问了一下OPS小伙伴,我做的jenkins的配置版本貌似是1.6.0版本的,具体是不是这个版本我没查,一会儿贴截图的时候,网友们注意...
2018-09-20 16:20:09
273
原创 iOS WKWebView
WKWebView是iOS8之后推出来的控件,目的是为了取代UIWebView。WKWebView相比UIWebView有这些优点:1、支持更多的html5特性2、支持高达60fps的滚动刷新率以及内置手势3、与safari相同的javascript引擎4、不会占用更多的内存下面来讲讲它的使用一、创建创建配置WKWebViewConfiguration *config = [[...
2018-09-18 12:18:22
116
原创 iOS Crash
不需要通过dSYM来符号化crash。注册监控:void InstallUncaughtExceptionHandler(void){ NSSetUncaughtExceptionHandler(&HandleException); }监控处理:void HandleException(NSException *exception){ ...
2018-09-10 16:43:56
69
原创 iOS Core Foundation与Cocoa Foundation
都为相同的功能提供接口CoreFoundation需要人工管理指针。一些方法:CFRetain,CFRelease,但是没有autorelease。CocoaFoundation里ARC模式下,自动管理内存,MRC模式下一些方法:retain,release,autorelease。CocoaFoundation指针与CoreFoundation转换,需要处理指向对象的所有权,ARC提供3个修...
2018-08-29 17:18:50
129
原创 iOS多线程-dispatch_set_target_queue
祭出demo在GCD里,我们通过dispatch_get_global_queue可以设置这个全局并发队列的优先级,但是通过dispatch_queue_create是无法设置队列的优先级的。怎么办呢?dispatch_set_target_queue(queue1, queue2)就可以把queue1的优先级修改为queue2的优先级,这样就解决了,自行创建的队列无法设置优先级的问题。看下...
2018-08-28 11:19:05
126
原创 iOS多线程-RunLoop
1、概念RunLoop与线程关联的,是一种事件处理环,用来安排和协调到来的事件,目的就是让其关联的线程在有事件到达时时刻保持运行状态,而当没有事件需要处理时进入睡眠状态从而节约资源,每一个线程都可以有一个RunLoop对象与之对应,并且是在第一次获取它是系统自动创建的,比如主线程关联的RunLoop,我们都知道程序的入口函数是main函数,下面是创建工程后Xcode自动生成的main.m文件的m...
2018-08-27 14:49:45
103
原创 iOS多线程-NSOperation&NSOperationQueue
祭出demoFoundation框架提供了NSOperation和NSOpeartionQueue 这两个面向对象的多线程类,这两个类与GCD的功能类似。NSOperation是对任务的封装,NSOperationQueue提供执行队列,自动实现多核并行计算,自动管理线程的生命周期。并发情况下也是底层提供线程池模型来管理。但是NSOperation提供了更多的可定制开发。使用NSOperatio...
2018-08-24 18:48:40
168
原创 iOS多线程-GCD
1、字面理解GCD全称Grand Central Dispatch,是苹果提供的一个多核编程的解决方案,在真正意义上实现了并行操作,而不是并发。GCD使用线程池模型来执行用户提交的任务,所以它比较节约资源,不需要为每个任务都重新创建一个新的线程,GCD不需要自行编写并行代码,而是自动进行多核的并行计算,自动管理线程的生命周期,如:使用线程池管理线程的创建和销毁,线程的调度,任务的调度等,用户只需...
2018-08-24 10:12:38
102
原创 iOS多线程-NSthread
祭出demo1、类方法及属性/*类属性,调用这个方法时,返回的是当前执行的线程*/@property (class, readonly, strong) NSThread *currentThread;/*该类方法会启动一个线程,并且启动线程,无需调用start。*/+ (void)detachNewThreadWithBlock:(void (^)(void))block A...
2018-08-23 15:31:04
143
原创 UIWebView白屏的监控&监控JS文件加载
祭出demo现在很多App都改用h5来处理了。使用过程中引发了很多白屏现象,很多种原因会引起白屏。比如网络不通,JS加载慢,加载失败,JS文件缺失等。就我测试看,h5没有本地化的,网络不通,页面白屏非常正常,这个都不用去监控了。JS文件不存在这种情况的可能性也不大,如果JS文件缺失导致白屏,已经构成了生产事故了。我在这里讲讲JS加载慢和JS加载失败导致的白屏现象。1、如何监控到JS文件 加...
2018-08-22 12:35:04
396
原创 信号量dispatch_semaphore_t创建网络同步请求
当我需要查询3000条大盘股票数据并进行分析的时候,需要一条一条的检索数据,不能乱了,3000条并发请求会导致手机网络卡死中断,所以想能有某个机制实现网络同步请求,这样我就能一条一条的获取数据并分析了。于是我找到了信号量:dispatch_semaphore_t1、 dispatch_semaphore有三个方法://创建信号量dispatch_semaphore_create//释放信...
2018-08-14 16:16:26
263
原创 iOS JSON解析出错(解析非标准JSON)
ios只能解析标准格式的json 比如 "key":"value"这种形式,如果出现不带双引号的key或只有单引号的value,就是解析出错。这点不像安卓,可以强转。在项目中,我就遇到了这种不标准的json字符串需要解析.我的想法是,把不带引号的key加上双引号,再把带有单引号的value转换成双引号的value。通过正则表达式实现查找并替换。这里有一点需要注意的是,再写正则的时候需要考虑到有...
2018-07-27 11:44:43
552
原创 RuntimeError - [Xcodeproj] Unknown object version.
在使用终端 pod install 时,提示错误如下RuntimeError - [Xcodeproj] Unknown object version.原因:这是因为你的 Xcode 版本和 CocoaPods 的版本不匹配,你需要更新你的 CocoaPods解决方法:终端输入命令 $gem install cocoapods --pre完成之后执行命令pod install即可...
2018-07-26 18:13:44
266
原创 vue 组件基础
祭出demo基础示例组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。组件的复用你可以将组件进行任意次数的复用:data必须是个函数当我们定义这个 <button-counter> 组件时,你可能会发现它的 data选项必须...
2018-07-22 03:47:56
92
原创 vue表单输入绑定
祭出demo 你可以用v-model 指令在表单 <input> 及<textarea> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。基础用法v-model 会忽略所有表单元素的 value、checked、select...
2018-07-20 19:15:19
87
原创 vue Class与Style绑定
操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。绑定 HTML Class对象语法数组语法绑定内联样式...
2018-07-19 17:07:51
84
原创 vue计算属性和侦听器
祭出demo计算属性<!--模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。 在模板中放入太多的逻辑会让模板过重且难以维护。例如:--> <div> {{ message.split('').reverse().join('') }} </div&...
2018-07-19 12:09:24
68
原创 vue模板语法
祭出demoVue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。插值文本 {...
2018-07-18 19:44:51
84
原创 vue-router配置
祭出demo: vue-router配置demo 这篇文章介绍的vue-router配置是基于vue-cli脚手架初始化的项目来做的配置,vue-cli脚手架初始化项目请看这里:Vue.js开发环境搭建项目初始化完成之后,接下来看这几个步骤:配置main.js// The Vue build version to load with the `import` command// ...
2018-07-13 17:32:00
103
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人