
iOS开发
iOS开发
cym_bj
相信你能你就无所不能
展开
-
pod install VS pod update
pod install:根据Podfile、Podfile.lock和当前已经安装的Pod情况(即Pods目录下的Pod库),来决定安装、删除或更新一些Pod库install结束后,会将安装的pod库以及所有直接、间接依赖的pod库写入Podfile.lock中一、pod install不更新pod假设创建一个新工程,Podfile中引入库A,写法是pod A, '1.0',执行pod install 完成后,Podfile.lock中库A的版本就是是1.0了。现在我们修改Podfile中A的原创 2022-02-17 14:25:55 · 2466 阅读 · 0 评论 -
iOS—— Class 、object_getClass、objc_getClass区别
1、class 方法class 方法无论是类对象还是实例对象都可以调用,可以嵌套,返回永远是自身的类对象。如:Person *p = [[Person alloc]init];Class *pClass == [p class] == [ [p class]class] == [[ [p class]class]class] == [Person class]2、object_getClass 方法Class object_getClass(id obj){ if (obj)原创 2021-06-24 16:15:03 · 930 阅读 · 0 评论 -
iOS——获取数组模型中某个属性的值
Persion * p1 = [[Persion alloc]init]; p1.name = @"哈哈"; p1.age = 12; p1.num = 42; Persion * p2 = [[Persion alloc]init]; p2.name = @"嘿嘿"; p2.age = 24; p2.num = 4219; Persion * p3 = [[Persion alloc]init]; p3....原创 2021-02-20 11:14:41 · 2964 阅读 · 1 评论 -
iOS——四周阴影
UIView * bgView = [[UIView alloc]init]; bgView.backgroundColor = [UIColor whiteColor]; bgView.frame = CGRectMake(100, 100, 100, 100); bgView.layer.shadowColor = [UIColor grayColor].CGColor; bgView.layer.shadowOffset = CGSizeZero; // 设置偏移量为.原创 2021-02-19 16:03:26 · 599 阅读 · 0 评论 -
iOS——Objective-C 异常机制(@try @catch)
Objective-C 异常机制 :-- 作用 : 开发者将引发异常的代码放在 @try 代码块中, 程序出现异常 使用 @catch 代码块进行捕捉;-- 每个代码块作用 : @try 代码块存放可能出现异常的代码, @catch 代码块 异常处理逻辑, @finally 代码块回收资源;try{ //..执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容}catch(){ //...除非try里面执行代码发生了异常,否则这里的代码不原创 2020-11-16 16:09:24 · 603 阅读 · 0 评论 -
iOS——内存监控(Memory)
内存是有限且系统共享的资源,一个程序占用越多,系统和其他程序所能用的就越少。程序启动前都需要先加载到内存中,并且在程序运行过程中的数据操作也会占用一定的内存资源。减少内存占用也能同时减少其对 CPU 时间维度上的消耗,从而使不仅使 App 以及整个系统也都能表现的更好。MacOS 和 iOS 都采用了虚拟内存技术来突破物理内存的大小限制,每个进程都有一段由多个大小相同的页(Page)所构成的逻辑地址空间。处理器和内存管理单元(MMU,Memory Management Unit)维护着由逻辑地址到物理地原创 2020-11-13 18:18:12 · 2058 阅读 · 0 评论 -
iOS——CPU监控
一、了解CPU架构市场上,我们比较熟悉的CPU架构有ARM(arm64)和Intel(x86)等等,目前,市场上大部分的iPhone都是基于arm64架构。因为arm架构有着功耗低的特点,因此广泛应用在移动设备领域。(intel虽然性能好,但功耗高。因此失去了移动端领域的市场份额。)。CPU指令集架构:>i386是针对intel通用微处理器32位处理器>x86_64是针对x86架构的64位处理器>模拟器32位处理器测试需要i386架构,>模拟器64位处理器测试原创 2020-11-13 17:00:04 · 1286 阅读 · 1 评论 -
iOS——WKWebView白屏
在UIWebView上当内存占用太大的时候,App Process会崩溃crash;而当WKWebView总体的内存占用比较大的时候,WebContent Process会崩溃crash,从而导致白屏现象。解决方案借助 WKNavigtionDelegate在iOS 9以后WKNavigtionDelegate新增一个回调函数/*! @abstract Invoked when the web view is establishing a network connection using原创 2020-11-09 11:47:25 · 1763 阅读 · 1 评论 -
iOS——LLDB调试工具
LLDB是个开源的内置于XCode的调试工具一、p、po 打印区别:po:只会输出对应的值 ,p:返回值的类型以及命令结果的引用名(输出值+值类型+引用名+内存地址)二、expression 缩写:expr 表达式 、打印、或修改值三、Thread1、堆栈打印thread backtrace (缩写bt)2、thread return 跳出当前方法的执行Debug的时候,也许会因为各种原因,我们不想让代码执行某个方法,或者要直接返回一个想要的值。这时候就该t...原创 2020-10-27 16:53:28 · 299 阅读 · 0 评论 -
iOS 9.0以后 通讯录详解
一、通讯录框架1、ContactsUI.framework 框架。 拥有 AddressBookUI.framework 框架的所有功能,使用起来更加的面向对象。(iOS 9 之前的使用的)2、Contacts.framework 框架。 拥有 AddressBook.framework 框架的所有功能,不再是 C 语言的 API,使用起来非常简单。((iOS 9 之前的使用的))二、CNContactUI一、CNContactPickerViewContro...原创 2020-10-23 17:21:12 · 1662 阅读 · 0 评论 -
IDFV - Identifier For Vendor(应用开发商标识符)、IDFA - Identifier For Advertising(广告标识符)
一、IDFV这里的Vendor就是应用开发商,通过CFBundleIdentifier(DNS反转格式)的前两部分生成。例如:com.cjh.one和com.cjh.two得到的IDFV是一样的。如果用户将属于此Vendor的所有应用卸载,则IDFV的值会被重置,即使再重装此Vendor的应用,IDFV的值也和之前不同。适用于对内:例如分析用户在应用内的行为等。NSString * IDFV = [[[UIDevice currentDevice] identifierForVendor] U.原创 2020-10-19 15:20:22 · 2622 阅读 · 0 评论 -
iOS 代码上传至CocoaPods管理
1、创建git仓库选择开源协议选择MIT License,后面pods配置文件会用到。2、将代码上传至 github 并创建分支3、创建、 .podspec命令:pod spec create<项目名称>//例pod spec createjyGGed编辑podspec文件#OC版本 与Swift版本有差别Pod::Spec.new do |spec| spec.name = "JyGGed" #项目名称:导入时需要 sp..原创 2020-09-03 18:37:11 · 396 阅读 · 0 评论 -
iOS -Base64字符与图片之间的转换
Swift版本1、图片转 Base64字符串//图片转 base 64 guard let image = UIImage(named: "图片名称") else {return} //jpeg格式 compressionQuality: 压缩质量 guard let imageData = image.jpegData(compressionQuality: 1) else { return }//png格式 guard let imag原创 2020-08-26 17:03:16 · 5834 阅读 · 0 评论 -
iOS——通用链接(Universal Link)通过传统HTTPS链接来启动APP的功能
一、Universal Link(通用链接) 简介Universal Link(通用链接)是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和APP。当你的应用支持Universal Link(通用链接),当用户点击一个链接是可以跳转到你的网站并获得无缝重定向到对应的APP,且不需要通过Safari浏览器。如果你的应用不支持的话,则会在Safari中打开该链接。Universal Link(通用链接):看起来就是一条普通的https链接,当原创 2020-07-27 17:48:31 · 4410 阅读 · 0 评论 -
iOS-Tagged Pointer技术
苹果在WWDC2013对于Tagged Pointer特点的介绍:1、Tagged Pointer专门用来存储小的对象,例如NSNumber、NSDate、NSString2、Tagged Pointer指针的值不再是地址了,而是真正的值。所以,实际上它不再是一个对象了,它只是一个披着对象皮的普通变量而已。所以,它的内存并不存储在堆中,也不需要malloc和free。3、在内存读取上有着3倍的效率,创建时比以前快106倍。由此可见,苹果引入Tagged Pointer,不但减少了64位机器下原创 2020-07-22 14:54:08 · 402 阅读 · 0 评论 -
iOS——atomic和nonatomic区别及内部实现
iOS开发中使用@property声明属性时,经常用到atomic与nonatomic两个关键字,atomic与nonatomicd的主要区别就是系统自动生成的getter/setter方法不一样1、atomic用于保证属性setter、getter的原子性操作,相当于在getter和setter内部加了线程同步的锁,它并不能保证使用属性的过程是线程安全的,参考源码:objc4的objc-accessors.mm自旋锁...原创 2020-07-20 17:00:49 · 456 阅读 · 0 评论 -
iOS 关于定时器NSTimer
默认就会执行 ,是在 NSDefaultRunLoopMode 模式下运行的 。如果滑动会切换 UITrackingRunLoopMode 定时器失效。 [NSTimer scheduledTimerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) { NSLog(@"currentMode == %@",[NSRunLoop currentRunLoop].currentMode); }];.原创 2020-07-02 11:17:33 · 298 阅读 · 0 评论 -
iOS 13 Tabbar 选中push返回文字渲染返回蓝色 和去除上面黑线
一、设置文字的颜色如果在iOS13中使用以下代码设置Tabbar文字渲染在点击其他item切换或则push返回的时候是会失效的,字体颜色是会返回系统默认的蓝色 UITabBarItem *item = [UITabBarItem appearance]; [item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal]; [item setTitleTextAttributes:selectedA.原创 2020-06-01 14:22:26 · 790 阅读 · 0 评论 -
Bugly iOS 符号表配置
Bugly iOS 符号表配置官方网站:符号表官方文档原创 2020-05-08 20:46:47 · 991 阅读 · 0 评论 -
CocoaPods 相关命令 (整理中)
1、查看CocoaPods安装地址(例如:/usr/local/bin/pod)which pod2、查看CocoaPods版本(例如:1.9.1)pod --version3、查看gem源(例如:https://gems.ruby-china.com/)gem sources -l一、PodfilePodfile是一个用来描述项目中Target的依赖的文件一个简单的Podfile文件target 'MyApp' do use_frameworks!..原创 2020-04-29 20:23:41 · 1699 阅读 · 0 评论 -
Sign in with Apple (通过Apple 登录)
在 WWDC 2019 上,苹果推出了自家的 Sign in with Apple 功能,这很 Apple。可能苹果看到第三方登录百家争鸣,琢磨着自己也搞了个,这对很多第三方登录来说可能是个威胁。使用 Sign in with Apple 会更加方便、快捷、安全,苹果不会追踪用户在应用中的行为。所以,对于用户来说使用 Sign in with Apple 会更加安全。另外,Sign in ...原创 2019-09-30 15:53:57 · 27489 阅读 · 0 评论 -
Masonry 等间隔或等宽高排列多个控件
masonry 目前提供了相应的接口,直接使用即可1、固定宽高不固定间隔 /* MASAxisType :横排还是坚排 withFixedItemLength : 控件的宽或高 leadSpacing: 第一个控件与边缘的间隔 tailSpacing : 最后一个控件与边缘的间隔 */ mas_distributeViews...原创 2020-01-03 21:35:21 · 2413 阅读 · 0 评论 -
UISearchBar和UISearchDisplayController
一:添加searchBar的两种方式:////////////添加搜索栏方式一:直接画一个,画不好的话会覆盖别的东西///// self.tableView.backgroundView = [[UIView alloc] init]; [self.tableView setBackgroundColor:[UIColor clearColor]]转载 2014-05-03 15:03:17 · 693 阅读 · 0 评论 -
应用程序本地化
一、简介 * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lproj作为拓展名 * 当本地化的应用程序需要载入某一资源时,如图像、属性列表、nib文件,应用程序会检查用户的语言和地区,并查找相匹配的本地化文件夹。如果找到了相应的文件夹转载 2014-04-18 21:41:43 · 516 阅读 · 0 评论 -
iOS图片拉伸技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60现在我们把它用作为按钮背景,按钮尺寸是150x50转载 2014-04-18 21:50:13 · 497 阅读 · 0 评论 -
详细解读 iOS应用程序
UIApplication *application=[UIApplicationsharedApplication]; //设置应用程序图标上的数字。 [application setApplicationIconBadgeNumber:5]; //显示连网状态的指示。一般有网络时,会自动显示。 [application setNetw原创 2014-04-06 21:04:35 · 738 阅读 · 0 评论 -
iOS---沙盒
一、应用程序拥有自己的Libray、Documents 和tmp文件夹。1、应用程序包(Bundle)包含了所有的资源文件和可执行文件2、Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录Library(来波瑞)图书管,文库3、Library/Caches:保存应用运行时生成的需要持久化的数据原创 2014-04-05 16:00:33 · 687 阅读 · 0 评论 -
ios---NSKeyedArchiver
.h#import @interface Person :NSObjectNSCoding>@property(nonatomic,retain)NSString *name;@property(nonatomic)NSInteger age;@property(nonatomic,retain)NSString *PhoneNo原创 2014-04-06 22:03:13 · 575 阅读 · 0 评论 -
iOS----手势操作
#import "ViewController.h"#define KImageInitFram CGRectMake(10,130,300,196)@interfaceViewController ()@property(nonatomic,strong)UIImageView *imageView;@end/* 手势使用的步骤原创 2014-06-03 15:14:56 · 707 阅读 · 0 评论 -
iOS开发——加载、滑动翻阅大量图片解决方案详
今天分享一下私人相册中,读取加载、滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制。我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几秒),都发生了什么。 常规思路流程:点击任意小图后,1.首先制作scrollview框架:大小2个scrollview,小的用于手势缩放单一图片,大的横向依次加载全部照片2.原创 2014-05-21 16:01:24 · 672 阅读 · 0 评论 -
iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
简介iOS有三种多线程编程的技术,分别是:(一)NSThread (二)Cocoa NSOperation(三)GCD(全称:Grand Central Dispatch) 这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。 三种方式的优缺点介绍:1)NSThread:优点:NSThread 比其他两个轻量级转载 2014-05-25 21:10:47 · 735 阅读 · 0 评论 -
iOS 交互式动画
在2007年,乔布斯在第一次介绍 iPhone 的时候,iPhone 的触摸屏交互简直就像是一种魔法。最好的例子就是在他第一次滑动 TableView 的展示上。你可以感受到当时观众的反应是多么惊讶,但是对于现在的我们来说早已习以为常。在展示的后面一部分,他特别指出当他给别人看了这个滑动例子,别人说的一句话: “当这个界面滑动的时候我就已经被征服了”。 是什么样的滑动能让人有‘转载 2014-05-25 21:11:56 · 562 阅读 · 0 评论 -
iOS---CGAffineTransform
@interfaceViewController ()@property(nonatomic,strong)UIView *test;@end@implementation ViewController- (void)viewDidLoad{ [superviewDidLoad];_test=[[UIVi原创 2014-05-28 15:40:39 · 608 阅读 · 0 评论 -
iOS 简单总结:description方法/NSLog函数
1.description方法是NSObject自带的方法,包括类方法和对象方法+ (NSString *)description; // 默认返回 类名- (NSString *)description; // 默认返回 2.默认情况下利用NSLog和%@输出对象的时返回的就是类名和内存地址3.修改NSLog和%@的默认输出:重写类对象或者实例对象的description方原创 2014-06-13 18:16:41 · 661 阅读 · 0 评论 -
iOS开发- UICollectionView详解+实例
UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API,用于展示集合视图,布局更加灵活,可实现多列布局,用法类似于UITableView 和 UITableViewController 类。使用UICollectionView 必须实现UICollectionViewDataSource,UICollectionViewDe翻译 2014-07-15 19:22:08 · 613 阅读 · 0 评论 -
iOS数据持久化
iOS数据持久化原创 2014-12-26 10:52:48 · 583 阅读 · 0 评论 -
SSZipArchive使用详解
SSZipArchive功能:解压zip文件解压密码保护的zip文件创建zip文件追加到zip文件压缩文件使用一个名字来压缩NSData使用前:把SSZipArchive文件添加到项目中在target中添加libz.dylib使用方法:[objc] view plaincopy// 解压 NSString *zipPath = @"被解压的文件转载 2015-01-16 20:52:39 · 1021 阅读 · 0 评论 -
iOS 中图片裁切 生成新的图片
- (void)viewDidLoad{ [super viewDidLoad]; // 加载被裁切的图片 UIImage *iconImage=[UIImage imageNamed:@"2398757A-66FC-4154-8FB2-77502C483FE8"]; //开启上下文 CGFloat clickW=ico原创 2014-12-30 12:14:38 · 1132 阅读 · 0 评论 -
iOS中截取屏幕的图片
// 点击按钮截图- (IBAction)click:(id)sender{ // 开启上下文 UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0); //将控制器view 的layer渲染到上下文 [self.view.layer rend原创 2014-12-30 15:43:48 · 571 阅读 · 0 评论 -
iOS中在图片中添加水印效果
- (void)viewDidLoad{ [super viewDidLoad]; //背景图片 UIImage *bgImage=[UIImage imageNamed:@"QQ20140413-4"]; /** * 创建一个基于位图的上下文 size 新图片的尺寸 opaque:YES :不透原创 2014-12-30 11:19:43 · 691 阅读 · 0 评论