iOS
文章平均质量分 89
聚焦iOS入门开发基础知识。
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
iOS开发进阶(二十):Xcode 断点调试详解
所谓断点,其实就是一个让应用暂停运行的机制,这是为了方便开发人员执行调试,查看寄存器的某些值。既然设置了断点,可以让应用停在某一时刻,那么这一时刻应用所处的运行环境便一目了然,这个环境就是案发现场,而断点就是帮助开发人员破案的工具。这个时候开发人员便可以使用各项调试命令,而编译器则会反馈相应线索。Xcode编译器允许开发人员在代码中的任意位置设置断点,但是如何打断点也是一门手艺,有些断点的设置是毫无意义的,比如将断点设置在了一处声明某个常量的地方,那么编译器便会跳过这处,直到它遇见真正的可执行指令处。原创 2024-04-24 10:49:43 · 911 阅读 · 1 评论 -
iOS开发进阶(十九):xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
Xcode 14.1Xcode 14.2Xcode 15.2没错,为了验证设备兼容性,办公电脑中安装了三个版本的Xcode。项目编译阶段,出现如下错误:详细错误信息如下:编译阶段出现以上错误,通常意味着Xcode无法找到或无法正确访问命令行工具的路径。这可能是因为命令行工具没有安装,或者安装后的路径不正确。解决方法:打开Xcode 14.2,然后前往“Xcode”菜单 -> “Settings”。在弹出的窗口中,选择“Locations”标签页,确认“”部分是否有显示路径。原创 2024-04-17 15:01:58 · 762 阅读 · 0 评论 -
iOS开发进阶(十八):页面传参
有关视图跳转详参博文《iOS开发进阶(十一):ViewController 控制器详解本篇博文继续讲解视图跳转参数如何传递与接收。界面跳转传值实际上就是将数据从一个界面传送给另一个界面,本文中的传值基于实现,首先在里面创建一个,把作为其根视图。return YES;新建一个继承于的视图控制器,命名为,为方便讲解,令为A,NextViewController为B。并在两个控制器分别放上一个button和一个label,label作为属性,button增加一个点击事件。在。原创 2024-04-12 16:18:25 · 529 阅读 · 0 评论 -
iOS开发进阶(十七):PrefixHeader.pch 预编译文件
错误信息:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders.错误原因:因为我们直接修改父组件传递过来的参数,这样会存在影响外部组件的风险。解决方案:在组件内部再构建一套属性域,来存储父组件传递过来的参数,从而实现与外界解耦。...原创 2020-05-25 08:54:05 · 2098 阅读 · 4 评论 -
iOS开发进阶(十六): Objective-C block、weakself、strongself
Block是OC语言中的一种数据类型,它是预先准备好的代码,在需要的时候可以直接执行。可以做为参数传递,也可以做为返回值,一般在实际开发中前者用的比较多。在多线程和网络场景中使用得也相当频繁,一般都是作为回调使用!其形式类似于C语言中指向函数的指针,在开发中也是反向传值的一种方式。在OC中使用操作符声明一个block变量,也是标示着一段block代码块的开始。block的实体包含在{}中。}];原创 2020-05-20 09:38:32 · 20764 阅读 · 2 评论 -
iOS开发进阶(十五):cocoapods 常用命令汇总
iOS项目开发阶段,应用cocoapods进行类库管理必不可少,掌握cocoapods相关常用命令同样很重要。原创 2024-04-03 14:23:09 · 307 阅读 · 0 评论 -
iOS开发进阶(十三):脚手架创建iOS项目
新建项目初期,需要创建项目基本框架,为此离不开辅助工具,及脚手架。当然,IDE也可以实现新建空白项目,但是其新建后的项目结构可能不符合预期设计,故需要通过脚手架创建项目方式统一项目开发规范,对于开发管理至关重要。open ../其中,生成后的项目结构如下图所示:由项目结构可知,脚手架中对项目做了很好的分层处理,便于项目解耦。原创 2024-04-02 17:07:47 · 704 阅读 · 0 评论 -
iOS开发进阶(十四):xcodebuild 命令应用详解
关于iOS组包,详参博文《ReactNative进阶(三十四):Jenkins 流水线 组包 iOS 应用包 ipa Archive 阶段报错error: Multiple commands produce问题修复及思考。原创 2024-04-02 10:33:10 · 1405 阅读 · 0 评论 -
iOS开发进阶(十二):UIImage 载入图像
仅载入图片,图像数据不会缓存。因此对于较大的图片以及使用情况较少时,那就能够用该方法,减少内存消耗。用这样的方式会消耗非常大的内存。载入图像也有自己的优势。对于同一个图像系统仅仅会把它。类方法加载的图片,只能获取ipa包路径下的图片资源。到内存一次,这对于图像的反复利用是非常有优势的。载入图像的方法非常多。中且也能加载ipa包路径下的图片资源。类方法加载的图片,通常放置在。类方法创建图片对象。原创 2024-03-28 13:33:00 · 279 阅读 · 0 评论 -
iOS开发进阶(十一):ViewController 控制器详解
iOS 界面开发最重要的首属和View是View的控制器,也就是一般的页面,用来管理页面的生命周期(它相当于安卓里的Activity,两者很像,但又有一些差异)。的特点是它有好几种。一种最基本的。所谓容器,就是它们本身不能单独用来显示,必须在里面放一个或几个。用于导航栏管理页面;用于底部tab管理页面;用于切换器管理页面;容器还可以嵌套,比如把放进里面,这样在tab页面里,可以用启动导航栏样式的二级子页面。原创 2024-03-28 10:53:58 · 1082 阅读 · 0 评论 -
iOS开发进阶(十):viewController 生命周期讲解
方法:销毁视图,释放资源。不要手动调用此方法,当引用计数值为0的时候,系统会自动调用此方法。可能会被调用多次(View可能会被多次加载),当view被添加到其他view中之前,会调用。当view从其他view中移除之前,调用。当view不再使用时,受到内存警告时,会将view释放并将其指向为。时,view已经生成了,时view还没有生成,分为A和B两个视图。原创 2024-03-28 09:46:04 · 798 阅读 · 0 评论 -
iOS开发进阶(九):OC混合开发嵌套H5应用并互相通信
APP开发过程中,当某些待集成三方SDK不得不使用原生技术栈集成实现时,抽离出公共功能部分并由H5实现是不错的解耦选择,为此便涉及到原生应用如何集成三方SDK,如何嵌套H5,并实现原生与H5通信。原创 2024-03-25 14:30:37 · 855 阅读 · 0 评论 -
iOS开发进阶(八):ipa应用唤起并跳转至指定页面
可通过命令查看控制台日志信息。添加版本标识可通过实现。APP间互相唤起是常用场景,android中通过IntentFilter实现APP唤起。原创 2024-03-07 14:13:41 · 1137 阅读 · 0 评论 -
iOS开发进阶(七):AppDelegate 文件解析
ios应用同web应用一样,启动过程中分别对应不同的生命周期活动。下面逐一讲解各生命周期阶段对应的钩子函数。原创 2015-12-25 20:27:08 · 49561 阅读 · 0 评论 -
iOS开发进阶(六):Xcode14 使用信号量造成线程优先级反转问题修复
应用Xcode 14.1进行项目编译时,遇到以下错误提示,导致APP线程暂停。以上问题是由于iOS信号量造成线程优先级反转,在并发队列使用信号量会可能会造成线程优先级反转。经过查询资料,发现是在XCode14XCode14上默认开启的),这个工具会让APP在运行的时候,发现有例如线程优先级反转和非UI工作在主线程上运行等问题的时候,就会在XCode问题导航栏中提示该卡顿风险警告,可以帮助我们在开发初期就能发现并解决隐含的卡顿风险问题;这个不是崩溃,如果不想要,可以在 “的中去掉勾选”。XCode14。原创 2024-01-12 16:46:45 · 1897 阅读 · 0 评论 -
ReactNative进阶(五十)React Native报Cannot initialize a parameter of type‘NSArray<id<RCTBridgeModule>>解决方案
网上给出的解释是由于升级Xcode12.5之后导致的问题,但是通过查看项目jenkins构建记录,发现上一次构建成功的Xcode版本与此次构建失败的Xcode版本一致,均为,故以上说法不成立。原创 2023-12-09 10:29:36 · 891 阅读 · 2 评论 -
iOS开发进阶(五):.framework 静态库制作
应用uni-app开发Hybrid APP过程中,若框架本身无法实现,则需要通过封装原生插件的方式实现。此篇博文主要讲解.framework静态库制作及功能验证。原生插件实现后,可通过《跨平台应用开发进阶(六) :uni-app实现原生插件集成》博文查看。原创 2020-11-17 15:29:09 · 2591 阅读 · 0 评论 -
iOS开发进阶(一):iOS原生开发环境搭建步骤详解
Html元素隐藏的几种方式隐藏Html元素的方法最常用的方法有css的display:none,一种方法两种实现方式,感兴趣的朋友可以了解下.1.使用cssstyle="display:none;"2.使用javascriptitem.style.display='none';原创 2015-11-23 21:52:33 · 49438 阅读 · 1 评论 -
iOS开发进阶(四):代理(delegate)讲解
Html中如何插入一个空格?在目的位置处输入代码(“nbsp”代表不换行空格)。Angularjs可以在script脚本中实现吗?应该不可以如何设置表格中各列的宽度width="150px"如何设置表格间距style="padding-top: 15px"如何设置居中显示图片Ionic中input获取焦点autofocus 属性规定当页面加载时 input 元素应该自动获得焦点。如果使用该属性,原创 2016-06-28 17:36:36 · 46155 阅读 · 0 评论 -
iOS开发进阶(三):协议(Protocol)讲解
Objective-C中协议的概念与Java中接口的概念并不完全相同,即一个类可以在不声明它匹配某个协议的情况下,实现这个协议所包含的方法,也即实质上匹配这个协议,而这种差别对外部代码而言是不可见的。正式协议的声明不提供实现,它只是简单地表明匹配该协议的类实现了该协议的方法,保证调用端可以安全调用方法。这是一个协议的例子,多线程编程中经常要确保一份共享资源同时只有一个线程可以使用,会在使用前给该资源挂上锁 ,以上即为一个表明有"锁"的概念的协议,协议中有两个方法,只有名称但尚未实现。原创 2015-11-23 21:54:58 · 49322 阅读 · 0 评论 -
iOS开发进阶(二):走近iOS原生开发
在应用uni-app进行跨平台APP开发过程中,发现并不支持视频播放小窗功能,且插件市场提供的插件用户体验不好,遂决定自行开发uni-app原生插件。uni-app原生插件指的是将原生开发的功能按照规范封装成插件包,然后即可在uni-app前端项目中通过js调用开发的原生能力。有关iOS原生开发环境搭建步骤,详参博文《跨平台应用开发进阶(二十七) iOS原生开发环境搭建步骤详解。原创 2023-06-28 10:56:27 · 2058 阅读 · 0 评论