iOS中容易犯错的知识点

iOS蓝牙BLE开发避坑指南:5个新手常犯错误及解决方案 本文针对iOS蓝牙BLE开发中的常见陷阱,提供了5个关键问题的解决方案。涵盖权限动态管理、连接参数优化、MTU协商与数据分片、服务特征发现以及资源生命周期管理,帮助开发者构建稳定可靠的蓝牙应用,提升开发效率。 阅读详情
1.UIView下,UIImageView和UILabel的 userInteractionEnabled 默认是NO,要相应交互,就要设置为YES
透明的UIView遮挡住了SuperView,使SuperView不能响应点击事件怎么办?把UIView的userInteractionEnabled属性设置为NO啊。


2.如果点击一个父视图上的子视图没有反应,有两种情况:第一种就是上面的第一点,第二种就是父视图或子视图没有给frame---与---父视图的frame给错了,给小了之类的


3.协议三部曲:接入协议--->设置代理--->实现协议方法


4.NSString 转换成NSData 对象 
NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 


5.NSData 转换成NSString对象 
NSData * data; 
NSString *result = [[NSString alloc] initWithData:data  encoding:NSUTF8StringEncoding]; 

6.UITableView的刷新
[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1.  #pragma mark - 数据发生改变后一定要重新刷新数据  
  2. - (void)viewWillAppear:(BOOL)animated{  
  3.   
  4.     [super viewWillAppear:animated];  
  5.     /** 
  6.      *  clearsSelectionOnViewWillAppear 
  7.      *  这个是它的一个属性,默认是yes 返回列表页面的时候,默认取消这行的选中状态,可是我们已经把这条数据删除的话,会出问题 
  8.      *  如果你点击了一行cell,进入下一个页面,在这个页面中,我们把本该属于这行cell的数据给删了 
  9.      *  如果  self.clearsSelectionOnViewWillAppear = yes,返回前一页时,会刷新这一行cell,执行cellForRow方法,结果数据却没了,就崩溃了 
  10.      *  如果  self.clearsSelectionOnViewWillAppear = no,不会刷新这一行cell,就没事儿了 
  11.      */  
  12.    self.clearsSelectionOnViewWillAppear =NO;  
  13.     [self.tableView reloadData];---->并不一定要放在这里,看取得数据在什么位置,刷新数据在什么位置  
  14. }  

7.awakeFromNib(storyboard)和 viewDidLoad的区别
awakeFromNib
      当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的 awakeFromNib函数来响应这个消息,执行一些必要的操作。也就是说通过nib文件创建view对象是执行awakeFromNib 。
viewDidLoad
      当view对象被加载到内存是就会执行viewDidLoad,所以不管通过nib文件还是代码的方式创建对象都会执行viewDidLoad。awakeFromNib和viewDidLoad的区别


8.将汉字转换为不带音调的拼音
[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. - (NSString *)transformMandarinToLatin:(NSString *)string  
  2. {  
  3.     NSMutableString *preString = [string mutableCopy];  
  4.     /*转换成成带音 调的拼音*/  
  5.     CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformMandarinLatin, NO);  
  6.     /*去掉音调*/  
  7.     CFStringTransform((CFMutableStringRef)preString, NULL, kCFStringTransformStripDiacritics, NO);  
  8.     return preString;  
  9. }  

9.图片适应问题
有两个view: view1,view2
view2添加view1到中,如果view2大于view1,或者view2的坐标不全在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来

UIView有一个属性,clipsTobounds 默认情况下是NO。
如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1的clipsTobounds属性值。
view1.clipsTobounds = YES;


10.第三方FMDB数据库操作问题

Unknown error finalizing or resetting statement (5: database is locked)
在使用fmdb时有时候一不小心没写好代码就会这样子啦,为什么呢,其实呢,应该是在前面代码中有调用数据库而且并没有调用[db close]就直接跳出结果来了,所以在前面的数据库操作中先运行[db close]再返回数据即可;

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 通过注册键盘显示的消息  
  2. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShown:)  
  3. name:UIKeyboardWillShowNotification object:nil];  
  4.   
  5. - (void)keyboardWillShown:(NSNotification*)aNotification{  
  6.     // 键盘信息字典  
  7.     NSDictionary* info = [aNotification userInfo];  
  8. }  

11. 改变导航栏中间标题颜色

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. UIColor * color = [UIColor whiteColor];  
  2.    NSDictionary * dict = [NSDictionary dictionaryWithObject: colorforKey:NSForegroundColorAttributeName];  
  3.    self.navigationController.navigationBar.titleTextAttributes = dict;  

12.UIWebView要实现横向滑动,跟UIWebview的增高没有关系,你需要设定UIWebView的属性scrollView的contentsize.width大于UIWebView的frame.size.width.

13.如何监测系统键盘的弹出

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 通过注册键盘显示的消息  
  2. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShown:)  
  3. name:UIKeyboardWillShowNotification object:nil];  
  4.   
  5. - (void)keyboardWillShown:(NSNotification*)aNotification{  
  6.     // 键盘信息字典  
  7.     NSDictionary* info = [aNotification userInfo];  
  8. }  

14.改变状态栏颜色

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. 在Info.plist 添加  
  2. UIViewControllerBasedStatusBarAppearance, 设置值为 NO  
  3. 然后再didFinishLaunchingWithOptions的AppDelegate, 添加这些代码:  
  4.   
  5. [application setStatusBarHidden:NO];[application setStatusBarStyle:UIStatusBarStyleLightContent];  


15.路径截取字符串的一些处理

[objc]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. // 从路径中获得完整的文件名(带后缀)       
  2. exestr = [filePath lastPathComponent];   
  3.   
  4. // 获得文件名(不带后缀)   
  5. exestr = [exestr stringByDeletingPathExtension];       
  6.   
  7. // 获得文件的扩展类型(不带'.')   
  8. exestr = [filePath pathExtension];  
基于RK3588与Gstreamer的端侧实时视频流AI推理系统构建 本文详细介绍了基于RK3588芯片与Gstreamer框架构建端侧实时视频流AI推理系统的完整方案。通过硬件选型、环境配置、OpenCV编译优化、视频流处理实战及模型部署等关键环节的深入解析,展示了如何利用RK3588的6TOPS NPU算力与Gstreamer的低延迟特性,实现工业质检、智能交通等场景下的高效边缘计算。特别针对RTSP推拉流优化、RKNN模型转换等核心技术难点提供了实用解决方案。 阅读详情

相关推荐

针对so层不固定位置的动态加密,怎么解决?(面试题)

Android逆向之破解某应用加密算法(动态调试so和hook so代码):so 代码动态解密后才执行,我们可以在解密完成后获取解密后的代码或数据。Android逆向之旅—动态方式破解apk进阶篇(IDA调试so源码)如果你有更具体的加密场景,欢迎提供更多信息,我可以给出更详细的方案!某些 so 在运行时生成密钥,解密后再用。某APP密码加密算法分析。

SXXYNHHXX的博客 923

iOS开发 容易犯错的知识点和不错的细小知识点(持续更新)

1.UIView下,UIImageView和UILabel

iOS界@迷糊小书童 1万+

ECharts 实现世界地图

效果图 源代码(仅供参考) <template> <div class="echarts"> <div class="className" id="id" style="width: 100%; height: 450px" ref="myEchart" ></div> </div> </template> <script lang="ts"> imp

EsquireY的博客 4874

异步函数调用 犯错

前记,iOS用CFNetwork实现FTP下载类。调用如下:

skwaityou的专栏 888

基于Canfestival的对象字典工具objdictedit.py的运行环境配置

本文以菜狗的视角,一步一步地对对象字典的环境进行配置,旨在能给读者一个比较详细的参考,不恰之处,还请指正。

在线求职中... 3707

零差云控关节模组:EtherCAT+preempt-RT实现微秒级同步

关节模组是协作机器人、外骨骼与高精度服务机器人的核心执行单元,其性能瓶颈常在于多轴运动的时序一致性与实时闭环能力。实现‘零差’同步依赖于确定性通信(如EtherCAT)与硬实时操作系统支持(如Linux preempt-RT),前者保障指令与状态在微秒级时间戳下全局对齐,后者消除内核调度抖动,使PID控制、电流采样、编码器反馈等关键路径具备纳秒级可预测性。技术价值体现在相位偏差<±0.01°、端到端控制周期稳定1ms、连续运行温漂<±1.2℃等工程指标,广泛应用于力控装配、康复训练、远程遥操作等对动态精度与

weixin_34192816的博客 1197

IT痴汉的工作现状46-再一次犯错,谁之过?

仙道今天早早就来到办公室了,只因昨晚老板一个电话。 老板生气的说,ios版本又出问题了,到底怎么回事?庆幸的是,问题还没有急迫到让他爬出被窝去公司,但是也让他整晚都没能睡好觉。 到底是哪里出的问题呢?伟仔一进办公室就发现了仙道坐在座位上,打了声招呼就吃饭去了。自己还在想,今天是哪股风把仙道这么早吹过了? 回来后发现C老板和大神围在仙道座位后面,讨论着什么。真奇怪,今天这帮家伙怎么这么早?伟仔上

懒人的技术笔记 1856

从.har文件到Postman集合:一键转换的完整教程(附避坑指南)

本文详细介绍了如何将.har文件高效转换为Postman集合的完整教程,涵盖基础操作到高级技巧,包括认证信息处理、环境变量提取等痛点问题的解决方案。通过抓包工具记录的.har文件,开发者可以快速生成Postman集合,提升API调试与测试效率,特别适合前后端分离开发模式下的团队协作。

weixin_26795617的博客 384

iOS 各种图片大小

一、应用图片 标准iOS控件里的图片资源,苹果已经做了相应的升级,我们需要操心的是应用自己的图片资源。就像当初为了支持iPhone 4而制作的@2x高分辨率版本(译者:以下简称高分)图片一样,我们要为iPad应用中的图片制作对应的高分版本。我知道不少开发者很有预见性的早在iOS 5.0 SDK上就完成了这一步升级。可是我还是要强调一点,那就是之前 Michael Jurewitz (@Jury)

linComeHere的博客 3232

FlashBootloader01-基于UDS的Flash Bootloader【架构篇】

文章目录1 Flash Bootloader的依赖项2 Flash Bootloader中使用的UDS的主要功能3 Flash Bootloader更新固件3.1 初始化MCU3.2 刷写流程 1 Flash Bootloader的依赖项 通常Flash Bootloader由以下四方面组成: UDS协议 上位机「编写Bootloader Sequence」 通信驱动(如CAN ) Flash Driver 2 Flash Bootloader中使用的UDS的主要功能 1. 10 02服务 客户端

3591

手把手教你学simulink(8.39)--基于Simulink的步进电机(Stepper Motor)仿真实例

通过这个仿真实例,你可以学习如何使用Simulink构建和仿真步进电机(Stepper Motor)系统。你可以根据实际需求调整模型和参数,进行更复杂的仿真和分析。希望这个例子对你有所帮助,祝你学习愉快!

MHD0815的博客 1052

我的iOS开发入门自学路径

我有一个清单,列着希望在大学里完成的事。比如,学一门乐器,和朋友去旅游,搭建自己的博客,去滑翔,看各主题的书籍。其中一项是,写自己的APP并且上架。去年开始,我准备完成这一项,所以踏上了iOS开发之旅。现在,投入了约200个小时,我上架了自己的第一个简单的App。 iTunes.png PS:欢迎大家捧场~APP地址。当然,这不是我写的第一个App,你可以在我的github

zhuangdum的博客 602

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

【虚幻引擎UE】UE5 四步骤实现AI漫游与对话行为(含工程源码)

灵境引路人 3227

程序员的七宗罪,你犯错了吗

据说,当你出现以下情况的时候作为一个程序员,你就犯了罪,而且你可能正在往坏的方向发展。   1)开始编码之前没有计划     说到这一点,在参加iOS开发培训小编自己其实也并没有做到,我总是喜欢直接编码。但是慢慢地,我看到了在写代码之前先简单规划一下的好处。     最近iOS培训的大部分编码都是基于SQL的,并且开始倾向于先给表格设计画个草图。     2)不使用版本控制  

ccnanxi的博客 1066

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

nfcwriter下载 ios_连高手都容易忽略的9个 iOS 与 Android 间的交互差异

现在大多数的 PM /交互/ UI 设计师,在设计产品的时候都是以 iOS 为基准 思考产品上的各种功能逻辑、交互状态,而很容易忽略了某些功能在 Android 里并不能「一稿适应两端」,部分产品差异在安卓上是不一样的。所以本文就讲下 Android 和 iOS 9大产品/交互差异,希望你在日后的产品设计时,可以考虑到更多层面的知识点。虚拟商品、支付规则和方式的不同支付规则对在于一些虚拟商品的支付...

weixin_39578513的博客 355

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

cordova 运行ios版本_Cordova - 彻底搞定IOS编译!

操作系统:OSX10.14XCode:10.1Cordova:8.1.2假设已经配置好了Cordova开发环境,Apple ID你也有,XCode也可以正常工作了,那么就可以继续看这篇文章了!如果你没有看我这篇文章,那么你有可能会顺利编译你的Cordova工程,但是,我觉得你很可能正在解决遇到的麻烦,而且让你焦头烂额的麻烦,你都不知道错误究竟是怎么发生的!一,解决XCode编译Cordova工程问...

weixin_34959771的博客 664

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

我的 常犯错误

常犯错误1.没有初始化2.没有将所设控件加到 视图上(导致 视图上没有控件)3.添加 手势时, 没有 设置用户使用使能4.使用协议时, 没有设置代理人

hpcph的博客 375

nfcwriter下载 ios_干货!9个容易忽略的iOS与Android间的交互差异

因为现在大多数的PM/交互/UI设计师,在设计产品的时候都是以iOS为基准 思考产品上的各种功能逻辑、交互状态,而很容易忽略了某些功能在Android里并不能“一稿适应两端”,部分产品差异在安卓上是不一样的。所以本文就讲下Android和iOS 10大产品/交互差异,希望你在日后的产品设计时,可以考虑到更多层面的知识点(可能在某些安卓高级机型里并不通用).01 虚拟商品 支付规则和方式的不同1. ...

weixin_39758041的博客 183

iOS中ARC机制详解

写在开头 虽然距离WWDC2011和iOS 5已经快一年时间,但是很多开发者并没有利用新方法来提高自己的水平,这点在ARC的使用上非常明显(特别是国内,基本很少见到同行转向ARC)。我曾经询问过一些同行为什么不转向使用ARC,很多人的回答是担心内存管理不受自己控制..其实我个人认为这是对于ARC机制了解不足从而不自信,所导致的对新事物的恐惧。而作为最需要“追赶时髦”的职业,这样的心态

cs494208907的专栏 2万+

iOS开发月报#10|201904

这里记录过去一个月,我看到的值得分享的内容,包含但不限于iOS知识,每个月的最后一天发布。 欢迎推荐内容,可以前往zhangferry/iOSMonthlyReport提交issue。 Tips 关于分享中的一些问题 微博 多媒体内容的缩略图,即thumbnialData的大小应小于32K。否则会导致分享失败 微博分享的AppStore下载链接无法打开,这是因为微博屏蔽了指向AppStore的...

weixin_34257076的博客 250

iOS 如何向App Store提交应用

当你克服重重困难终于开发出了自己的App,下一步就是向App Store提交应用了,这时应该如何操作呢?我的App真的准备好提交了?我敢肯定这些问题将会浮现在你的脑海。基于这篇教程,我将告诉你一个完整的提交过程。 推荐阅读:App Store提交上线和市场推广专题 介绍 我们都知道苹果审核的过程就像是在“黑箱”操作,但这并不妨碍你为这个审核过程做一些事先的准备。苹果的App Store审核指南已经告诉你哪些是允许的,哪些是不允许的。当你第一次提交你的应用到苹果的时候,这是一个令人兴奋而但又伤脑筋

Rich_77的博客 737

iOS从入门开发系列01 (UI基础控件)

ios开发系列应注意点 本人作为一名ios开发者,将自己的ios开发过程中遇到的重点难点和易犯错点记录下来,希望可以帮助到大家 1.UI基础的一些知识点 1.如何连线 连线的方式:     1)可以先在 控制器 中手写一个方法,返回值为IBAction,然后点击空心圆圈,拖线连到要监听的按钮上     2)也可以按住control键,从控件直接拖线到控制器的

晨 の Java天堂 1694

从编程语言进化史看iOS与Android开发的哲学分野

本文从编程语言进化史视角,深入分析了iOS与Android开发在语言选择、工具链、架构设计和生态系统等方面的哲学差异。Swift的激进革新与Kotlin的渐进改良体现了苹果与Google不同的生态战略,影响开发体验、性能优化和跨平台趋势,为移动开发者提供深刻的技术洞察。

tequila的博客 821

Jenkins自动生成ios安装包

前言 昨天一位前同事问我,之前自动生成ios安装包是怎么弄的?网上找不到比较好的教程。这个搭建过程我是整理成文档的,但没有记录到博客中,趁今天稍微空点,把文档记录到博客上,方便需要的朋友借鉴参考。 一听说自动打包,可能很多人就想到是Jenkins,这边的方案确实也是使用Jenkins,那么,先简单介绍下Jenkins相关的关键字(持续集成、CI) 为什么我们需要持续集成 持续集成是一种...

测试极客 3498

iPhone初学的常犯错误

静态方法要在h头文件声明如果从数组取图片,setImage要加(UIImage *)发送事件时,是消息中心, 不是消息。数组没加nil:missing sentinel in function call  loadView初始。写触发,回调和委托。主程序[UIApplicatio

981

连高手都容易忽略的9个 iOS 与 Android 间的交互差异

现在大多数的 PM /交互/ UI 设计师,在设计产品的时候都是以 iOS 为基准 思考产品上的各种功能逻辑、交互状态,而很容易忽略了某些功能在 Android 里并不能「一稿适应两端」,部分产品差异在安卓上是不一样的。 所以本文就讲下 Android 和 iOS 9大产品/交互差异,希望你在日后的产品设计时,可以考虑到更多层面的知识点。 虚拟商品、支付规则和方式的不同 支付规则 对在于一...

MinggeQingchun的博客 923
上一篇: Block调用引起的内存泄露
下一篇: 堆和栈的区别
SMY_API
博客等级 码龄13年 5粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值