
iOS基础开发
文章平均质量分 77
简单介绍iOS初中级的基础开发
╰つ栺尖篴夢ゞ
本人毕业于计算机技术专业,从事iOS高级开发,专注于iOS/MacOS内核/汇编/源码/架构/算法等相关技术的开发学习,同时热爱人工智能、OpenGL/ES、云原生等技术,CSDN博客专家与原力计划作者,华为云云享专家与特约博主,阿里云专家博主,荣获CSDN iOS领域优质创作者、2022年度博客之星移动领域TOP 3、2022年度博客之星TOP 16、AI创想秀邂逅“华为云ModelArts”征文大赛一等奖、CSDN第一届猿创征文优质博文奖,以及多项优秀TOP博文、CSDN开源挑战赛优秀奖等。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
iOS之深入解析Xcode的拼写检查
一、引言作为一名开发人员,当编写代码时,我们会更多地关注逻辑和算法,而不是拼写和语法。但它也是我们编码的一个重要部分,特别是当从注释生成文档的时候。拼写检查帮助我们找出拼写错误,让我们有更多的时间关注代码逻辑。二、拼写检查能识别什么?答案就是代码中与 Spelling and Grammer 相关的所有内容:变量名方法类注释字符串的字面量(包括本地化)现有如下一段代码:enum CompanTyp: String { case `pub原创 2021-12-01 22:44:20 · 2016 阅读 · 0 评论 -
iOS之深入解析Xcode 14发布的新特性
每年的 WWDC,除了发布最新的 iOS、iPadOS、watchOS、macOS 外,苹果同样会更新 Xcode。新版的 Xcode 带来了很有新特性,来适配各个新系统,同时提供更加便利的工具来提高开发效率。还有一个比较重要的是,Xcode 14 初始包大小现在已经降低到 7G+,相比 Xcode 13 的 10G+,减少了 30%...原创 2022-06-17 19:32:56 · 2635 阅读 · 0 评论 -
Swift之字符串String的常规操作和处理
① Swift 字符串创建// 类型推断let str = "Hello"// 指定不可修改类型let str1 : String = "Hello"// 指定可修改类型var str2 : String = "Hello"② Swift 字符串拼接let str1 : String = "Hello"let str2 = "Hello"print(str1 + "\n" + str2)// 运行结果HelloHello③ Swift 字符串追加var str = "H原创 2021-12-16 15:19:10 · 3110 阅读 · 0 评论 -
iOS之深入解析谓词NSPredicate的语法与应用
一、简介NSPredicate 的官方解释如下:The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering.NSPredicate 类是用来定义逻辑条件,用来有约束的获取内存中的对象或过滤搜索。简而言之:只选取符合条件的对象。二、基本语法使用谓词(NSPredicate)都需要为谓词原创 2021-10-22 18:30:32 · 37103 阅读 · 2 评论 -
iOS之推荐六款不错的 iOS 15 Safari 浏览器扩展
Apple 在 iOS 15 中引入了一些新设计和一系列新功能,其中就包括更好地扩展支持。iOS 15 中的 Safari 支持 web 扩展,用户可以通过 App Store 下载和安装,这样就有更广泛的扩展选项供用户选择。要安装扩展程序,您需要从 App Store 下载扩展程序应用程序,然后打开“设置”应用程序的 Safari 部分。从那里,点击“扩展”并选择要启用的扩展旁边的切换按钮。如果您想查找更多扩展程序,只需点击“更多扩展程序”按钮即可转到“App Store”中的“S.原创 2021-10-02 01:50:55 · 9725 阅读 · 1 评论 -
iOS之深入解析Xcode 13正式版发布的40个新特性
一、前言Xcode 13 包括适用于 iOS 15、iPadOS 15、tvOS 15、watchOS 8 和 macOS Big Sur 11.3 的 SDK。Xcode 13 Release Candidate 支持 iOS 9 及更高版本、tvOS 9 及更高版本以及 watchOS 2 及更高版本的设备上调试。Xcode 13 需要运行 macOS 11.3 或更高版本的 Mac。二、通用Xcode 13 包括对 Swift 并发编程的原生支持、对 Xcode Cloud 持续集成和原创 2021-09-30 08:30:00 · 53547 阅读 · 1 评论 -
iOS之从N个数里面取M个数的组合算法
原理分析一个数组 data 有 N 个元素,从中选取 M 个数的组合 array(不分顺序),可使用递归算法实现,过程如下:选择 data 的第 1 个元素为 array 的第一个元素,即:array[0] = data[0];在 data 第一个元素之后的其它元素中,选取其余的 M - 1 个数,这是一个上述问题的子问题,递归即可;依次选择 data 的第 2 到 N - M + 1元素作为起始点,再执行1、2步骤;递归算法过程中的 M = 0 时,输出 array 的所有元素。Objec原创 2020-08-27 21:52:02 · 2364 阅读 · 0 评论 -
iOS之实现图片的压缩、解压缩、模糊、置灰、马赛克、黑白化、调色等处理
压缩图片func imageCompress(targetWidth:CGFloat) -> UIImage { let targetHeight = (targetWidth/width)*height UIGraphicsBeginImageContext(CGSize(width: targetWidth, height: targetHeight)) self.draw(in: CGRect(x: 0, y: 0, width: targetW原创 2020-08-27 23:20:19 · 1196 阅读 · 0 评论 -
iOS实现“下雨下雪”动画效果和“烟花”动画效果
“下雨”的动画效果效果展示原创 2020-08-08 21:38:10 · 1151 阅读 · 0 评论 -
iOS之仿QQ好友列表展开收缩效果的实现
使用UICollectionView实现思路很明显整体它是一个列表,它的分组是一个列表,它里面的好友列表也是一个列表,所以就可以使用组头来设置分组列表,使用cell设置好友列表;当点击组头的时候会展开好友列表,其实原理上就是单独刷新某一组的数据。流程控制器的代码(HomeViewController):本类主要配置UICollectionView显示,以及处理组展开/关闭状态。#import "HomeViewController.h"#import "YDWFriendListSho原创 2020-07-17 19:25:42 · 1578 阅读 · 1 评论 -
iOS之深入解析常见密钥加密方式的原理和使用
一、前言在我们日常的iOS开发中,加密是必不可少的一部分,而普通加密方法是讲密码进行加密后保存到用户偏好设置中,钥匙串是以明文形式保存,但是不知道存放的具体位置,下面本文将详细给大家介绍iOS中常见的几种加密方法。二、base64加密① 原理原本是 8 个 bit 一组表示数据,改为 6 个 bit 一组表示数据,不足的部分补零,每两个0 用 一个 = 表示;用 base64 编码之后,数据长度会变大,增加了大约 1/3 左右;可进行反向解密;Xcode7.0 之后出现;编码有个非常显著原创 2021-03-18 19:57:47 · 6107 阅读 · 0 评论 -
Swift之捕捉侧滑返回事件并跳转指定控制器
捕捉侧滑返回事件在当前控制器中重写以下两个方法即可:// OC- (void)willMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0);- (void)didMoveToParentViewController:(nullable UIViewController *)parent NS_AVAILABLE_IOS(5_0);// Swift override func wi原创 2020-09-02 16:52:12 · 1737 阅读 · 0 评论 -
实现iOS App的在线安装
一、App 打包,生成 plist 文件1.打包------.app包转为.ipa包的方法主要有四种:(1)Apple推荐的方式,即实用xcode的archive功能 方法:Xcode菜单栏->Product->Archive->三选一,一般选后两个。 局限性:个人开发一般采用这种方法,但是当一个证书多人使用时就稍显麻烦。一般多人开发时都是采原创 2016-02-29 00:49:34 · 3019 阅读 · 1 评论 -
Swift之NSRange和Range相互转换
extension String { func toNSRange(_ range: Range<String.Index>) -> NSRange { guard let from = range.lowerBound.samePosition(in: utf16), let to = range.upperBound.samePosition(in: utf16) else { return NSMakeRange(0, 0)原创 2020-08-27 23:45:43 · 1158 阅读 · 1 评论 -
Swift之UIView设置部分圆角与获取其所在ViewController
设置部分圆角实现原理: 可指定设置圆角的位置(左上角、左下角、右下角、右上角) func setCorner(size:CGFloat,roundingCorners:UIRectCorner) { let filePath : UIBezierPath = UIBezierPath.init(roundedRect: self.bounds, byRoundingCorners: roundingCorners, cornerRadii: CGSize.init(width: si原创 2020-08-27 23:32:12 · 1138 阅读 · 1 评论 -
Swift之将阿拉伯数字转换为中文大写数字
func translationArabicNum(arabicNum:Double) -> String { let arabicNumStr = String(format: "%.2f", arabicNum) let rang = (arabicNumStr as NSString).range(of: ".") if rang.length == 0 { return (arabicNumStr as NSString).integerValue.cn原创 2020-08-27 22:25:14 · 1410 阅读 · 2 评论 -
Swift之数组去重(去除重复元素)
在开发过程中,也许会遇到需要对数组进行去重的相关处理。如果数组内只含有基础类型的数据时,可以写两个for循环遍历,用下标取值做对比;当然也可以用集合Set(Swift),比较方便快捷。如果需要对model数组进行去重,该怎么做呢?import UIKitextension Array { // 去重 func filterDuplicates<E: Equatable>(_ filter: (Element) -> E) -> [Element].原创 2020-08-27 22:12:41 · 5747 阅读 · 0 评论 -
Swift之实现表格UITableView数据首字母顺序排列展示并添加“索引”快速定位查找功能
效果展示原创 2020-08-25 13:00:04 · 1626 阅读 · 0 评论 -
Swift之本地国际化与App内切换语言
效果展示原创 2020-08-25 11:36:26 · 5236 阅读 · 0 评论 -
iOS之仿QQ点赞按钮粒子效果的实现
效果展示具体流程一、封装YDWLikeButton新建一个YDWLikeButton继承于UIButton,然后声明一个属性:@property (nonatomic, strong) CAEmitterLayer *explosionLayer;- (void)awakeFromNib{ [super awakeFromNib]; // 设置粒子效果 [self setupExplosion];}- (instancetype)initWithFrame:(原创 2020-08-08 02:52:24 · 1352 阅读 · 0 评论 -
iOS开发之ReplayKit框架学习
ReplayKit简介在iOS 9中,ReplayKit 是一款全新的框架,可谓是游戏开发者(开发商)的福音。它可以让玩家更便捷地记录游戏进度或数据以及分享的功能。除此之外更强大的是:ReplayKit为用户(玩家)提供了一个全功能的交互界面,用户可用它来编辑或制作自己的视频剪辑!ReplayKit不需要太大电量损耗和性能损耗就可以产出高清的视频记录。ReplayKit支持使用A7芯片以上,操作系统原创 2016-04-05 14:09:40 · 2060 阅读 · 1 评论 -
Swift之动态适配UITableView的cell高度
UITableView是iOS开发中最常使用的UI控件,可以实现很多效果。今天,我与大家分享一点你可能不知道的一些UITableView的使用技巧。动态适配cell的高度一、首先在Xib中拖一个UITableView,让其充满整个视图控制器,并遵守实现UITableViewDelegate,UITableViewDataSource协议; 二、其次,新建一个继承于UItableViewCe原创 2017-06-20 15:18:00 · 3553 阅读 · 1 评论 -
iOS之单例模式的写法
单例模式是iOS开发中最常用的设计模式,iOS的单例模式有两种写法:1、单例的常用写法: #import "ServiceManager.h" static ServiceManager *defaultManager; @implementation ServiceManager +(ServiceManager *)defaultManager{原创 2016-02-29 18:28:10 · 665 阅读 · 1 评论 -
iOS10的新特征
iOS10中字体跟随系统设置变化大小/* *在iOS10中,当用户将手机的字体大小进行了设置调整之后,那么app中设置相关代码字体也会跟着一起变化,支持常见一 *些字体UI控件 比如UILabel、UIButton等 **/ [super viewDidLoad]; //设置字体的改变大小 self.labels.font =[UIFont pr原创 2017-01-04 16:53:43 · 531 阅读 · 1 评论 -
iPhone之横竖屏与自动旋转
iPhone的自动旋转功能一共有三种方法:使用自动调整属性处理旋转,利用系统自动生成的代码。- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interface原创 2016-03-12 01:30:21 · 1000 阅读 · 1 评论 -
iOS开发常用的资源和资料
常用的三方资源地址:ASIHTTPRequest (基于http的应用所封装的同步请求,异步请求,队列请求,文件下载,cookie,cache等): http://allseeing-i.com/ASIHTTPRequest/MBProgressHUD (显示等待状态的框架):https://github.com/jdg/MBProgressHUDFMDatabase (封装sqlite的框架原创 2016-03-30 11:40:59 · 636 阅读 · 1 评论 -
iOS之自定义封装tabBar
首先需要创建一个自定义的tabBar的类,继承于UIview:实现自定义创建tabBar的item按钮,自定义tabBarDelegate,回调block等,具体代码如下:// YDWTabBar.h// YDWLiveShow//// Created by cptech on 2017/9/6.// Copyright © 2017年 CPTECH_ydw. All rights原创 2017-09-07 10:00:06 · 671 阅读 · 1 评论 -
iOS之文件管理
沙盒iOS的沙盒机制: 1、iOS的应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件; 2、每个应用程序都有自己的独立的存储空间(沙盒); 3、一般来说,应用程序之间是不可以互相访问沙盒的; 4、模拟器的沙盒位置路径:/User/userName/Libra原创 2017-02-24 14:36:47 · 1391 阅读 · 1 评论 -
Xcode开发的常见问题与解决方案
Xcode是最常见的开发工具,我们在用其进行开发和调试的时候,经常会遇到各种各样的问题,在这里我就将这些错误梳理一下,并附上相应的解决方案,希望能帮到有需要的人。后续,我将会一直进行更新自己在开发中遇到的问题,如果大家有更好的解决方法,欢迎随时与我交流或者给我留言,希望我们能共同在IT的道路上进步与成长,不胜感激。Xcode工程文件打不开,出现“cannot be opened because t原创 2016-03-11 22:52:58 · 1326 阅读 · 1 评论 -
iOS之常用的正则表达式
在软件开发中,难免会遇到需要匹配数字、字母、甚至中文等相关的信息,这就需要用到正则表达式。在这里,我花了很久的时间,查找了大量的资料和收集,在这里将常用的一些正则表达式分享出来,希望能帮到有需要帮助的人。一、正则表达式匹配特定的数字1、匹配正整数:^[1-9]d*$2、陪陪负整数:^-[1-9]d*$3、匹配整数:原创 2016-03-27 15:22:02 · 630 阅读 · 1 评论 -
iOS之“支付宝支付”开发流程
iOS支付宝快捷支付的主要步骤:先与支付宝签约,获得商户ID(partner)和账号ID(seller);下载相应的公钥私钥文件(加密签名用);下载支付宝SDK;生成订单信息;调用支付宝客户端,由支付宝客户端跟支付宝安全服务器打交道;支付完毕后返回支付结果给商户客户端和服务。支付宝iOS SDK的官方下载地址: https://b.alipay.com/order/productDe原创 2016-03-28 16:43:45 · 2398 阅读 · 1 评论 -
iOS开发两个距离较近的按钮同时触发事件的解决方法
最繁琐的一种方法是(给按钮加判断):// Created by Mini on 16/3/11.// Copyright © 2016年 IZHUO.NET. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (nonatomic,strong,readonly) UIB原创 2016-03-12 21:42:54 · 908 阅读 · 1 评论 -
iOS开发之本地通知UILocalNotification
本地通知是UILocalNotification的实例,主要有三类属性:scheduled time:时间周期,用来指定iOS系统发送通知的日期和时间;notification type:通知类型,包括警告信息、动作按钮的标题、应用图标上的badge(数字标记)和播放的声音;自定义数据:本地通知可以包含一个dictionary类型的本地数据。iOS对本地通知的数量有限制,最多允许最近本地通知原创 2016-03-14 01:36:34 · 730 阅读 · 1 评论 -
iOS之Socket的使用-AsyncSocket
iOS有原生的socket,但AsyncSocket这个第三方库,对socket的封装比较好,本文就是基于AsyncSocket的使用介绍。环境下载AsyncSocket https://github.com/roustem/AsyncSocket类库,将RunLoop文件夹下的AsyncSocket.h,AsyncSocket.m,AsyncUdpSocket.h,AsyncUdpSocket.m原创 2016-04-06 10:57:41 · 822 阅读 · 1 评论 -
iOS开发之打电话,发短信,发送邮件
iOS开发中,拨打电话的实现主要有三种方式:直接拨号:拨打完电话之后回不到原来的应用,会停留在通讯录里面,而且是直接拨打,不弹出提示- (void)makePhoneCall { NSMutableString *string = [[NSMutableString alloc] initWithFormat:@"tel:%@",@“10086"]; [[UIApplication原创 2016-03-31 11:00:29 · 1500 阅读 · 1 评论 -
iOS之获取手机的系统信息
iOS的APP应用开发过程中,为了bug跟踪或者获取用户反馈,需要自动收集用户设备、系统信息、应用信息等。当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。那么通过哪些api可以获取这些信息呢?iOS的SDK中主要提供了UIDevice,NSBundle,NSLocale三种。UIDeviceUIDevice提供了多种属性、类函数及状态通知,可以帮助我们全方位了解设备状况。从检测电池电原创 2016-03-06 16:37:05 · 1107 阅读 · 1 评论 -
iOS开发之解析XML数据
XML解析主要可以使用CData,libxml2以及NSXMLParser三种方式。一、CDataXML创建FKBook类#import <Foundation/Foundation.h>@interface FKBook : NSObject@property (nonatomic , assign) NSInteger bookID;@property (nonatomic , copy原创 2016-03-30 13:36:03 · 733 阅读 · 1 评论 -
iOS之多线程的使用和优缺点比较
iOS,多线程,进程,内存分配原创 2016-03-03 02:17:24 · 911 阅读 · 1 评论 -
iOS之界面传值(通知,属性,协议,NSUserDefaults,KVC)
通知传值 通知是在跳转控制器之间常用的传值代理方式。NSNotificationCenter提供了一种解耦的方式,就是任何对象都可以发送通知到中心,同时任何对象可以监听中心的通知。发送通知//通知中心NSNotificationCenter,发送通知- (IBAction)changeColorAction2:(id)sender { UIColor *color = [UIColo原创 2016-03-17 14:46:17 · 1102 阅读 · 1 评论 -
iOS之“微信支付”开发流程
实现微信支付,iOS端只需要四个步骤:向服务端请求预支付,获得prepaid以及noncestr;把参数拼起来签名;发起支付请求;处理支付结果。原创 2016-03-27 16:31:15 · 1043 阅读 · 1 评论