IOS开发
文章平均质量分 68
dingpwen
这个作者很懒,什么都没留下…
展开
-
IOS 开发高手课 学习笔记(第三部分)
这一部分戴铭老师说的是一些底层的东西,然后推荐了一下第三方库,但是看同学者的反应,很多内容(主要是推荐的第三方库)都不是很完善(不能完全接受),所以这部分内容,要谨慎对待,然后自己实践和查询足够的资料后,再选择接受相关内容。正所谓,尽信书不如无书,这部分内容最能反应这个观点。当然这不是否认戴老师的功劳,至少在眼界方面,学习之后得到了很大的扩宽!Part 1. 除了 Cocoa,iOS还可以用哪些 GUI 框架开发?在 iOS 开发时,默认使用的都是系统自带的 Cocoa Touch 框架,所以如果你.原创 2021-05-21 17:00:56 · 676 阅读 · 0 评论 -
IOS 开发高手课 学习笔记(第二部分)
第二部分主要是性能监控相关Part 7. 包大小:如何从资源和代码层面实现全方位瘦身?官方 App ThinningApp Thinning 是由苹果公司推出的一项可以改善 App 下载进程的新技术,主要是为了解决用户下载 App 耗费过高流量的问题,同时还可以节省用户 iOS 设备的存储空间。App Thinning 会专门针对不同的设备来选择只适用于当前设备的内容以供下载。App Thinning 有三种方式,包括:App Slicing、Bitcode、On-Demand Resource.原创 2021-05-18 22:10:54 · 1002 阅读 · 9 评论 -
IOS 开发高手课 学习笔记(第一部分)
年前购买了三门课程,Android 开发高手课、IOS开发高手课与从0开始学架构,利用工作的空余时间匆匆忙忙的,快6个月了,终于把前两门课程都过了一遍,也把其中一些遗漏的知识补充了,可以开始看第二遍,再也没有刚看第一遍时那种天书的感觉,于是可以边看边实践边做笔记。Part 1. App 冷启动的优化与监控App 的启动主要包括三个阶段:main() 函数执行前(pre-main阶段)main() 函数执行后(从main函数执行,到设置self.window.rootViewController.原创 2021-05-14 11:30:07 · 397 阅读 · 0 评论 -
UISlider自定义(自带value与旋转支持)
首先申明,代码是参考https://github.com/QiShare/QiSlider 改造而成Github中这个代码其实在IOS 14上是有问题的,即使ISSUE下面几位高手的解释也不是很适用。经过我的实践,再加上我这边旋转的需求,改造如下:头文件:@interface SWSlider : UISlider@property (nonatomic, strong) UIFont *textFont;@property (nonatomic, strong) UIColor *text.原创 2021-04-29 15:05:16 · 680 阅读 · 0 评论 -
CTMediator 中间件架构与组件化实例说明
IOS APP组件化的基础是私用pod创建私有库,如果不清楚这方面内容的,可以参看:https://blog.csdn.net/dingpwen/article/details/114878354IOS有多种第三方库来辅助实现组件化开发,其中最解耦又最简单的就是CTMediator。对比Android,由于IOS编程语言的特性(或其编译器的特性),CTMediator更加简单又更加彻底地实现了模块功能的独立。1. CTMediator简介CTMediator 实现组件化,从软件架构上来说,就是一.原创 2021-04-10 22:26:39 · 485 阅读 · 1 评论 -
[记录]error: src refspec master does not match any
Xcode新建的项目一般会自动建立一个git本地库,当我们按网上的操作,将本地git库同步到github或其它git服务器时:git push origin master会出现如下错误:error: src refspec master does not match any网上由各种各样的答案其实都是不对的,根本原因时Xcode建立的git库主分支叫main,不叫master,你可以用如下命令查看:git branch结果如下:所提Mac下同步的命令应该是:git push原创 2021-03-31 17:20:18 · 211 阅读 · 0 评论 -
CocoaPods创建私有库实例
导言APP开发过程中,为了使得不同模块间可以并行开发、独立调试互不干扰,组件化就成了必须的工作。在IOS开发,比较流行的方法,是使用CTMediator + Pod 私有库 来实现组件化,这里通过实例来说明如何实现Pod 私有库,下回有空会记录下如何使用CTMediator 实现组件化(中间件架构)。友情提示,要理解Pod私库的建立,最好自己手动操作一遍,这其中会遇到各种问题,就能加深你的理解。1. 从最简单的开始pod私库建立,可以分为三部分:1)代码库,就是我们一般存在代码的git库,例如gi原创 2021-03-16 15:32:44 · 280 阅读 · 0 评论 -
非签名APP安装到IPAD后,CRASH异常获取及分析(IPS文件分析)
1. IPAD设置我们知道已安装的APP,一旦出现运行Crash,会在 隐私 --> 分析与改进 -> 分析数据中生成一份crass日志,即IPS文件。但是我发现通过DEBUG模式(Xcode连接usb安装的非签名应用)安装的APP,即使crash了,在这里也不会有ips文件生成。后来发现必须勾选 与App开发者共享 才行:然后,通过调试方式安装的APP出现crash也能生成ips文件了。我们打开一个ips文件查看,可以看到:堆载信息皆是一堆符号地址信息,无法用来分析问题,这时候就原创 2021-03-09 18:02:45 · 635 阅读 · 0 评论 -
[记录]UIDocumentInteractionController不起作用,无法预览文件问题
我们首先先看代码:UIDocumentInteractionController *documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:[ZQLog getLogFilePath]]]; self.documentInteractionController = documentInteractionControll原创 2021-01-29 21:06:17 · 1285 阅读 · 0 评论 -
[记录]TableView didSelectRowAtIndexPath不响应
代码里有一个自定义的下拉框,根据输入内容显示一些相关提示内容,让用户可以选择要输入的内容,下拉框部分用TableView实现,调试的时候发现选择条目时,didSelectRowAtIndexPath没有反应。在网上搜索TableView didSelectRowAtIndexPath不响应,发现根本原因是TableView 超出了父控件,造成响应链中断,导致造成响应链中断无响应。但是查看代码,却发现,代码中有动态更新父控件大小的代码: CGFloat height = self.tableView原创 2021-01-15 17:19:27 · 661 阅读 · 0 评论 -
M300 RTK的航点规划相关(OC)
DJI M300 RTK在IOS的MSDK中,不能使用通用的接口来进行航点规划飞行,需要用专门用于M300 RTK的接口,即:[DJISDKManager missionControl].waypointV2MissionOperator这里特别要提示的是,与大疆给的例子不同,我们时间使用时大多数情况下,loadMission、uploadMissionWithCompletion、startMissionWithCompletion 这三部分,是放在一起按顺序执行,而不是想DEMO那样分开执行。因原创 2020-12-29 15:14:42 · 3075 阅读 · 0 评论 -
MACOS 10.15.7安装CocoaPods
在MacOS 10.15.7中使用如下命令安装CocoaPods:sudo gem install cocoapods -n /usr/local/bin会出现如下问题:mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.hextconf failed, exit code 1这需要通过rvm 安原创 2020-12-18 14:07:28 · 703 阅读 · 0 评论 -
[记录]M300 RTK监听电池状态
M300 RTK无人机连接到MSDK应用程序后,应用程序获得无人机对象,aircraft,无论是IOS中的self.aircraft.batteries或者Android中:aircraft.getBatteries()统统都是null,也就无法通过这个监听电池状态,对应M300或者M600,需要用如下接口来监听电池状态:IOS: DJIBattery.aggregationDelegate = self;Android: Battery.setAggregationState原创 2020-12-18 10:43:34 · 713 阅读 · 0 评论 -
[记录]阿里云存储服务(OSS)开通与文件传输服务
IOS APP中需要将图片资源上传到阿里云,所以需要使用OSS的服务与API。官网的说明:https://help.aliyun.com/document_detail/31920.html然后API使用的例子:https://github.com/aliyun/aliyun-oss-ios-sdk?spm=a2c6h.13321295.0.0.69ae5c2dkGgPFW这一切到没啥问题,遇到问题时在应用服务器这块。按照官网的说明,开通OSS服务,新建Bucket,然后RAM授权,然后在我们下原创 2020-10-27 11:04:57 · 503 阅读 · 0 评论 -
Pod install之后找不到头文件(‘Realm/Realm.h‘ file not found)
最近想研究一下第三方库Realm,在Podfile中添加依赖后(xcode9.1):pod 'Realm', '~>3.12.0'在Pod install后发现在代码中引用相关头文件:#import “Realm/Realm.h”一直提示头文件找不到,一贯的习惯,去stackoverflow中去搜索也没找到答案。只要静下心来仔细找原因。Pod install之后会在工程目录下的Pods-{project}.Debug.xcconfig中添加头文件查找目录,例如上面Pod instal原创 2020-10-22 14:33:08 · 2411 阅读 · 1 评论 -
[记录]UITableViewController添加导航栏
UITableViewController默认是没有导航栏的,要在UITableViewController添加导航栏,需通过内嵌NavigationController的方式:打开storyboard选择Tableview,然后通过Xcode的Eidtor菜单内嵌NavigationContrNavioller,如下图所示:添加成功后再运行就可以看到导航栏,需要注意的是,设置标题需要在TableView的navigationItem设置才有效,在NavigationContrNavioller中设置是原创 2020-06-12 16:49:13 · 419 阅读 · 0 评论 -
IOS MVC with AFNetworking inTableview
Code:https://github.com/dingpwen/FriendsList这里记录几个问题点使用UITableViewController新建项目,默认使用的是UIViewController,如果要使用UITableViewController,需要修改Main.storyboard,将其中的view删除,并将Interface Builder中的UIViewController拖到Main.storyboard中,然后注意勾选Is initial View Controller(原创 2020-06-12 10:12:41 · 140 阅读 · 0 评论 -
[记录]Xcode安装AFNetworking 4.0,使用CocoaPods
在说AFNetworking,先说说CocoaPods。以前我们程序员需要用到某个第三方库,一般都是先从网上将相关库下载下来,然后导入到工程中,如果这个库用到其它三方库,又得下载导入其它三分库,十分麻烦。但现在,由于工具的不断发展(以及网络仓库的出现),我们如果要用到某个第三方库,只需要在配置文件里告诉开发工具我们需要的库名称与版本即可,工具会自动从网络仓库中下载我们需要的库以及相关依赖库。例如Android Studio,我们输入以下代码:implementation "com.squareup.okh原创 2020-06-10 11:04:50 · 2489 阅读 · 0 评论 -
[记录]查看Xcode内置的ios SDK版本
在Launchpad的other中打开Terminal,然后输入:xcodebuild -showsdks然后提示错误:wenpeidings-Mac:~ wenpd$ xcodebuild -showsdksxcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line too原创 2020-06-08 15:49:07 · 766 阅读 · 0 评论 -
IOS并发线程学习(XCode9.1 Object-C)
iOS 多线程:『pthread、NSThread』详尽总结.iOS 多线程:『GCD』详尽总结OS 多线程:『NSOperation、NSOperationQueue』详尽总结iOS 多线程:『RunLoop』详尽总结...原创 2020-02-22 20:24:38 · 208 阅读 · 0 评论 -
IOS列表视图(UITableView)(xcode9.1 Object-C)
列表视图可以说是移动app中最常用的空间,IOS中有UITableView和UICollectionView,UITableView类似Android中的ListView,而UICollectionView类似Android中的GridView。这里简单学习UITableView的使用方法。1.首先在xib(xcode7以后其实一般推荐使用storyboard)中添加一table view 和...原创 2020-02-22 14:58:57 · 639 阅读 · 0 评论 -
IOS视图跳转(xcode9.1 Object-C)
首先新建一个ViewController,通过file->new file,选择Cocoa Touch Class,名字例如为TmpViewController, 基类为UIViewController,注意勾选xib,启动时要用到:在主ViewController中添加一个按钮,通过按钮启动TmpViewController:- (IBAction)jump:(id)sender...原创 2020-02-21 13:01:20 · 369 阅读 · 0 评论 -
IOS多媒体开发(xcode9 Obje-C)--EMail/Camera/Video/Audio
1.首先对项目添加相关库文件:2.头文件中添加相关引用和变量:#import <UIKit/UIKit.h>#import <AVFoundation/AVFoundation.h>#import <AVKit/AVKit.h>#import <MessageUI/MessageUI.h>@interface ViewControll...原创 2020-02-19 20:40:17 · 510 阅读 · 0 评论 -
IOS开发,添加控件(xcode9.1 Object-c)
添加文本与编辑框:UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 200,40)]; label.backgroundColor = [UIColor blueColor]; label.textColor = [UIColor blackColor]; label.text = @...原创 2020-02-18 14:14:20 · 686 阅读 · 0 评论