iOS
文章平均质量分 62
iOS1501101533
我亲爱的方括号不见了
展开
-
iOS开发 UILabel长按弹出复制选项-UIContextMenuInteraction
UILabel通过UIContextMenuInteraction实现长按弹出复制选项。原创 2024-03-22 18:03:24 · 518 阅读 · 0 评论 -
iOS开发 触觉体验(UIFeedbackGenerator)的使用
示例使用场景,并不是每个场景都需要使用,可根据App使用体验自行决定何时、何地使用。在iOS10.0及以后可用。原创 2022-07-15 14:32:00 · 1283 阅读 · 0 评论 -
iOS GCD定时器的使用
GCDTimer类,使用时导入该类即可。原创 2022-07-15 14:09:21 · 908 阅读 · 0 评论 -
iOS 获取“关于本机”中软件版本的编译版本号
iOS获取iPhone“关于本机”中软件版本号。原创 2022-04-20 14:50:53 · 1359 阅读 · 0 评论 -
iOS开发 检测网络是否真正可用(真正可以访问互联网)
如何去检测网络是否真正可用呢?其实可以通过Apple提供的特定域名来测试网络连通性。向这些特定域名发送HTTP请求,假如能收到正确的响应结果,则认为网络真正可用;否则,认为网络不可用。原创 2022-03-30 13:48:10 · 4727 阅读 · 0 评论 -
iOS 根据条件判断数组元素是否存在及找出该元素
在开发中经常会遇到根据某个条件来判断数组中是否存在某元素的情况,我们一般会使用for循环,然后在循环里使用if进行判断。其实我们也可以使用NSPredicate过滤器来快速实现该功能。其核心代码如下: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.type == %d", (int)type]; NSArray *results = [devices filteredArrayUsingPredicate:原创 2022-03-21 11:56:09 · 4087 阅读 · 0 评论 -
UISwitch的大小
iOS系统为UISwitch指定的大小是{51, 31},设置UISwitch的宽高是无效的。- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. UISwitch *aSwitch = [[UISwitch alloc] init]; [self.view addSubview:aSwitch]; UISwitc原创 2022-03-21 11:03:41 · 1448 阅读 · 0 评论 -
iOS开发 NSPredicate的使用方法
1. 谓词(NSPredicate)是什么?Xcode的开发者文档中的解释:A definition of logical conditions used to constrain a search either for a fetch or for in-memory filtering.我的翻译:NSPredicate是一个逻辑条件的定义,这个逻辑条件用来约束一个搜索条件,而这个搜索条件用于数据的获取或内存中数据的过滤。它其实就是一个过滤器。原创 2021-11-20 09:52:04 · 1859 阅读 · 0 评论 -
iPhone~iPhone15屏幕尺寸和分辨率的相关知识 ( DPI vs PPI pt vs px)
1. DPI 和 PPI 是什么?DPI ---- 最初用于衡量打印物上每英寸的点数密度,就是表示你的打印机可以在一英寸内打印多少个点。DPI值越小,打印的内容越不清晰。当DPI的概念迁移到计算机屏幕上的时候,就应该称之为PPI 。同理:PPI就是表示计算机屏幕上每英寸可以显示的像素点的数量。2. pt 和 px 又是什么?pt ---- 代表点,是一个标准的长度单位,定义上:1 pt = 1 / 72 英寸,英寸跟我们所熟悉厘米、米一样,所以我们可以明确的指出1pt的长度是多少。原创 2021-11-20 09:09:22 · 15199 阅读 · 0 评论 -
OC中协议的讲解
OC或iOS中的协议:一组方法声明的列表,协议中不需要实现这些方法,谁遵守这个协议,谁就需要实现协议中的方法。协议创建的步骤:制定协议内容(方法声明列表) ;遵守协议(.h) ;实现协议中方法(.m) ;调用协议中的方法 。在OC或iOS中完整的创建一个协议:一、例子:有一个漂亮的妹子要征婚,对另一半的要求:高富帅会写代码妹子对另一半的要求实际上就是协议,制定协议的一方:妹子遵守协议的一方:想和妹子结婚的男人协议的内容:(也即要求)1: 高2: 富3: 帅4:原创 2021-04-07 10:03:47 · 631 阅读 · 0 评论 -
三个导航栏Item的区别(leftBarButtonItem/backBarButtonItem/backItem)
1> self.navigationItem.leftBarButtonItem2> self.navigationItem.backBarButtonItem3> self.navigationController.navigationBar.backItem(UINavigationItem有三种:backBarButtonItem leftBarButtonItem rightBarButtonItem)> 1. 如果设置了leftBarButtonI原创 2021-04-07 09:47:42 · 585 阅读 · 0 评论 -
iOS开发中的四种GCD
GCD的核心:将操作/任务放到队列中。原创 2021-04-07 09:43:03 · 293 阅读 · 0 评论 -
iOS14 定位问题导致WiFi名称获取不到的情况
1. 问题在 iOS14 中如果不允许精确定位,那么就获取不到WiFi的名称了。我的项目中获取WiFi名称的方式:+ (NSString *)wifiName { NSArray *interfaces = CFBridgingRelease(CNCopySupportedInterfaces()); id info = nil; for (NSString *interfaceName in interfaces) { info = (__bridge_tra原创 2020-10-27 11:06:02 · 4708 阅读 · 4 评论 -
iOS开发调试技巧之NSLog日志导出
开发过程中,调试必不可少,而日志则是一个重要的调试信息。当直接运行代码进行调试时,可以在Xcode控制台实时看到日志信息。然而当脱离了Xcode控制台,比如,安装到手机上时,这时我们该如何去查看日志呢?其实可以把日志写入到一个文件中,然后通过文件查看日志信息。把日志写入文件,主要是利用C语言的freopen()函数进行重定向,将写往stdout、stderr的内容重定向到我们指定的文件中去。原创 2020-09-09 17:31:35 · 2641 阅读 · 0 评论 -
iOS开发之Xcode中版本号&Build版本号自增
1. 背景在iOS项目打包时,有两个版本号,一个是Version,另一个是Build。2. 问题发现在Version相同的情况下,若Build还相同,则上传到App Store Connect时会提示已有该版本,不能再次上传。3. 问题解决通过脚本让Build自动加一。原创 2020-08-12 15:57:49 · 3919 阅读 · 2 评论 -
MAC地址了解(根据设备MAC地址查询生产厂商信息)
1. MAC地址是什么?MAC地址(Media Access Control,介质访问控制)是烧录在网卡(Network Interface Card,NIC)里的,也叫硬件地址,是由48bit位,也即6字节的16进制数组成的。例如:F0FE6B4F4001其二进制格式为:11110000 11111110 01101011 01001111 01000000 00000001从右到左方向看去 <----- ????,其中:0~23位(低24位),也即对应的:4F4001,是由厂家自己原创 2020-08-12 10:05:15 · 8000 阅读 · 2 评论 -
iOS开发调试技巧之在App设置中切换服务器环境
在日常的App开发中,会有正式服务器与测试服务器两种不同的环境,调试或测试时经常需要在不同的环境中切换。在使用Xcode调试时,可能需要运行两次以测试不同的服务器环境,而在打包测试时,则需要导出两个不同的ipa包以进行安装测试。对于想省事的我,想着能不能做个开关来进行不同环境的切换。其实想想,是可以在App的某个页面中添加一个开关、按钮或其他方式来进行不同环境的切换控制,但想想这种方式其实还是有点影响了App的显示效果,因此就想通过其他方式来实现。由于之前了解过iOS App的设置束 - iOS Se原创 2020-08-12 09:57:45 · 1226 阅读 · 0 评论 -
iOS开发调试技巧之模拟定位国外位置
因为App面向的用户为国外用户,所以想在测试时尽量模拟真实用户的位置信息。需要使手机定位的经纬度在国外,然后使用系统API获取到经纬度,再使用系统API进行逆地理编码,以获取详细的位置信息。例如,我想要模拟定位的经纬度为:-122.030237,37.331705,然后获取的详细位置信息为:United States CA Cupertino。要想实现我的调试目标,需要以下三步:一、使用Xc...原创 2020-03-29 20:29:47 · 6598 阅读 · 2 评论