自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 隐私政策支持

请您在继续使用我们的产品前务必认真仔细阅读并确认充分理解本隐私政策全部规则和要点, 一旦您选择使用,即视为您同意本隐私政策的全部内容,同意我们按其收集和使用您的相关信息。如您不同意相关协议或其中的任何条款的,您应停止使用我们的产品和服务。我们根据《中华人民共和国网络安全法》和《信息安全技术个人信息安全规范》(GB/T 35273-2017) 以及其它相关法律法规的要求,并严格遵循正当、合法、必要的原则, 出于您使用我们提供的服务和/或产品等过程中而收集和使用您的个人信息,包括但不限于电话号码等。

2023-04-24 08:18:20 63

原创 peki技术支持

如果你对PeKi 有任何疑问,你可以留言或者把问题发送到我们的email。我们会在第一时间回复你。

2023-04-23 09:26:30 62

原创 iOS 正则表达

public init(pattern: String, options: NSRegularExpression.Options = []) throws NSRegularExpression的实例化方法,需要把匹配规则以字符串的形式传进去。像任何语言一样,正则有自己的保留字符如下: [] () . ? + * & ^ \ / 如果你想通过正则匹配这些特殊字符,那么你需要通过backslash (反斜杠)去避开他。例如你想去搜索文本里面的.符号,那么你的pattern就需要传进去. 每一门语

2021-01-31 14:17:47 97

原创 iOS swift 倒圆角并绘制阴影

给View倒某几个角为圆角 //倒左右上边两个圆角 let bottomPaskPath = UIBezierPath.init(roundedRect: CGRect.init(x: 0, y: 0, width: KSCreenWidth - 30, height: 60), byRoundingCorners: UIRectCorner(rawValue: UIRec...

2018-03-10 18:02:05 614

原创 iOS button超出父视图时点击无法响应

iOS响应链传递机制:从后向前,即从父视图到子视图循环调用 下面这两个方法- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event- (UIView *)hitTest:(CGPoint)point withEv

2017-11-18 10:46:05 716

转载 NSUrlConnection 网络下载

//频繁调用每次带回来一部分数据,如果此处创建一个全局变量nsmutableData 则必然会导致nsmutableData越来越大,内存暴增 //解决办法: 每次获取到一部分数据后,就将这部分数据写入到沙盒,并释放掉 //NSFileHandle 可以实现对文件的读取 写入 更新 // stringByAppendingPathComponent 这个函数会自动创建文件层级 - (void

2017-07-12 18:09:27 145

原创 NSString Copy Strong

@interface ViewController ()<TTTAttributedLabelDelegate,UITableViewDataSource>@property (nonatomic, strong) FooterView *footerView; @property (nonatomic, strong) UITableView *tableView; @property (no

2017-05-08 22:05:16 201

原创 NSOperation封装操作

1.继承NSOperation 2.复写main 或者start 3.复写 finished executing 语义 4.复写 setter 方法 5.对外API设置finished= yes#import "MMPOperation.h" @interface MMPOperation () @property (assign, nonatomic,getter=isExecuting

2017-03-13 15:04:32 279

原创 OC 属性

@property会通知编译器在编译期间生成属性对应的实例变量和access method 父类的属性语义被子类改写之后,需要手动通知编译器实现access method 和生成对应的实例变量#import <Foundation/Foundation.h>@interface Person : NSObject @property (nonatomic, copy, readonly) NSS

2017-03-13 15:00:52 385

原创 NSOPeration NSOperationQueue

NSOperation是一个抽象类。实际开发中用它的两个子类:NSInvocationOperation NSBlockOperation//NSBlockOperation可以通过block异步执行任务,且block里面的代码是同步的 - (void)blockOperationTest{ NSBlockOperation *blockOperation = [NSBlockOperatio

2017-02-06 11:29:04 205

转载 NSTimer循环引用不释放问题

倒计时是电商APP中经常遇到的,倒计时的技术实现,Apple的Foundation框架提供了NSTimer类 倒计时的实现如下: HZTimer.h@protocol HZTimerDelegate <NSObject>- (void)timerHandleEventWithLeftSeconds:(NSInteger)seconds;@end @interface HZTimer : NSOb

2016-11-28 11:24:18 393

原创 iOS 多线程

iOS提供了NSThread NSOperation & NSOperationQueue GCD 来实现多线程编程。抽象程度由低到高,越抽象越简单- (void)viewDidLoad { [super viewDidLoad]; for (int i = 0; i < 100; i++) { NSLog(@"==========%@===========%d",[

2016-11-16 21:52:08 196

转载 copy mutableCopy

copy mutableCopy 区别 : 1.对于非容器类不可变对象,copy是复制指针浅拷贝,mutableCopy是深拷贝系统会为其开辟新的内存。对于非容器类可变对象,都是深拷贝,但是copy返回的对象是不可变的 2.对容器类对象,以上结论一样适用,但是注意的是,容器内的元素都是指针复制

2016-11-08 14:23:08 323

转载 runtime之@dynamic属性

@dynamic属性用于通知编辑器不要生成属性对应的实例变量和setter getter 方法,但是在编译时期调用对应的存取方法不会报错,再次验证了OC是一门动态语言#import <Foundation/Foundation.h>@interface AutoDictionary : NSObject @property (nonatomic, copy) NSString *string; @

2016-11-07 15:28:00 329

转载 runtime 运行时

了解oc 运行时可分为以下三块: 1.概念 IMP SEL MEthod 2.消息发送流程 3.消息转发流程概念篇:SEL:oc在编译时会根据方法名和参数序列生成唯一的方法标识就是SEL IMP: SEL 对应方法实现 MEthod:在 SEL 和 IMP之间建立映射消息发送流程://第一个参数消息接收者,第二个参数 SEL OBJC_EXPORT void objc_msgSend(vo

2016-11-03 10:49:02 146

转载 Python函数

在Python中定义一个函数要用def语句,依次写出函数名 括号 括号中的参数 冒号,然后在缩进款中编写函数体def my_abs(x): if x > 0: return x else: return -x d = my_abs(10) print d

2016-11-01 22:05:30 145

转载 runtime给现有类动态添加方法

创建person类.h#import <Foundation/Foundation.h>@interface Person : NSObject@end .m#import <Foundation/Foundation.h> #import "Person.h" #import <objc/message.h> @implementation Person +(BOOL)resolveInstanc

2016-10-31 17:12:09 198

转载 RunTime交换方法的实现

#import "UIImage+HZ.h" #import <objc/message.h> //利用runtime 交互方法 @implementation UIImage (HZ) //把类加载内存的时候之后调用一次 +(void)load{ Method imageNamedMethod = class_getClassMethod(self, @selector(imageName

2016-10-31 16:13:33 237

转载 runtime理论知识

概念: SEL IMP Method OC 在编译时会根据每一个方法的名字、参数序列生成一个唯一的整型标志,这个标识就是SEL,用来表示OC运行时方法的名字,定义如下: typedef struct objc_selector *SEL; ``` IMP 实际上一个函数指针,指向方法实现的首地址typedef id(*IMP)(id,SEL,…)“`

2016-10-31 16:10:52 162

转载 Runtime 初次总结

在接收者所属类的方法列表里找不到selector对应的方法实现时,进入消息转发流程+ (BOOL)resolveInstanceMethod:(SEL)sel // 动态的添加一个方法 class_addMethod([self class], @selector(testMethod), (IMP)newTestMethod, "v@:"); // 添加方法的类,未识别的选择器,添加新方法

2016-10-31 15:40:37 160

原创 OC类型常量的使用

objective 类型常量

2016-10-27 10:40:21 478

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除