![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OC基础知识
文章平均质量分 80
宋敬佩
说走就走的旅行
展开
-
ios开发中类方法与实例方法区别 以及self有什么不同
Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。注意点一:类方法1,类方法可以调用类方法。2,类方法不可以调用转载 2016-04-25 11:16:03 · 8034 阅读 · 0 评论 -
UIView的layoutSubviews和drawRect方法何时调用
setNeedsDisplay和setNeedsLayout两个方法都是异步的,setNeedsDisplay会自动调用drawRect,而setNeedsLayout会自动调用layoutSubviews。layoutSubviews方便数据计算,drawRect方便视图重绘。假设我们采用的是直接调用drawRect的机制,先考虑这样一个问题 ,,现在有两个UIVie转载 2016-05-23 13:35:38 · 1368 阅读 · 0 评论 -
数组谓词查询法 NSPredicate
NSPredicate:谓词字面翻译是这个意思,但是我觉得谓词这个词太难以理解了NSPredicate的具体用途应该还是过滤,类似于过滤条件之类的,相当于一个主语的谓语,所以说会是谓词这个名字。(我是这么理解的)NSPredicate的创建我们看到创建谓词使用类方法predicateWithFormat: (NSString*) format,format 里的转载 2016-07-13 13:52:03 · 883 阅读 · 0 评论 -
@synthesize和@dynamic区别
在声明property属性后,有2种实现选择@synthesize编译器期间,让编译器自动生成getter/setter方法。当有自定义的存或取方法时,自定义会屏蔽自动生成该方法 @dynamic告诉编译器,不自动生成getter/setter方法,避免编译期间产生警告然后由自己实现存取方法或存取方法在运行时动态创建绑定:主要使用在CoreData的实现NSMana转载 2016-06-16 11:23:51 · 253 阅读 · 0 评论 -
数组运算
NSArray *testArray = [NSArrayarrayWithObjects:@"2.0",@"2.3", @"3.0",@"4.0",@"10",nil]; NSNumber *sum1 = [testArrayvalueForKeyPath:@"@sum.floatValue"]; NSNumber *avg1 =原创 2016-07-14 09:26:55 · 230 阅读 · 0 评论 -
UITableViewCell 多余不显示问题
1、默认给置成空视图 tableView.tableFooterView = [UIViewnew];2、隐藏掉所有的下划线 (前提是 不用tableviewcell的下划线 自定义下划线) cell.selectionStyle =UITableViewCellSelectionStyleNone;原创 2016-07-28 17:11:32 · 704 阅读 · 0 评论 -
iOS字符串大小写转换
NSString *test = @"test"; NSString *testUp = [studentuppercaseString]; //大写 NSString *testUpFirst = [studentcapitalizedString]; //开头大写,其余小写原创 2016-12-06 14:23:55 · 14245 阅读 · 0 评论 -
ARC中delloc子类和父类的释放
//父类#import "ClassA.h"#import @interface ClassA : NSObject@end@implementation ClassA-(void)dealloc{ NSLog(@"dealloc ClassA");原创 2016-12-30 15:05:22 · 1169 阅读 · 0 评论 -
Objective-C NSValue详解
NSValue 对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers, structures, and object ids。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,例如那些需要其元素是对象的数据结构,如NSArray或者NSSet的原创 2017-07-26 17:11:03 · 593 阅读 · 0 评论 -
NSArray,NSDictionary,NSSet用法及区别
NSString * str1 =@"one"; NSString * str2 =@"two"; NSString * str3 =@"three"; -NSArray1、初始化、取值等基础操作 NSArray 是不可变数组,一旦创建完成就不能够对数组进行,添加,删除等操作 NSArra原创 2017-10-10 17:09:39 · 1428 阅读 · 0 评论 -
iOS 事件通知类型
事件通知UIControl类提供了一个标准机制,来进行事件登记和接收。这令你可以指定你的控件在发生特定事件时,通知代理类的一个方法。如UITextField要注册一个文本被改变 事件,可以使用addTarget方法:[textField addTarget:self action:@selector(textFieldDidChange:) forCon原创 2018-01-12 14:23:08 · 692 阅读 · 0 评论 -
ios开发中类方法和实例方法self区别
Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立于对象而执行,所以在其他的语言里面类方法有的时候被称为静态方法。注意点一:类方法1,类方法可以调用类方法。转载 2016-06-07 14:25:41 · 2834 阅读 · 0 评论 -
iOS开发之遍历Model类的属性并赋值
通过Runtime来给Model类属性赋值的好处是多多的,它便于代码的后期维护,并且提高了开发效率。当你拿到解析后的字典时你不用一个一个的通过key去把字典的值赋值给相应的Model类的属性,本篇博客中会给出如何去遍历Model中属性的值,并且给出字典的Key和Model的属性名不一样的情况我们该如何负值。接下来会在上一个博客代码基础上在Model基类中添加通过Runtime来遍历Mo转载 2016-06-07 13:52:18 · 4942 阅读 · 1 评论 -
UIButton setBackgroundImage与setImage区别
关于UIButton,既可以采用setBackgroundImage 来设置底部图片,同时也可以采用 setImage方法;两者还是有一定区别的;首先setBackgroundImage,image会随着button的大小而改变,图片自动会拉伸来适应button的大小,这个时候任然可以设置button的title,image不会挡住title;相反的的转载 2016-05-09 11:31:47 · 434 阅读 · 0 评论 -
ObjC的initialize和init
Objective-C很有趣的一个地方是,它非常非常像C。实际上,它就是C语言加上一些其他扩展和一个运行时间(runtime)。有了这个在每个Objective-C程序中都会起作用的附加运行时间,给了它一些动态的特性。C和C++没有运行时间,他们仅仅被编译为完全按照代码的顺序去执行,不多也不少。Objective-C中带有运行时间的好处是,它可以在你的程序运行的流程中进行参与。在O转载 2016-04-26 16:39:02 · 319 阅读 · 0 评论 -
IOS 成员变量,全局变量,局部变量定义,static与extern的区别
1,先说定义 1)成员变量定义:生存与该类的生命周期,变量存活周期跟你定义的该类实体对象一样;作用域是整个实体对象;可以在h文件中声明或者在m文件中@implementation上面添加的#import "S1ViewController.h"@interface S1ViewController ()//这里做声明@end@implementa转载 2016-04-27 15:13:50 · 2242 阅读 · 0 评论 -
IOS SCNetworkReachability和Reachability监测网络连接状态
iOS Framework : SystemConfiguration.framework 中,包含了SCNetworkReachability工具,可以帮助监测网络状况,所有定义包含在SCNetworkReachability.h中。 iOS Library的 sample code中,包含Reaqchability工程,里面的Reachability类是对SCNetwor转载 2016-04-29 10:31:53 · 9213 阅读 · 0 评论 -
iOS GCD多线程下载原理
一、任务和队列GCD中有2个核心概念(1)任务:执行什么操作(2)队列:用来存放任务 GCD的使用就2个步骤(1)定制任务(2)确定想做的事情 将任务添加到队列中,GCD会自动将队列中的任务取出,放到对应的线程中执行提示:任务的取出遵循队列的FIFO原则:先进先出,后进后出 二、执行任务1.GC转载 2016-05-25 10:11:46 · 625 阅读 · 0 评论 -
@synthesize和@dynamic区别
在声明property属性后,有2种实现选择@synthesize编译器期间,让编译器自动生成getter/setter方法。当有自定义的存或取方法时,自定义会屏蔽自动生成该方法 @dynamic告诉编译器,不自动生成getter/setter方法,避免编译期间产生警告然后由自己实现存取方法 或 存取方法在运行时动态创建绑定运行时动态创建绑定:主要使用在CoreDa原创 2016-04-19 15:54:20 · 259 阅读 · 0 评论 -
NSData全部API解释
NSData//base64编码中的一些设置选择typedef NS_OPTIONS(NSUInteger, NSDataBase64EncodingOptions) { NSDataBase64Encoding64CharacterLineLength = 1UL 0, NSDataBase64Encoding76Chara转载 2016-05-27 17:33:24 · 4194 阅读 · 0 评论 -
dispatch_semaphore信号量锁的
dispatch_semaphore信号量是GCD用来同步的一种方式。信号量通常用在 允许几个线程同时访问一个资源,通过信号量来控制访问的线程个数.与他相关的共有三个函数,分别是dispatch_semaphore_create,dispatch_semaphore_signal,dispatch_semaphore_wait。(1)dispatch_sem原创 2016-04-21 13:12:32 · 847 阅读 · 0 评论 -
iOS 8种加锁 效率比较
iOS开发中常用的锁有如下几种来比较一下遇到加锁的情况:1. @synchronized 关键字加锁2. NSLock 对象锁3. NSCondition4. NSConditionLock 条件锁5. NSRecursiveLock 递归锁6. pthread_mutex 互斥锁(C语言)7. dispatch_semaphore 信号量实现加锁原创 2016-04-21 10:42:00 · 5680 阅读 · 0 评论 -
iOS 当前应用所占内存和设备可用内存
// 获取当前设备可用内存及所占内存的头文件#import #import // 获取当前设备可用内存(单位:MB)- (double)availableMemory{ vm_statistics_data_t vmStats; mach_msg_type_number_t infoCount = H转载 2016-05-18 09:57:46 · 852 阅读 · 0 评论 -
iOS 文件属性
NSString *strPath =[[NSBundlemainBundle] pathForResource:@"test.plist"ofType:nil]; NSLog(@"path:%@", strPath); NSFileManager *fileManager = [NSFileManagerdefaultManager]; NS原创 2016-05-19 11:10:15 · 660 阅读 · 0 评论 -
iOS性能优化-内存优化(1)
1、iOS的内存管理机制Objective-C语言本身是支持垃圾回收机制的,但有平台局限性,仅限于Mac桌面系统开发中。而在iPhone和iPad等苹果移动终端设备中是不支持垃圾回收机制的。在移动设备开发中的内存管理是采用MRC(Manual Reference Counting)以及iOS5以后的ARC(Automatic Reference Counting),本质都是RC引用计数,...原创 2019-05-15 15:27:49 · 1134 阅读 · 0 评论