iOS开发小结
夏目三三
不疯魔不成活
展开
-
【WidgetKit】Cannot find type ‘ConfigurationIntent‘ in scope
开发 Widget 时,创建对应 taget 后,出现 Cannot find type 'ConfigurationIntent' in scope 错误原创 2022-08-09 16:36:16 · 1135 阅读 · 0 评论 -
iOS-Chrome 调试 Web 页面
Chrome 调试1. 安装 ios-webkit-debug-proxybrew install ios-webkit-debug-proxy2. 启动 proxy 监听ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html失败a:Listing devices on :9221Could not connect to lockdownd, error code -19. Exiting.Una原创 2020-06-14 15:01:04 · 1096 阅读 · 0 评论 -
OC 自动生成文档工具:appledoc
参考1参考2环境:XCode 11.1appledoc git 地址1. 安装brew 安装brew install appledoc!!!注意 1:我使用 brew 安装,执行2步骤之后生成的 apiDoc ,双击 index.html,只能看到工程的头文件,没有详细的注释。所以建议使用 git 安装。参考git clonegit clone git://github.com/tomaz/appledoc.gitcd ./appledocsudo sh install-ap原创 2020-06-08 18:14:17 · 5253 阅读 · 0 评论 -
iOS-删除SceneDelegate并且取消Safe area
删除SceneDelegate参考文章删除SceneDelegate文件直接删除即可。Info.plistInfo.plist -> Open As -> Source Code删除对应的键值对:搜索key --> UIApplicationSceneManfestApplegate首先,删除 #pragma mark - UISceneSession lifecycle 下的协议方法。然后,再 didFinishLaunchingWithOptions:原创 2020-05-28 10:42:20 · 1736 阅读 · 0 评论 -
iOS-MMKV的使用
简介github地址MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能和稳定性经过了时间的验证。近期也已移植到 Android / macOS / Win32 / POSIX 平台,一并开源。源起在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash...原创 2020-05-04 15:58:18 · 3329 阅读 · 0 评论 -
iOS开发--一步步教你彻底学会『iOS应用间相互跳转』
转载:iOS开发--一步步教你彻底学会『iOS应用间相互跳转』这篇文章通过一步步指导,教你彻底学会『iOS应用间相互跳转』问题。文末有Github的学习Demo。1. 应用间相互跳转简介在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景。这就需要我们掌握iOS应用程序之间的相互跳转知识。下面来看看我们在开发过程中遇到的应用场景。2. 应用间相互跳转应用场景使用第三...转载 2018-06-21 10:12:37 · 281 阅读 · 0 评论 -
AVAudioSession学习记录
一、枚举(enum): 1. AVAudioSessionInterruptionOptions:只有一个枚举值AVAudioSessionInterruptionOptionShouldResume,用于中断音频之后,重新激活之前播放的音频。在音频中断时,系统会发送AVAudioSessionInterruptionNotification通知,userInfo中AVAudioSession...原创 2018-05-03 17:07:33 · 2803 阅读 · 0 评论 -
iOS-横屏时状态栏不显示
//设置样式- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent;}//设置是否隐藏- (BOOL)prefersStatusBarHidden { return NO;}//设置隐藏动画- (UIStatusBarAnimation)preferredS...原创 2018-04-24 15:19:31 · 3670 阅读 · 0 评论 -
iOS-小总结
2017.111.父视图透明,子视图正常blackView.backgroundColor = [UIColor colorWithWhite:0.f alpha:0.6];更多详细方式参考:iOS 设置视图半透明而子控件不透明2.UITextField因过滤空格无法回退删除问题- (BOOL)textField:(UITextField *)textField shoul原创 2017-12-06 10:47:47 · 279 阅读 · 0 评论 -
iOS-drawRect:和layoutSubview的区别
参考文章:drawRect:和layoutSubview的区别 layoutsubviews 与drawRectUIView的setNeedsDisplay和setNeedsLayout方法。首先两个方法都是异步执行的。setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayou...转载 2018-03-27 11:40:38 · 574 阅读 · 0 评论 -
iOS-loadView的使用
参考文章:loadView、viewDidLoad及viewDidUnload的关系Apple API :// This is where subclasses should create their custom view hierarchy if they aren't using a nib. Should never be called directly.使用点语法(self.view o...转载 2018-03-27 11:26:16 · 1406 阅读 · 0 评论 -
The executable was signed with invalid entitlements.
错误如下:解决方法:1.重启Xcode2.是否用到Inter-App Audio,若是,则选中Capabilities将其打开3.Project 和 ProjectTests的Team不一致参考:https://stackoverflow.com/questions/19581225/the-executable-gets-signed-with-invalid-entit...原创 2018-07-18 09:38:47 · 447 阅读 · 0 评论 -
Xcode10 #import 不提示头文件
参考文章:https://blog.csdn.net/zhutan_123/article/details/82997850转载 2019-02-13 10:18:48 · 828 阅读 · 0 评论 -
iOS--表单formdata上传文件
背景:使用multipart/form-data格式提交图片或者文件到服务器。方法:使用http请求POST方式,然后在请求头里设置Content-Type为multipart/from-data指定请求的格式。参数格式:普通参数:--boundry\r\nContent-Disposition: form-data; name=\"%@\"\r\n \r\...原创 2019-02-26 20:40:24 · 4212 阅读 · 0 评论 -
iOS JSON与NSDictionary互转
1.使用系统类NSJSONSerialization//字典转JSON+(NSString *)convertJSONWithDic:(NSDictionary *)dic { NSError *err; NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrett...原创 2019-03-26 09:38:59 · 3562 阅读 · 0 评论 -
iOS-富文本之表情文字混排
场景:如微信一样,可以发送emoji表情,以及emoji表情与文字混排。主要实现依据类:1.NSMutableAttributedString将文本转化成NSMutableAttributedString类型,进而可以赋予文字属性2.NSRegularExpression生成正则表达式规则,查找文本对应的emoji表情符号3.NSTextAttachment...原创 2019-04-03 13:32:03 · 1775 阅读 · 0 评论 -
更新默认Xcode路径
(1)查看xcode-select可使用命令xcode-select -horxcode-select --help(2)查看当前正在使用的Xcode版本路径xcode-select -porxcode-select --print-path(3)查看xcode-select版本xcode-select -vorxcode-sele...原创 2019-05-17 17:35:00 · 1553 阅读 · 0 评论 -
iOS之音频录制及播放
1)Demo环境:Swift4.2,Xcode10.12)Demo地址:https://github.com/cxymq/RecordForChat3)AVAudioSession学习记录https://blog.csdn.net/Crazy_SunShine/article/details/80104838步骤如下:1.需要申请麦克风权限...原创 2019-06-26 10:20:32 · 1820 阅读 · 0 评论 -
iOS-高德地图API的定位与搜索功能
环境:Xcode10.1Swift4.2真机6s,ios11Demo:https://github.com/cxymq/AmapSwift高德地图API使用 需要(https://lbs.amap.com)申请开发者账号,创建应用,获取对应平台的key。 查看API(https://lbs.amap.com/api),也可到 示例代码 中获取官方de...原创 2019-07-10 11:17:49 · 4542 阅读 · 0 评论 -
iOS 添加快捷方式到主屏幕
参考文章:iOS 添加到主屏幕/ iOS Add To Desktop iOS创建桌面快捷方式代码在上面文章和其他资料基础上实现此功能,详细介绍和技术点可参考上述文章。Demo是以第三方CocoaHTTPServer为基础,建立本机服务器,调起Safari创建快捷方式。步骤:1.Demo中首先Pod第三方CocoaHTTPServer和GTMBase64,然后导入第一篇文原创 2017-12-06 14:24:47 · 11412 阅读 · 0 评论 -
iOS开发——创建你自己的Framework
原文地址:http://www.cocoachina.com/ios/20150127/11022.html转载 2016-07-04 16:50:17 · 329 阅读 · 0 评论 -
@synchronized(self)的作用
Objective-C支持程序中的多线程。这就意味着两个线程有可能同时修改同一个对象,这将在程序中导致严重的问题。为了避免这种多个线程同时执行同一段代码的情况,Objective-C提供了@synchronized()指令。@synchronized(self):作用:创建了一个互斥锁,它的作用和其他语言中的互斥锁作用一样解释:这个是原创 2016-06-28 09:54:36 · 416 阅读 · 0 评论 -
Xcode修改工程名称
1.修改名称,例如将红色方框的名称改为易车之家2.修改完成后会弹出下图提示框,点击Rename3.点击Rename之后,会弹出下图提示框,点击Continue4.按照下图进入Manage Schemes5.点击红色方框名称进行修改,改成易车之家,然后点击空白处,修改成功,再点击close6.修改项目文件夹名称,跳到Finder修改,将“c原创 2016-05-19 14:03:15 · 2541 阅读 · 0 评论 -
iOS开发系列--数据存取
数据存取转载 2016-04-15 14:32:21 · 794 阅读 · 0 评论 -
iOS 获取系统当前时间
获取系统当前时间: NSDate *currentDate=[NSDate date]; NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init]; [dateformatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; NSString *currentTime=原创 2016-04-14 15:20:44 · 329 阅读 · 0 评论 -
监控键盘状态
1.使用Masnory自动布局//监控键盘 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardShow:) name:UIKeyboardWillShowNotification object:nil]; [[NSNotificationCenter def...原创 2016-04-27 10:03:45 · 688 阅读 · 0 评论 -
UITextField 的使用
1.UITextField 的基本设置 UITextField *passTf = [[UITextField alloc]init];//初始化 passTf.placeholder = @"密码";//填充背景提示 passTf.secureTextEntry = YES; //设置为密码格式,默认是明文格式 passTf.delegate = self; /原创 2016-04-27 09:31:54 · 322 阅读 · 0 评论 -
文字转语音AVSpeechSynthesizer
1.添加类库AVFoundation.framework2.引入#import 3.定义属性@property (nonatomic,strong) AVSpeechSynthesizer *spee;4.对其进行懒加载操作,并引入协议AVSpeechSynthesizerDelegate>-(AVSpeechSynthesizer *)spee{ if原创 2015-10-31 15:18:34 · 648 阅读 · 0 评论 -
利用系统自带的UITabBarController纯代码搭建TabBar
1.创建UITabBarController文件,例如夜宵App的TabBar,文件名定义为YeXiaoTabBarController2.创建完成后,在.m文件的viewDidLoad方法中写入以下代码: self.tabBar.translucent = NO; self.tabBar.tintColor = [UIColor whiteColor];原创 2016-03-05 13:39:55 · 1956 阅读 · 0 评论 -
Archives时 :Failed to locate or generate matching signing assets:
遇到问题如下图:此时,需要到钥匙串中,如下图操作:在AppleWWDRCA.cer下载新证书,添加到钥匙串中即可。原创 2016-09-01 09:29:58 · 391 阅读 · 0 评论 -
.p12文件转成.pem
openssl pkcs12 -in MyCert.p12 -out MyCert.pem -nodes转载 2016-11-19 17:07:31 · 1024 阅读 · 0 评论 -
UIRefreshControl的使用
1.iOS6.0开始,苹果加入UIRefreshControl控件,用户可以用源生控件为应用加入下拉刷新功能。2.iOS10.0开始,UITableView加入UIRefreshControl属性,用户可以直接使用。但是必须在iOS10.0及以上使用,否则低版本会出现崩溃。3.UIRefreshControl只能加到UITableView中,如果加入UIView中,会出现崩溃。另外,不必添原创 2017-11-02 10:59:54 · 748 阅读 · 0 评论 -
iOS armv7, armv7s, arm64区别与应用32位、64位配置
参考文章:iOS armv7, armv7s, arm64区别与应用32位、64位配置转载 2017-10-12 09:21:41 · 1207 阅读 · 0 评论 -
Xcode:崩溃堆栈分析和Crash文件符号化
参考文章:Xcode:崩溃堆栈符号化,定位崩溃Xcode:iOS崩溃日志分析方法命令行工具解析Crash文件,dSYM文件进行符号化符号化Crash日志使用symbolicatecrash解析了一个crash log如何符号化Objective-C调用栈转载 2017-10-12 09:32:45 · 1530 阅读 · 0 评论 -
iOS-设置阴影和圆角效果
参考链接:视觉效果和变换iOS 给一个设置过圆角的View添加阴影效果1.圆角效果wechatBt.layer.cornerRadius = 8;wechatBt.layer.masksToBounds = YES;//超出父视图部分不显示。2.阴影效果messageBt.layer.shadowOffset = CGSizeMake(1, 1);messageBt....原创 2017-09-19 13:58:49 · 14592 阅读 · 2 评论 -
UITextField设置无法输入空格
1.在UITextFieldDelegate的代理方法中设置过滤空格- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *textPsw = [string原创 2017-09-19 14:44:10 · 1066 阅读 · 0 评论 -
iOS-导航栏遮盖布局
在开发中,有UITableView的情况下,系统会在导航栏下自动布局,但是没有的情况下,导航栏可能会遮盖布局。如下设置即可:self.edgesForExtendedLayout = UIRectEdgeNone;//从导航栏下面开始布局原创 2017-09-19 13:36:56 · 693 阅读 · 0 评论 -
iOS-推送自定义提示音
参考文章:Local and Remote Notification Programming Guide 无论是信鸽推送,还是极光推送,其实就是将苹果原生的APS进行封装。具体操作步骤在相应的官网上都有详细介绍以及Demo。本文主要讲述自定义声音遇到的坑,以下是相关硬性条件:1.音频文件格式: .aiff 、.wav 、.caf ,下面的/System/Library/Sounds/...原创 2017-04-14 09:20:05 · 4871 阅读 · 0 评论 -
获取当前View所在的ViewController
背景:AViewController 添加 BView,例如 [AViewController.view addSubview: bview],在BView类中获取AViewController控制器,实现跳转等功能。具体实现:- (AViewController *)vc { UIView* aView = [self superview]; AViewControlle原创 2017-07-19 10:27:54 · 761 阅读 · 0 评论 -
简单聊天界面
1.在Main.storyboard中创建控制器和控件,添加约束,设置TextField 如图:2.为TableView在控制器上添加delegate、datasource,为textField添加delegate 3.在ViewController.m中添加代码@interface ViewController ()@property原创 2016-03-19 10:25:23 · 624 阅读 · 0 评论