自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 iOS 开发问题记录

使用GCDWebServer开启一个本地服务,将沙盒路径转成http链接访问就可以了。编译出错duplicate symbol OBJC_CLASS$_ XXX in。通过搜索.m文件查出 在哪个类中导入了 换成.h文件即可。WKWebView加载沙盒路径录音文件的时候加载不出来。导入头文件的时候误导入.m文件。

2024-03-27 15:56:30 86

原创 iOS中图片的size和图片像素的关系

image.size.width * image.scale = image.像素.widthimage.size.height * image.scale = image.像素.height。

2024-05-10 18:07:32 314 1

原创 iOS使用Fastlane自动打包上传到蒲公英

当你看到安卓同事通过gradle进行自动打包的时候是不是非常羡慕。别着急iOS也有一键打包的工具,这里强烈推荐fastlane。Fastlane 是一个用于自动化构建、测试和部署移动应用的工具集,它提供了一系列丰富的命令行工具和库,可以帮助开发人员简化和加速 iOS 和 Android 应用的开发流程。fastlane一键打包真的好用,运行命令后我们就可以做别的啦,不用像手动打包一样要一步步操作。并且android端也可以用fastlane。fastlane的强大也远不止打包,其他功能大家可以自己去探索。

2024-04-03 17:04:08 1047

原创 iOS卡顿优化检测

一般写代码过程中容易造成卡顿的问题就是主线程存在一些耗时操作,例如数据库操作,图片的处理,大量数据的处理等。在日常编码过程中要养成习惯,将一些耗时操作放在并发队列中异步执行,这样可以避免很多卡顿的问题。

2024-04-03 16:03:26 1013

原创 iOS调试BAD_ACCESS错误、定位崩溃的位置

有时程序崩溃根本不知错误发生在什么地方。比如程序出现EXEC_BAD_ACCESS的时候,虽然大部分情况使用设定 NSZombieEnabled环境变量可以帮助你找到问题的所在,但少数情况下,即使设定了NSZombieEnabled环境变量,还是不知道程序崩 溃在什么地方。#endif你需要在每个object的.m或者.mm文件中加入上面代码,并且在 other c flags中加入-DFOR_DEBUG(记住请只在Debug Configuration下加入此标记)。

2024-03-27 16:19:28 590

原创 iOS关于App或者h5如何唤起另一个App

根据我们上面对URL Schemes的使用,我们可以很轻易地理解,在以本地应用为主的 iOS 上,我们可以像定位一个网页一样,用一种特殊的 URL 来定位一个应用甚至应用里某个具体的功能。大概原理是:判断是安卓还是苹果,如果为苹果显示苹果的标签,点击a标签,执行跳转唤起APP(openAPP),加一个定时器,三秒(可根据需求调整)之后,如果没有唤起成功,跳转到App Store下载页面。Schemes,表示的是一个 URL 中的一个位置——最初始的位置,即 😕/之前的那段字符。

2024-03-27 16:16:34 372

原创 iOS之viewForkey和objectForkey,setObjectForkey和setValueForkey的区别

objectForKey: returns the value associated with aKey, or nil if no value is associated with aKey. 返回指定 key 的 value,若没有这个 key 返回 nil.valueForKey: returns the value associated with a given key. 同样是返回指定 key 的 value。

2024-03-27 16:14:37 250

原创 iOS一个页面多个网络请求完成之后再执行其他操作

我们在开发的过程中,大家应该都会遇到一进入某个页面,就要请求多个接口,然后我们在完成所有请求以后再进行其他操作,对于这种需求,我们如何来设计我们的代码呢?例如下面的场景,在首页有5个模块,我们需要分别调用5个不同的接口来获取数据,然后展示界面。

2024-03-27 16:13:10 440

原创 iOS关于UILabel设置行间距后计算高度的那些坑

前段时间公司新开启一个项目,在显示文字时,增加了行间距。原本以为只是展示和计算高度的时候添加上富文本的lineSpace属性即可,但是结果在显示一行中文的时候,却发现多了一个行间距的高度,展示的Label也多了一个行间距的高度。经过查找资料,网上也有人遇到同样的坑。计算高度时,需要判断一下是否中文是一行,如果是一行并且有行间距,此时总体高度应该减去行间距。展示的Label如果用的是自适应高度,也应该做一下判断,一行中文带行间距时,不设置Label的lineSpace属性。

2024-03-27 16:09:48 549

原创 iOS屏幕适配方案详解

xcode6之后只有一个,并且是正方形的,也就是说不管你做那种屏幕尺寸的app(无论是ipad还是iphone),都只用这一个storyboard就可以了;这一部分相当于是一个autoResizing,强大之处在于可以是任意两个view的相对布局,可以设置距离父控件的上下左右位置(红色框),还有自身的宽高,还可以相对其他控件设置宽高(蓝色框)autoresizing是苹果早期的ui布局适配的解决办法,所有的ui控件只要相对父控件布局就可以了,没错autoResizing就是一个相对于父控件的布局解决方法;

2024-03-27 16:07:08 1056

原创 iOS富文本添加点击事件

调整上边的内边距的值来达到垂直居中的效果。1.默认给文字添加链接之后文字显示是蓝色的,直接用属性字符串的NSForegroundColorAttributeName修改颜色没有效果,必须使用UITextView的linkTextAttributes属性在这里面设置链接文字的颜色和字体等。”,最开始的做法比较简单粗暴直接用按钮设置富文本显示,但是有一个不好的体验就是点击前面的“阅读并同意”也会跳进隐私政策页面。公司项目中需要在登录界面加一个隐私政策的入口,类似于“阅读并同意。

2024-03-27 16:03:02 561 2

原创 iOS开发多线程总结

进程是计算机中已运行程序的实体,是线程的容器。每个进程之间是相互独立的,每个进程均运行在其专用且受保护的内存空间内。把工厂作为一个系统,进程类似于车间。

2024-03-27 16:01:34 1066

原创 iOS +load、+ initialize、init介绍

如果子类没有实现+initialize,那么就是先调用一次父类的+initialize,然后根据objc_msgSend的特点,在子类找不到+initialize,会到父类去找,那么就会再调用一次父类的+initialize方法,总共调用两次。2、如果分类实现了+initialize,则会覆盖类本身的+initialize调用,且调用顺序还是先调用父类分类的+initialize,再调用子类分类的+initialize;2、子类调用+load方法时,要先要调用父类的+load方法;

2024-03-27 15:58:35 961

原创 CoreGraphics详解

iOS开发中我们经常会使用UIButton,UILabel等,这些简单的api可以让我们很快完成常规界面的开发。如果碰到一些需要自定义的界面,我们肯定需要自己绘制。今天就学习记录下iOS中关于绘制的框架CoreGraphics。Core Graphics是基于Quartz 2D的一个高级绘图引擎,常用于iOS,tvOS,macOS的图形绘制应用开发。Core Graphics是对底层C语言的一个简单封装,其中提供大量的低层次,轻量级的2D渲染API。###系统的绘图框架UIKit。

2024-03-27 15:52:47 995

原创 iOS关于NSDate时区问题

iOS是用UTC表示时区的。UTC是协调世界时,又称世界统一时间、时间标准时间、国际协调时间。协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。UTC不属于任何时区,但是其他地区时间的表示可以跟时区挂钩,比如中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚的时间与UTC的时差均为+8,也就是UTC+8。

2024-03-27 15:50:06 212

原创 iOS处理接口返回null,属性名为id等情况

在自己的模型中实现代理MJKeyValue中的方法- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property;在自己的模型中实现代理MJKeyValue中的方法+ (NSDictionary *)mj_replacedKeyFromPropertyName。

2024-03-27 15:47:08 199

原创 iOS 应用第一次安装未获得网络权限处理

很多开发者习惯把预加载接口放到AppDelegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法里面,但是现在第一次安装,默认是没有联网能力的,按之前的写法会导致配置接口请求失败,首页数据为空,第一次获取DeviceToken失败,添加推送通知失败,第三方初始化失败等等一系列问题。

2024-03-27 15:38:14 1403

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除