iOS
文章平均质量分 69
iOS
风浅月明
有问题的可以留言。邮箱地址:1296817932@qq.com
展开
-
[iOS]遇到的一个算法面试题
O(n) 表示算法的执行时间或所需空间与输入数据的大小成正比。这意味着如果输入数据的大小增加一倍,算法的执行时间或所占用的空间也大约增加一倍。原创 2024-05-12 12:34:34 · 1005 阅读 · 0 评论 -
[iOS]APP优化
性能优化是一个至关重要的过程,它对提高应用的用户体验、增强应用的市场竞争力以及维持用户的长期参与度具有深远的影响。原创 2024-04-27 23:14:57 · 1503 阅读 · 5 评论 -
[iOS]使用CocoaPods发布公开库
在 podspec 文件中使用标签,通常意味着你指定了一个稳定的、用于发布的版本。这是最常见的用法,因为这确保了项目的依赖是固定且可预测的。这通常用于开发阶段,当你想要使用最新的尚未发布的代码时。标签是静态的,指向特定的提交,不会随着更多的提交而变化。选择库名时,尽量选择具有描述性并且独特的名字,这不仅可以避免命名冲突,还可以帮助用户更好地理解库的用途和功能。文件,在编辑器中进行修改,以符合你的库的具体情况。将你的项目推送到一个 Git 仓库(如 GitHub),确保为发布的版本创建相应的分支或者标签。原创 2024-04-27 17:02:39 · 1965 阅读 · 2 评论 -
[iOS]使用CocoaPods发布私有库
创建私有 Spec 仓库首先,需要一个私有的 Git 仓库来存放你的 Podspec 文件,这个仓库用于索引你所有的私有 Pods。 在 GitHub 或其他 Git 服务上创建一个新的私有仓库,例如,名为 PrivatePodSpecs。 克隆这个仓库到本地:原创 2024-04-26 22:59:40 · 1683 阅读 · 1 评论 -
[iOS]CocoaPods安装和使用
综上所述,Brew 是用于管理 macOS 上的软件包的包管理器,RVM 是用于管理和安装多个 Ruby 版本的工具,Ruby 是编程语言本身,Gem 是 Ruby 的软件包管理系统,而 CocoaPods 是用于管理 iOS 和 macOS 项目中的第三方库依赖项的工具,它使用 Gem 来安装和管理自己的软件包。打开您的 ~/.bash_profile 或 ~/.bashrc 文件(通常 ~/.bash_profile 用于登录 shell,而 ~/.bashrc 用于非登录 shell。原创 2024-04-25 12:37:11 · 3380 阅读 · 2 评论 -
[iOS]协议中如何添加属性?
在协议中定义属性主要是通过声明属性的 getter 和/或 setter 方法。这可以通过 Objective-C 的@property声明来完成。这样做的目的是要求任何实现该协议的类都必须实现这些属性的相应访问器方法。// 定义一个只读属性// 定义一个可读写属性@end。原创 2024-04-12 15:07:50 · 783 阅读 · 0 评论 -
[iOS]事件处理
触摸事件是最为直观的用户交互形式。iOS 设备的触摸屏能够检测多点触摸,并区分各种手势。处理触摸事件的关键在于理解 UIResponder 类以及其相关的方法。: 所有能够响应用户事件的对象,比如视图(UIView)和视图控制器(UIViewController),都是 UIResponder 的子类。这个类定义了处理触摸事件的方法(如 touchesBegan:withEvent:)。: 表示触摸屏幕的手指。原创 2024-04-07 19:22:46 · 760 阅读 · 0 评论 -
[iOS]进程-线程-队列-任务
进程是一个执行中的程序的实例。它是系统资源(如 CPU 时间、内存空间、文件描述符等)分配的基本单位。每个进程都运行在其自己的隔离空间内,操作系统负责管理进程的生命周期以及它们对系统资源的使用。在iOS开发中,使用Grand Central Dispatch (GCD)可以创建自定义队列(Custom Queues)。自定义队列可以是串行的也可以是并行的,取决于你的需求。原创 2024-04-07 15:15:01 · 1398 阅读 · 0 评论 -
Apple ID在App Store登录时提示“此 Apple ID已停用”如何解决?
如图,苹果账号登录App Store时提示“此 Apple ID 已停用”我这个账号,找回密码时,提示“这个 Apple ID 没有被激活”。原创 2024-04-01 11:36:52 · 1470 阅读 · 0 评论 -
智能手机的分层架构
硬件抽象层(Hardware Abstraction Layer,HAL)是一个软件库,其作用是在硬件和高层软件之间提供一个抽象接口。这个接口将硬件的具体实现细节隐藏起来,使得上层软件无需了解硬件的具体实现就能使用硬件的功能。原创 2023-12-04 00:43:13 · 2113 阅读 · 0 评论 -
[iOS]常用修饰符详解
这可以防止父对象和子对象之间形成循环引用。然而,与 weak 不同的是,当 unsafe_unretained 引用的对象被释放后,引用该对象的 unsafe_unretained 变量的值并不会自动置为 nil,而是会继续指向被释放的内存空间。在这个例子中,name 属性由 strong 修饰,因此当你将一个字符串赋值给 name 属性时,该字符串的引用计数会增加 1,反过来,当 MyObject 实例被释放时,name 属性也会被释放,这会导致赋给 name 属性的字符串的引用计数减少 1。原创 2023-12-03 00:13:59 · 1409 阅读 · 0 评论 -
[iOS]iPhone手机如何取消Apple ID对App的授权
我们使用苹果账号授权登录时,只有首次会获取到账号的名称和邮箱信息,后面再使用授权登录就获取不到相关用户信息了。如果错过了记录首次授权返的信息,或者修改授权参数后想重新看一下首次登录,就需要停止Apple ID对App的登录授权。手机进入 设置 -> Apple ID -> 密码与安全性 -> 使用Apple ID的App -> App名称 -> 选择“停止使用Apple ID”原创 2023-01-16 13:07:47 · 4885 阅读 · 0 评论 -
[iOS]git忽略pod文件提交代码到仓库
经常pod一些大的框架,单文件超过100M,push到仓库时就会报错。推荐先将小的框架先push到仓库,不然每次clone代码都去执行pod update也太耗费时间了。最后在导入大的框架时,添加忽略文件,忽略提交pod。原创 2022-12-11 11:17:41 · 1712 阅读 · 0 评论 -
[iOS]App Store Connect添加银行卡时的CNAPS代码查询
App Store Connect 协议、税务和银行业务中,给付费APP类型添加银行卡需要填写CNAPS代码CNAPS代码,其实就是联行号。联行号又称大额行号、银联号、银行行号或CNAPS号。原创 2022-12-01 20:32:30 · 4233 阅读 · 0 评论 -
[iOS]移除苹果开发者账号上无用测试设备
公司就一个苹果开发者账号,项目接入交付,人员来来往往,很快就将100台设备名额占满.移除测试设备有下面两种方式:1.等待新的会员年续费开发者账号后,苹果会提供一次更新设备列表的机会.2.向苹果请求更新设备列表的机会联系苹果:https://developer.apple.com/contact/submit.php团队ID就是Team ID:...原创 2021-10-15 09:53:43 · 5790 阅读 · 0 评论 -
Xcode添加快捷键(复制n行插入下一行之前、在下一行之前插入一空行)
1、前往文件夹(Command+Shift+G)/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist2、将文件IDETextKeyBindingSet.plist拷贝到桌面3、向复制出的plist文件中的Insertions and Indentations添加两个keykey value Duplicate Cu原创 2021-04-04 10:45:15 · 550 阅读 · 0 评论 -
查看Xcode对应的Swift和iOS的版本
打开终端,使用命令查询。xcrun swift -versionGaminMac:~ gamin$ xcrun swift -versionApple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)Target: x86_64-apple-darwin20.3.0xcodebuild -showsdksGaminMac:~ gamin$ xcodebuild -showsdksiOS SDKs: i...原创 2021-04-04 08:44:17 · 1927 阅读 · 0 评论 -
[iOS]PHAsset获取文件的路径的方式
一、使用KVC的方式PHAssetResource * resource = [[PHAssetResource assetResourcesForAsset: videoModel.asset] firstObject];// file:///var/mobile/Media/DCIM/165APPLE/IMG_5225.MOVNSString *tempPrivateFileURL = [resource valueForKey:@"privateFileURL"];// IMG_5225.原创 2020-10-30 11:15:47 · 9026 阅读 · 0 评论 -
[iOS]计算函数
绝对值int abs(int i); // 处理int类型的取绝对值double fabs(double i); // 处理double类型的取绝对值float fabsf(float i); // 处理float类型的取绝对值两点之间的距离// 计算两点之间的距离- (float)calculateDistanceWithPointOne:(CGPoint)pointOne PointTwo:(CGPoint)pointTwo { CGFloat xDi原创 2020-10-29 18:31:51 · 474 阅读 · 0 评论 -
[iOS]饼状图
Github:https://github.com/Gamin-fzym/GADVPieChart之前项目中需要用到饼状图来统计数据,我在Github上找到DVPieChart,因为它在样式上与我们UI的设计图差异不大。拿来改改样式,按需要传入数据就解决了问题。后来,需要统计的数据条数变得更多了,这时发现DVPieChart的view上展示不了太多标签,很多指示线还会交叉。后面在Github没重新找到更合适的饼状图,就只有自己提笔按照需求重写了一个状图。绘制逻辑会也不复杂。1、先画好饼状图(需要环原创 2020-10-29 17:50:43 · 834 阅读 · 0 评论 -
[iOS]选择和拍摄图片和视频并将图片编辑为需要的宽高比
Github:https://github.com/Gamin-fzym/GASelectAndEditPhotoDemoHXPhotoPicker:https://gitee.com/378518868/HXPhotoPicker最开始Demo中图片选择器使用的HXPhotoPicker,后面拓展时就在HXPhotoPicker基础上添加了一些功能。新增的功能:1、拍照时只截取拿到标识方框中的图片。2、从相册完成图片选择之后进入图片编辑页面(旋转、剪切、重置、视频预览)。3、选择视频后将mo原创 2020-10-28 16:08:14 · 1138 阅读 · 0 评论 -
[iOS]在Cell中创建和移除通知
之前我一直使用的下面这种方式创建和移除#import "ListTableViewCell.h"@implementation ListTableViewCell- (void)awakeFromNib { [super awakeFromNib]; // Initialization code [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateInfoAc.原创 2020-10-26 18:32:25 · 1019 阅读 · 0 评论 -
[iOS]Cell随着输入文字的换行自动增高
Demo: https://download.csdn.net/download/u012881779/13054465Cell中刷新TableView的高度- (void)textViewDidChange:(UITextView *)textView { [self updateTextViewHeight];}- (void)updateTextViewHeight { UITextView *theText = [[UITextView alloc] initWit.原创 2020-10-26 16:15:45 · 848 阅读 · 0 评论 -
[iOS]视频格式mov转mp4
mov转mp4#pragma mark --- HXPhotoViewDelegate- (void)photoView:(HXPhotoView *)photoView changeComplete:(NSArray<HXPhotoModel *> *)allList photos:(NSArray<HXPhotoModel *> *)photos videos:(NSArray<HXPhotoModel *> *)videos original:(BOOL)原创 2020-10-23 18:27:47 · 1981 阅读 · 0 评论 -
[iOS]一个简单日历
按照需求弄的一个简单的日历,可以展开完全展示日历,也可以收回只展示已选择那一行。另外添加了选择器切换月份,还可以在列表中跨月选择切换日期。加载日历控制器- (void)setupTVHeaderView { if (!_tvHeaderVC) { _tvHeaderVC = [[BLCalendarViewController alloc] initWithNibName:@"BLCalendarViewController" bundle:nil]; __原创 2020-10-15 17:57:27 · 1673 阅读 · 0 评论 -
[iOS]UITextView 输入字数限制
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { return textView.text.length + (text.length - range.length) <= 30;}原创 2020-09-14 17:26:38 · 1973 阅读 · 0 评论 -
[iOS]自定义导航栏(RMNavigationBar)
GitHub:https://github.com/Gamin-fzym/GACustomNavDemo系统的导航(UINavigationController)有时没法搞定需求,使用自定义的导航好处理些。也不是什么复杂的内容,下面主要代码备个份。RMNavigationBar#import <UIKit/UIKit.h>@interface RMNavigationBar : UIView/// 标题Label,通过类方法传入title初始化, 只读@proper.原创 2020-08-09 18:22:05 · 1100 阅读 · 0 评论 -
[iOS]对UIView和UIImage的部分截屏
接到这样一个需求,要对APP中所有拍照和选择的图片的地方先让用户对图片进行编辑(只是寻常的旋转、剪切),然后再上传。截取的方式一一开始因为对UIGraphics的方法不怎么熟悉,以为只能对UIView的整个截屏。于是就弄出了这种截取部分图片的方式,就是用CropView包住ImageView然后截取CropView。虽然效果也还不错也能满足一些需求,但是这样的截图变得不高清,所以最后放弃了用它。/// 截图 + (UIImage *)cropImageWithOldImage:(UIImag原创 2020-08-08 18:05:23 · 1448 阅读 · 0 评论 -
[iOS]UIImage+Compress
发现一个很好用的图片压缩的拓展。将图片压缩成以设定的宽度,高度以图片自己的高度比例缩放,以及压缩图片的数据大小达到低于设定的值。使用到的地方还是不少,比如分享图文到朋友圈时就有限制图片不大于32K。#import <UIKit/UIKit.h>@interface UIImage (Compress)/** * 图片压缩:将图片压缩成以640为宽,高度以图片自己的高度比例缩放 * * @param targetWH 要压缩到的尺寸 * @param maxF原创 2020-08-08 17:10:17 · 401 阅读 · 0 评论 -
[iOS]检测图片上是否有人脸
这识别人脸这功能在很多地方都能使用到。比如在APP中需要用户使用人脸识别时,这种肯定要在用户上传头像时先判断图片中是否有人脸。[使用]1、已经拿到UIImage后直接检测UIImage *editedImage = imgModel.previewPhoto?:imgModel.thumbPhoto;/// 检测图片上是否有人脸if ([IWCheckImageHaveFace checkHaveFaceWithImage:editedImage]) { [self uploadI原创 2020-08-08 11:40:49 · 1104 阅读 · 0 评论 -
[iOS]MJCSegmentInterface(分段控制器)
GitHub:https://github.com/MJCIOS/MJCSegmentInterface个人使用了不短时间,感觉也非常好用。这是一款类似百思不得姐、今日头条、腾讯新闻等app的分段界面功能的,分段界面框架。如图:这里只是简单的使用#import "WorkZoneManagementSegment.h"#import "MJCSegmentInterface.h"#import "WorkZoneManagementListVC.h"@interface WorkZo原创 2020-08-08 10:48:47 · 605 阅读 · 0 评论 -
[iOS]获取两个日期之间所有的日期数组以及两个日期之间跨越了多少个结算月
两个日期之间所有天数组成的数组// 计算两个时间的差值NSCalendar *calendar = [NSCalendar currentCalendar];// 需要对比的时间数据 NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;NSCalendarUnit unit = NSCalend原创 2020-08-06 09:26:10 · 1210 阅读 · 0 评论 -
[iOS]开启本地服务器
项目中有这么一个需求,需要将H5文件先全部下载到沙盒中,然后再用手机开启本地服务器来进行访问。Pods导入CocoaHTTPServerpod 'CocoaHTTPServer'下面代码备个份AppDelegate#import <UIKit/UIKit.h>#import <HTTPServer.h> //本地服务器#import "IWManageH5File.h"@interface AppDelegate : UIResponder <U原创 2020-08-04 22:53:27 · 2267 阅读 · 0 评论 -
[iOS]分享文件到QQ好友或微信好友
APP中需要将文件分享给QQ和微信好友,常用下面这两种方式。1、使用系统的UIActivityViewController类发送2、使用QQ和微信的API分享下面看一下分享文件到QQ和微信好友如何实现[API文档]QQ互联https://wiki.connect.qq.com/微信开放平台https://open.weixin.qq.com[开发信息编辑]URL Schema填写QQ+转化成十六进制的App ID(附上一个转换网址),转换后的App ID不足八位则前面补0凑齐。QQ互联原创 2020-07-30 23:30:05 · 5911 阅读 · 0 评论 -
[Swift]时间处理、时间选择器和图片选择器
SwiftDateGitHub:https://github.com/malcommac/SwiftDateSwiftDate 中文文档:https://www.jianshu.com/p/1b6e8a764800CocoaPodspod 'SwiftDate'YLDatePickerGitHub:https://github.com/February12/YLDa...原创 2020-05-31 18:29:19 · 1323 阅读 · 0 评论 -
[iOS]从系统“文件”APP选择文件上传以及保存文件到“文件”APP
#import "ViewController.h"@interface ViewController () <UIDocumentPickerDelegate>@property (nonatomic, strong) UIDocumentPickerViewController *documentPickerVC;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad].原创 2020-05-31 16:16:34 · 10496 阅读 · 4 评论 -
[iOS]Mac Charles抓包
记录一下使用过程中遇到的问题:1.遇到Mac mini无法和手机连接到同一个WiFi,后面确认是插在后面的USB转接头导致的USB冲突影响了电脑的WiFi连接。2.iPhone手机安装证书后,需要去 通用-关于本机-证书信任设置 对安装的证书设置信任,不然抓包时https的接口还是会展示unknown.3.Charles菜单中 Proxy-Proxy Settings 中HTTP Pr...原创 2020-03-17 15:42:41 · 500 阅读 · 0 评论 -
[iOS]AVPlayerViewController自定义播放控制样式
Demo:https://download.csdn.net/download/u012881779/12117616系统的播放器样式自定义样式(通过将showsPlaybackControls置为NO后自定义)#import "ViewController.h"#import "HCHoneyChatListModel.h"#import <AVFoundation/AV...原创 2020-01-22 11:50:47 · 3811 阅读 · 0 评论 -
[iOS]录制或从相册选择视频
写一个“添加视频”的功能内容:1.从相册选择视频2.录制视频3.将mov格式视频转为mp44.使用封装的SLPlayer播放器播放视频GitHub:https://github.com/Gamin-fzym/GAVideoRecordDemoDemo:https://download.csdn.net/download/u012881779/12116007示意图:详见demo,...原创 2020-01-20 16:01:09 · 1512 阅读 · 0 评论 -
[iOS]使用AVPlayer时AVPlayerLayer的videoRect未展示全屏问题
之前使用AVPlayer全屏播放自己录制的视频时,在iPhone 7 Plus设备上没问题,但在iPhone X上播放就有上下留白的问题(如示意图)。开始还以为是iPhone X安全区域的问题,后面发现原来是需要配置AVPlayerLayer的videoGravity属性。@property(copy) AVLayerVideoGravity videoGravity;typedef ...原创 2020-01-19 16:50:09 · 4299 阅读 · 1 评论