![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios
文章平均质量分 63
大燕codeblog
脚踏实地
展开
-
objective -c之分类,协议。
一.分类(Category) 分类机制允许向一个类文件中添加新的方法声明,它不需要使用子类机制,并且在类实现的文件中的同一个名字下定义这些方法.#import "ClassName.h" @interface ClassName ( CategoryName ) // 方法声明 @end 二.协议(Protocol) 协议是多个类共享方法的列表,协议中列出的方法在本类中并没有相应的实现原创 2016-03-04 20:48:17 · 328 阅读 · 0 评论 -
iOS xcode 9 注释快捷键
单行注释:在方法的地方按 Command+/标注的功能,快捷键是Command + Option + / 需要在方法名的上面(空白)的地方按 Command + Option + / 才管用原创 2017-10-02 01:06:50 · 10734 阅读 · 0 评论 -
OC中的 __attribute__
概述GNU C 的一大特色就是attribute 机制。attribute 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。attribute 书写特征是:attribute 前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的attribute 参数。attribute 语法格式为原创 2017-10-17 23:05:45 · 429 阅读 · 0 评论 -
iOS把图片缓存到本地的几种方法
概述把图片缓存到本地,在很多场景都会用到,如果只是存储文件信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存储图片到沙盒就没那么方便了。这里简单介绍两种保存图片到沙盒的方法。一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 //获取沙盒路径, NSString *path_sandox = NSHomeDirectory();转载 2017-10-07 20:42:43 · 12092 阅读 · 1 评论 -
iOS开发中addSubview的参数放在一个"({})"代码块中
iOS开发中addSubview的参数放在一个”({})”代码块中例子1[self.view addSubview:({ UIView *view = [[UIView alloc]initWithFrame:(CGRect){100,200,200,100}]; view.backgroundColor = [UIColor redColor]; view;})];例子2s原创 2017-08-07 12:34:52 · 479 阅读 · 0 评论 -
UIScrollView的总结
概述UIScrollView可以展示比设备屏幕更大区域的内容,我们可以通过手指滑动来查看内容视图的每一部分内容,也可以通过手指捏合来对内容视图进行缩放操作,它是 TableView和 UITextView的父类。属性与方法 注: 本文中所说的”内容视图”在官方文档中称作”content view”,表示UIScrollView中可以用来展示内容的部分内容视图相关// 内容视图的大小,默认原创 2017-09-17 22:47:22 · 346 阅读 · 0 评论 -
oc的回调机制
开头缘由这两天面试(乐视)被问到了oc回调机制,只知道几个名词,例如block,代理,通知,当让讲一讲通知(NSNotificationCenter)的具体实现的时候瞬间懵逼了!面试结果可想而知,回来后自己又补了一下。什么叫回调?而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。oc中与回调有关的模式或者函数有哪些?代理(协议),respondsToSelecto原创 2016-08-06 02:04:45 · 4274 阅读 · 0 评论 -
@property属性关键字详解
@property的常用属性关键字有nonatomic、atomic、readonly、writeonly、readwrite、assign,copy、strong、weak、看着挺多的,但是经常用的也就几个notomic: 默认关键字,也就是说如果什么都不写,默认就是这个。表示该属性是线程同步的。一般用不到,会影响性能。nonatomic: 非线程同步,基本都是用这个。保证属性不会被其他线程修改r原创 2017-05-16 18:38:56 · 2094 阅读 · 0 评论 -
iOS 关于传值方式的那些事
iOS 关于传值方式的那些事 1.属性传值 -对方需要什么样类型的属性,就定义什么类型的,保持一致-从一个控制器传递到下一个控制器,不能回传-举例说明:如OneViewController,与SecondViewController,属性间进行传值,点击OneViewController ---View上按钮,跳转到SecondViewController,同时要传递一原创 2016-10-13 02:27:37 · 375 阅读 · 0 评论 -
iOS -Block
iOS Block简介Block是对象,它封装了一段代码,这段代码可以在任何时候执行。block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:block是inline的,并且它对局部变量是只读的。实体形式Block的实际行为和Function很像,Block实体形式如下:^(传入参数列){行为主体};Block实体开头是“^”,接着是由小括转载 2016-10-13 03:06:10 · 432 阅读 · 0 评论 -
initWithFrame;initWithCoder;awakeFromNib
这三个方法都与自定义控件有关,具体牵扯到什么时候调用,下面总结一下调用的注意事项。initwithFrame- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { //代码 } return self;}这个方法是在代码创建控件的时候使用,重原创 2016-07-29 11:03:44 · 441 阅读 · 0 评论 -
oc 内存管理 -堆栈操作
内存空间分为堆和栈 对象的内存空间放在堆里,(动态产生)不可能随便回收。 局部变量放在栈里,代码块运行完就回收了。 每一个oc对象都有一个引用计数器(4个字节),放在对象里。表示引用的次数。 引用计数器的操作 1.当使用alloc , new 或者 copy 创建一个对象时,新对象的引用计数器默认是1. 2. 当一个对象的引用计数器为0时,对象占用的内存就会被系统原创 2016-03-20 20:51:44 · 1133 阅读 · 0 评论 -
init方法的重构
其一* 一定要调回父类的init 方法: 初始化父类的声明的成员变量以及属性。self = [super init];如果对象初始化成功,才有必要进行接下来的初始化if(self != nil ){ code;}return self;父类中有init方法。原创 2016-04-04 13:16:31 · 381 阅读 · 0 评论 -
ios基础之initialze与load
load* 当程序启动时会加载一次项目中的所有类,类加载完毕后,会调用+load * 先加载父类的load .然后加载子类的load。initialize** 当第一次使用这个类的时候,就会调用一次+initialize。 同样先调用父类的initialize。原创 2016-04-04 12:27:02 · 792 阅读 · 0 评论 -
ios layout机制相关方法
(CGSize)sizeThatFits:(CGSize)size(void)sizeToFit ——————-(void)layoutSubviews(void)layoutIfNeeded(void)setNeedsLayout ——————–(void)setNeedsDisplay(void)drawRect layoutSubviews在以下情况下会被调用:1、init转载 2016-05-16 16:19:10 · 253 阅读 · 0 评论 -
ios 之控制器的loadview
loadview作用自定义控制器的view。什么时候调用第一次使用控制器的view注意在这个方法中如果没有自定义view,就不能获取控制器的View。例如 - (void)loadView{ self.view.backgroudColor =[UIcolor redColor]; //会出现死循环。不停的调用self的get方法。 } 一旦重写了这个原创 2016-04-15 14:30:16 · 415 阅读 · 0 评论 -
oc之id 总结思考
已经知道C语言输出是#include<stdio.h>int main(){ char *s = "love"; char *p; p = &s[0]; printf("%s",p);//p 只是一个地址。 return 0;}在看oc 基础教程发现,id类型是指针。 在输出的时候直接写了地址,因此联想到上面的情况。 下面是oc里id的例子。////原创 2016-03-11 18:21:16 · 493 阅读 · 0 评论 -
ios扩展
扩展定义分类的一种形式(没有名字的分类)扩展的意义为已经有的类添加属性,和方法。(属性是私有的,方法也是私有的,本类才能使用)扩展的新建与分类一样通过文件得到的扩展只是一个文件.h.(可以扩展属性和方法),选项中有个扩展。 这正是扩展的不一样,它只会创建一个头文件,我们在里面可以添加成员变量、属性、方法等;如果要实现,只需要在它要扩展的类 .m文件去实现即可。 其实可以理原创 2017-10-03 00:50:46 · 500 阅读 · 0 评论