IOS
文章平均质量分 52
文件夹__iOS
这个作者很懒,什么都没留下…
展开
-
[Swift 开发] async/await异步编程封装Alamofire
Alamofire 是一个强大的网络请求库,可以轻松实现异步编程。本文将介绍如何使用 async/await 封装 Alamofire,以实现更加优雅的异步编程。总结一下,本文介绍了如何使用 async/await 封装 Alamofire,以实现更加优雅的异步网络请求。通过使用 async/await,可以使得网络请求变得更加简洁、优雅,让开发者更加轻松地实现异步编程。然后,我们封装一下逻辑层,模拟了3个网络请求,其中包括(无参get, 有参get,无参post )首先,我们用Alamofire的。原创 2023-02-24 17:11:18 · 1535 阅读 · 0 评论 -
[Swift 开发] 解决深copy浅copy (isKnownUniquelyReferenced(_:))
浅拷贝(copy):是对于一个对象的顶层拷贝,拷贝父对象,不会拷贝对象的内部的子对象深拷贝(deepcopy):是对于一个对象所有层次的拷贝(递归),完全拷贝了父对象及其子对象原创 2023-01-12 16:12:12 · 1155 阅读 · 0 评论 -
[SwiftUI 开发] Widget 小组件
小组件可以在主屏幕上实现内容展示和功能跳转。系统会向小组件获取时间线,根据当前时间对时间线上的数据进行展示。点击正在展示的视觉元素可以跳转到APP内,实现对应的功能。小组件是一个独立于 App 环境(即 App Extension),小组件的生命周期/存储空间/运行进程都和 App 不同。App Extension 可以将自定义功能和内容扩展到应用程序之外,并在用户与其他应用程序或系统交互时向用户提供。例如,您的应用可以在主屏幕上显示为小部件。原创 2023-01-05 16:12:24 · 5574 阅读 · 3 评论 -
[Swift 开发] 判断俩数组是否相等[并集、交集、差集]
两个数组要进行数据的比较,最好先转换成集合.let set1 = Set([1, 2, 3, 4]) //集合转数组let array = Array(Set1)//数组转集合let set2 = Set(array)初始化俩集合数组里的对象如果是值类型可以直接比较,如果是饮用类型要实现Hashable或CustomDebugStringConvertible协议struct perpon:Hashable, CustomDebugStringConvertible{ v原创 2020-12-14 19:55:00 · 4576 阅读 · 0 评论 -
[Swift 开发] 01背包问题
有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。滚动数组解法每件物品只能选一次,对于每种物品,我们有两种选择1.不选 -> dp[i][j]=dp[i-1][j]等于选前i-1个物品,空间为j情况下的最优解2.选 -> dp[i][j]=dp[i-1][j-v[i]]+w[i]如果选的话,前i-1个物品的体积最多为j-v[i]...原创 2020-08-08 17:10:52 · 305 阅读 · 0 评论 -
[Swift 开发] 五大常用算法--回溯算法
概念:回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。示例:八皇后算法//棋盘格子的范围let max_num = 8//数组作为棋盘var chessBoard = [[Int]]()/原创 2020-08-08 14:05:53 · 315 阅读 · 0 评论 -
[Swift 开发] &&和||运算符优先级
print(true || false && false)print((true || false) && false)print(true || (false && false))第一行:看不出谁的运算级谁高第二行:把||用括号括起来,增强或优先级第三行:把&&用括号括起来,增强与优先级根据第二行和第三行的输出结果判定&&和||运算符优先级打印结果:truefalsetrue可以看..原创 2020-08-07 16:21:52 · 662 阅读 · 0 评论 -
[Swift 开发] 读取和修改二进制某一位的数据
let initialBits: UInt8 = 0b00001111//修改成什么值let on_off = 0//修改第几位数据var location = 11.读取数据var result = initialBits >> location & 1// 转化为字符串var stringOfInvertedBits = String(result, radix: 2)print(stringOfInvertedBits)2.修改某一位的数据v.原创 2020-07-01 16:15:22 · 684 阅读 · 0 评论 -
[Swift 开发] Message from debugger: Terminated due to signal 9
Xcode Crash报错提示Message from debugger: Terminated due to signal 9原因:1 内存使用过高2 CPU使用过高当内存或者CPU使用过高时,系统会杀死进程原创 2020-04-12 09:18:01 · 7128 阅读 · 2 评论 -
IOS开发之----代码块的使用(一)
代码块本质上是和其他变量类似。不同的是,代码块存储的数据是一个函数体。使用代码块是,你可以像调用其他标准函数一样,传入参数数,并得到返回值。脱字符(^)是块的语法标记。按照我们熟悉的参数语法规约所定义的返回值以及块的主体(也就是可以执行的代码)。下图是如何把块变量赋值给一个变量的语法讲解:转载 2014-11-07 13:50:06 · 416 阅读 · 0 评论 -
IOS开发之----代码块的使用(二) [此博文包含图片]
iOS4引入了一个新特性,支持代码块的使用,这将从根本上改变你的编程方式。代码块是对C语言的一个扩展,因此在Objective-C中完全支持。如果你学过Ruby,Python或Lisp编程语言,那么你肯定知道代码块的强大之处。简单的说,你可以通过代码块封装一组代码语句并将其当作一个对象。代码块的使用是一种新的编码风格,可以让你运用自如的使用iOS4中新增API。 我们先来看两个在iOS4转载 2014-11-07 13:54:24 · 500 阅读 · 0 评论 -
iOS:NSString生成UIImage
-(UIImage *)imageFromText:(NSString *)text width:(float)width height:(float)height{ // set the font type and size UIFont *font = [UIFont systemFontOfSize:12.0]; CGSize size = CGSizeMake转载 2014-11-10 14:00:30 · 847 阅读 · 0 评论 -
IOS 多线程的编程总结经验
IOS 多线程 有三种主要方法(1)NSThread(2)NSOperation(3)GCD下面简单介绍这三个方法 1.NSThread 调用方法如下: 如函数需要输入参数,可从object传进去。 (1) [NSThread detachNewThreadSelector:@selector(threadInMainMethod:转载 2014-11-12 11:30:36 · 414 阅读 · 0 评论 -
反射根据变量的引用获取变量名
一、使用介绍 项目有的时候,会遇到一些特殊的处理,想要根据一个实例的引用,获取这个实例在代码中的名称。比如在处理View的坐标的时候,我们将UIView的坐标信息配置到plist文件中,我们可以设置一个key,再通过这个key来获取配置文件中的坐标等信息。有没有更简单的方法呢,或者我只想简单的用实例变量的变量名做为key。下面就介绍一种简单的,根据实例变量的引用获取实例变量名的办法。转载 2014-11-12 11:33:57 · 633 阅读 · 0 评论 -
IOS常用宏定义和讲解
系统宏汇集__FILE__ 当前文件所在目录 __DATE__ “替代文字"是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy"(例如:“Mar 19 2006")。如果日期小于10日,就在日的前面放一个空格符。NSLog ( @"_DATE_=%s" , __DATE__ ); __FUNCT转载 2014-11-13 09:53:27 · 428 阅读 · 0 评论 -
iOS8 NSXMLParser崩溃
I had a crash in NSXMLParser* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSXMLParser does not supportreentrant(凹角) parsing.'翻译 2014-11-03 16:26:39 · 1513 阅读 · 1 评论 -
iOS 线程之GCD的等待继续用法
之前的一篇关于线程的blog已经为大家介绍了GCD的简单使用方式及例子说明,今天由于项目中有特殊的应用GCD的实例,为大家介绍两种特殊需求的使用GCD的方法。目的:实现一件事情做完,再做下一件事情,确保函数的执行周期。 解决方案: 提供以下2种解决方案 1、创建barrier等待线程dispatch_async(dispatch_get_main_queue(), ^{转载 2014-11-13 10:23:34 · 3762 阅读 · 0 评论 -
ios 开发 NSArray 排序
针对NSString字符串的排序 方法一:转载 2014-11-13 10:30:27 · 568 阅读 · 0 评论 -
int,int32_t,int64_t
这些事跨平台编程导致的;一、数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小,只规定级别。作下比较:16位平台char 1个字节8位short 2个字节16位int 2个字节16位long 4个字节32位指针 2个字节32位平台转载 2014-11-14 14:39:44 · 6458 阅读 · 0 评论 -
iOS开发之远程推送
说到远程推送,应该用的也挺多的,今天就基于SEA的云推送服务,做一个推送的小demo,来了解一下iOS中的远程推送是怎么一回事儿,首先你得有苹果的开发者账号,好咸蛋也差不多了,主要内容走起。 一、准备阶段 1.在苹果开发官网上申请推送证书之前需要一个名字叫做certSigningRequest文件。该文件在MAC系统中生成,用于在Apple网站上申请推送证书文件,下面是利用钥匙串生转载 2014-11-17 10:14:08 · 521 阅读 · 0 评论 -
IOS NSPredicate 谓词
简述:Cocoa框架中的NSPredicate用于查询,原理和用法都类似于SQL中的where,作用相当于数据库的过滤取。最常用到的函数转载 2014-11-18 13:47:37 · 334 阅读 · 0 评论 -
iOS开发ASIHTTPRequest数据压缩
使用gzip来处理压缩的响应数据从0.9版本开始,ASIHTTPRequest会提示服务器它可以接收gzip压缩过的数据。许多web服务器可以在数据被发送之前压缩这些数据——这可以加快下载速度减少流量使用,但会让服务器的cpu(压缩数据)和客户端(解压数据)付出代价。总的来说,只有特定的几种数据会被压缩——许多二进制格式的文件像jpeg,gif,png,swf和pdf已经压缩过他们的数据了转载 2014-11-18 16:48:26 · 437 阅读 · 0 评论 -
NSMutableArray 排序
NSMutableArray* arr = [NSMutableArrayarrayWithObjects: [NSNumber numberWithInt:0], [NSNumber numberWithInt:3], [N转载 2014-10-30 11:35:53 · 461 阅读 · 0 评论 -
iOS 简单实现gif动画播放
本次实现gif动画播放是通过将动画文件读取到CGImageSourceRef,然后用NSTimer来播放的。代码如下:首先是头文件转载 2014-11-20 13:28:22 · 550 阅读 · 0 评论 -
Xcode调试攻略(5种方法)
1. Xcode内置GDB,可以使用GDB调试,调试命令: 1.1 po 命令:为 print object 的缩写,显示对象的文本描述 (lldb) po [$eax class]:输出异常对象的地址 (lldb) po [$eax name]:输出这个异常的名字 (lldb) po [$eax reason]:这个将会输出错误消息: (l转载 2014-11-20 13:33:34 · 403 阅读 · 0 评论 -
IOS中的结构体保存到数组与读取
typedef struct{ CGFloat r; CGFloat g; CGFloat b;}TestStruct; NSMutableArray *array = [NSMutableArray array];//保存 for (unsigned i = 0 ; i<5; i++) { TestStruct s; s.转载 2014-11-03 16:17:17 · 543 阅读 · 0 评论 -
iOS之Reachability和AFN判断网络连接状态
1.Reachability// 监听网络状态改变的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(networkStateChange) name:kReachabilityChangedNotification object:nil];// 创建Reachabilityself.c转载 2014-11-04 11:18:52 · 1656 阅读 · 0 评论 -
[iOS开发]IOS多线程之Block编程
1 什么是block iOS SDK 4.0开始,Apple引入了block这一特性。字面上说,block就是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++很像)还可以传递参数。同时block本身也可以被作为参数在方法和函数间传递,这就给予了block无限的可能。 对于闭包(block),有很多定义,其中闭包就是能够读取其转载 2014-11-28 16:57:58 · 421 阅读 · 0 评论 -
xcode 统计代码行数
find . -name "*.m" -or -name "*.h" -or -name "*.mm" | xargs wc -l原创 2014-11-24 16:39:56 · 384 阅读 · 0 评论 -
IOS 屏幕做一个最上层全屏幕的layer
[[UIApplicationsharedApplication].keyWindowaddSubview:YouLayerView];转载 2014-11-24 16:42:01 · 775 阅读 · 0 评论 -
IOS常用的宏
#ifndef MacroDefinition_h#define MacroDefinition_h//AppDelegate #define APPDELEGATE [(AppDelegate*)[UIApplication sharedApplication] delegate]//----------------------系统设备相关----------------------转载 2014-11-24 16:56:08 · 470 阅读 · 0 评论 -
FMDB多线程下"is currently in use" 或者 "database is locked" 问题
问题一: "is currently in use" 出现的场景是这样的,多线程操作数据库,每个线程都使用了FMDatabase实例(注意没有使用FMDatabaseQueue)。问题二:“database is locked"出现的场景是这样的,多线程操作数据库,每个线程各自创建了FMDatabaseQueue实例操作数据库,或者一个线程创建FMDatabaseQueue实例来操作,而另外的转载 2014-11-07 13:39:34 · 445 阅读 · 0 评论 -
iOS自带的字体
Font Family: American TypewriterFont: AmericanTypewriterFont: AmericanTypewriter-BoldFont Family: AppleGothicFont: AppleGothicFont Family: ArialFont: ArialMTFont: Arial-BoldMTFont:转载 2014-11-24 16:37:02 · 450 阅读 · 0 评论 -
[iOS开发]图标及屏幕尺寸
比例2x = @2x Retina 4 = 568h@2x Retina HD 4.7 = @2x Retina HD 5.5 = @3xiOS图标?12345iPhone 6Plus @3x 180 x 180 iPhone 6&& 5转载 2014-11-24 16:50:30 · 460 阅读 · 0 评论 -
[IOS 开发] Linq数组排序
Linq To Objective-C原文地址:https://github.com/ColinEberhardt/LinqToObjectiveCBringing a Linq-style fluent query API to Objective-C.This project contains a collection of NSArray and NSDictiona翻译 2015-01-07 15:38:05 · 1230 阅读 · 0 评论 -
XCode快捷键
1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD + SHIFT + S: 另存为CMD + W: 关闭窗口CMD + SHIFT + W: 关闭文件2. 编辑CMD + [: 左缩进CMD + ]: 右缩进CMD + CTRL + LEFT: 折叠CMD +转载 2015-01-07 16:23:32 · 404 阅读 · 0 评论 -
[iOS开发]用Block遍历NSDictionary
通过enumerateKeysAndObjectsUsingBlock:方法针对字典中的每个对象执行代码。可以用来定义代码块,然后应用到字典中的每个对象,同时又不必创建for-each循环或是获得数组版本的字典引用:[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"原创 2014-12-01 13:51:13 · 645 阅读 · 0 评论 -
[IOS 开发] NSString-计算文本的宽度和高度
在实际的代码应用中,我们常常需要计算,特定文本的宽度和高度。然后,根据长度和宽度值,动态的设置容器(如:UILabel)的长和宽来进行适应。假如:我们有如下一段文本。UIFont *theFont = [UIFontsystemFontOfSize:14];NSString *strText =@"这是一段很长的字符串,我们将根据要求的字体大小,来计算原创 2015-01-09 10:51:15 · 4728 阅读 · 0 评论 -
LINQ教程
在说LINQ之前必须先说说几个重要的C#语言特性一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程转载 2015-01-08 09:59:51 · 356 阅读 · 0 评论 -
[IOS 开发] 反射
首先我们要知道,这使用的是运行时的反射机制所以我们需要头文件 runtime.h+(BOOL)checkoutOneTabByName:(NSString*)oneName{ //openDB FMDatabase *db = [DatabaseOperation openDataBase]; NSArray *array = [DatabaseOper原创 2015-01-08 10:59:17 · 555 阅读 · 0 评论