![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios学习笔记
文章平均质量分 58
wjx121626
这个作者很懒,什么都没留下…
展开
-
对多线程的深入理解
一、进程和线程1.什么是进程 进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程 2.什么是线程1个进程要想执行任务,必须得有线程(每1个进程至转载 2016-02-19 21:49:13 · 413 阅读 · 1 评论 -
iOS 之textview 的问题汇总(显示边框的问题,文字居中,placeHolder)
由于iOS中的UITextField不支持文本换行,所以在有换行需求时,我们只好用UITextView。以下是在使用UITextView时很容易遇到的一些问题。问题一:UITextView显示边框UITextView默认是没有边框颜色的,没有直接的属性来设置边框颜色。可以使用layer属性来解决,代码如下:[objc] view plaincopy//设转载 2015-10-26 09:52:52 · 2013 阅读 · 0 评论 -
加载自定义xib UIView的方法和加载纯代码 UIView代码的区别
1.使用加载xib 时候+ (instancetype)phoneCounselSelecteProductView{ return [[[NSBundlemainBundle] loadNibNamed:NSStringFromClass([selfclass]) owner:niloptions:nil]firstObject];}//ni原创 2015-11-09 10:49:47 · 504 阅读 · 0 评论 -
关于textview的限制文本字数的问题会汇总
1.首先,我们来看看最初的设计。//限制字符长度-(BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ if (range.location>= 200) { return NO;原创 2015-10-09 16:40:09 · 310 阅读 · 0 评论 -
alert view与actionsheet的区别
iOS程序中的Action Sheet就像Windows中的 “确定-取消”对话框一样,用于强制用户进行选择。当用户将要进行的操作具有一定危险时,常常使用Action Sheet对用户进行危险提示,这样,用户有机会进行取消操作。 Alert相当于Windows中的Messagebox,跟Action Sheet也是类似的。不同的是,Alert可以只有一个选择项,而Action Sh转载 2015-10-10 10:45:36 · 385 阅读 · 0 评论 -
UIalertController
iOS 8的新特性之一就是让接口更有适应性、更灵活,因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果(比如说旋转)中发挥了重要的作用,它有效地节省了程序员们的工作量(天地良心啊)。还有,某些旧的UIKit控件也同样发生了许多变化,比如说Alert Views、Action Sheets、Po转载 2015-10-10 11:19:19 · 318 阅读 · 0 评论 -
在使用autolayout设置约束时注意事项
对每个控件或者视图设置约束时,一般需要设置四个约束:约束一共有上下左右,水平居中,竖直居中(一般只选取两个)。自身约束:长与宽也需要设置。因为ios8会隐含自身内容约束,而iOS7不回如此。所以也需要设置长与宽的约束。原创 2015-10-08 10:37:09 · 342 阅读 · 0 评论 -
iOS中关于属性@property和@synthesize的问题:
1.之前一直以为属性@property是不需要实例化的。所以没有实例化这个概念了。在项目中,model里的一些属性也是直接调用一些框架的。所以也不需要在代码里实例化。再一般而言,xib中的一些View,button也是不需要用代码去实例化的。和@property对应的是@synthesize方法。Xcode编译器会自动添加@synthesize xx=_xx;这样子的代码。@synthes原创 2015-09-30 15:47:59 · 544 阅读 · 0 评论 -
数据持久化之属性列表
1.属性列表目的:属性列表技术是将对象(类)转换为plist;步骤:1.1 获取放置在沙箱documents 目录下面的文件的完整路径。NSString * path = [self applicationDocumentsDirectoryFile];沙箱1.2 创建array 数组NSMutableArray * array = [[NSMutableArray原创 2015-10-21 18:46:11 · 291 阅读 · 0 评论 -
xcode 之 属性列表
为什么要分离数据把静态数据转换到外部是个很好的做法。但是,为什么呢?把表中的数据转换到外部源的优点是什么?让我们问你,在我们的简单的表格应用程序中添加50个配方。也许,你会回到你的代码,并初始化所有新的食谱:1 2 3 4 5 6 7 8 // Initialize table data table转载 2015-10-26 09:44:16 · 1108 阅读 · 0 评论 -
ios自定义字符 NSMutableAttributedString
//在字符串中加上删除线- (void)setdeleteLine{ NSString * string = @"价格 ¥"; NSString * LabelString ; NSInteger i; LabelString = [string stringByAppendingString:self.discountMoney];原创 2015-11-09 09:39:03 · 378 阅读 · 0 评论 -
适配ios6,ios7等注意问题
1.适配ios7问题时,首先是约束冲突,当设置两个相同属性的约束,不同值时,再依据不同的情况进行分别处理,如某个constraint1 = 200,constraint2 = 300。最开始两个约束是没有冲突的,在ios8中可以通过设置active属性来屏蔽一个约束,这样就不会冲突。但是在ios7中这样设置并不能避免冲突。2.在ios8中,但subview变动时,会调用原创 2015-09-24 16:09:23 · 301 阅读 · 0 评论 -
animateWithDuration
1.frame, bounds ,center 三者之间的关系 frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统) bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统) center:该view的中心点在父view坐标系统中的位置和大小。(参照电是,父亲的坐标系统) 搞iOS开原创 2015-11-16 10:26:48 · 451 阅读 · 0 评论 -
typedef block
Objective-C:利用typedef为Block进行重命名Posted on 09/20/2013 by admin我们可以使用typedef为block进行一次重命名,方法跟为函数指针进行重命名是一样的:typedef int (^Sum) (int, int);这样我们就利用typedef定原创 2015-11-05 20:59:50 · 513 阅读 · 0 评论 -
技术专题collectionView
1.集合视图由四个部分组成:1.1.单元格1.2.节,也就是视图的一行1.3.装饰视图,节头和脚1.4.补充视图,即背景视图2.集合视图的数据源协议和委托协议:UICollectionViewDataSource:协议方法:2.1 collection view:numberOfItemsInSection:提供某个节中的列数目,返回的是NSInteger:原创 2015-10-14 11:40:12 · 420 阅读 · 0 评论 -
通知中心NSnotificationCenter
1.通知中心NSNotificationCenter是单例模式,所以可以这样[NSNotificationCenter defaultCenter];2.注册通知addObserver:selector:name:object:3.可以想象把通知中心当做是机器人,首先按上面的方式去注册通知,然后再去postNotificationName:发送通知。最后由机器人来广播通知。4.原创 2015-10-13 14:26:29 · 381 阅读 · 0 评论 -
xcode 之对象归档
前言:ios每个应用程序都有自己的3个目录(Document,Library,tmp),互相之间不能访问。Documents存放应用程序的数据。Library目录下面还有Preferences和Caches目录,Preferences目录存放应用程序的使用偏好,Caches目录与Documents很相 似可以存放应用程序的数据。tmp目录供应用程序存储临时文件。对象存档原创 2015-10-27 18:29:58 · 706 阅读 · 0 评论 -
数据持久化之SQLite
SQLite 是无数据类型的数据库,意思是说,表中的数据字段可以不用指定类型。当然,添加了字段的类型会更容易理解。SQLite 支持的常见数据类型有以下几种:INTEGER,REAL,TEXT,BLOB,NULL.这五种。常用的SQLite3函数(识记)1.sqlite3_open:打开数据库:sqlite3_open 有两个参数,一个是沙箱地址cpath,一个原创 2015-10-28 14:24:07 · 907 阅读 · 0 评论 -
iOS 之@()
@():@相当与NSString alloc (copy)的缩写。可以传入一个字符对象(地址)。原创 2015-09-25 10:15:58 · 757 阅读 · 0 评论 -
scrollview 的各类代理方法汇总
Tasks Creating Alert Views – initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles: Setting Properties delegate property title property message转载 2015-09-24 14:30:17 · 296 阅读 · 0 评论 -
像素,分辨率,以及点,px ,pt ,PPI ,DPI
1.什么是像素像素就是构成图像的最小的点。100x100像素则表示图与框上都有100个点。2.分辨率 :像素/尺寸如何理解分辨率呢?就是点的一个密集或不密集的程度。例如在实际应用当中,一个图片的属性为像素58*58;分辨率为72;另一个图片的属性为像素58*58;分辨率为144;因为像素相同,而分辨率不同,则意味着两个图片的尺寸也不同。当把144分辨率改为72的时候原创 2015-10-21 17:02:18 · 1220 阅读 · 0 评论 -
技术专题tableView
tableView在开发中扮演很重要的角色,我们应该了解table View的各种样式以胜任开发工作。1.tableview 的组成结构表头 单元格 节头 单元格 节尾 表尾对于表头和表尾应用的不多,表头如刷新,见代码http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=210281204&idx=1&sn=1ed54cd04原创 2015-10-15 15:58:30 · 343 阅读 · 0 评论 -
masonry的autolayout(二)
Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。我们先来看一段官方的sample code来认识一下Masonry123[view1 mas_makeConstraints:^(MASConstraintMak转载 2015-09-29 15:22:36 · 717 阅读 · 0 评论 -
自定义单元格
自定义UITableViewCell(registerNib: 与 registerClass: 的区别) 自定义UITableViewCell大致有两类方法:使用nib 1、xib中指定cell的Class为自定义cell类型(注意不是设置File's Owner的class) 2、调用 tableView 的 registerNib转载 2015-08-17 16:31:09 · 301 阅读 · 0 评论 -
ios之dispatch_async
GCD的先进先出队列FIFO,称为dispatch queue;dispatch queue 分为三种类型:serial,又称 private dispatch queues,同时只执行一个任务。concurrent ,又称为global dispatch queue,可以并发地执行多个任务,但执行完成的顺序是随机的。main dispatch queue,是在应用程序主线程上执行原创 2015-08-31 14:20:43 · 456 阅读 · 0 评论 -
提高Interface Builder高效工作的8个技巧
先来看看目录:介绍使view的Size与view中的Content相适应 按住option键—观察所选中view与另外view边缘之间的距离Editor -> Embed In View, Unembed:在不影响subview的位置时给view自由的添加padding对不在最前端的view进行移动IBOutletCollection排序使用自定义属性M转载 2015-09-02 15:15:39 · 265 阅读 · 0 评论 -
iOS之Block
1.BlockBlock 一般又block pointer 和 block实体组成。int (^ square) (int);//block pointer;声明block,square = ^(int a) { return a*a;}//block 实体;2.在objective C 中声明方法:-(void) objcMethod :(int (^)(int)) squa原创 2015-08-31 09:54:42 · 300 阅读 · 0 评论 -
单例模式
单例模式+(instantClass *) sharedClient {static instantClass * _shredClint = nil;static dispatch_once_t once;dispatch_once (&once,^{ _sharedClient = [[instantClass alloc] init];});return _share原创 2015-08-28 17:43:07 · 256 阅读 · 0 评论 -
协议(protocol)委托代理
1.protocol委托是一种设计模式,但是委托常常与协议联系在一起如:@protocol PhilosopherDelegate @ required -(void) review;@optional@end我们称之为委托协议2.委托和代理是一个概念。现在我们来看看委托代理模式本身。哲学家实体类 Philosopher要将一些事情分配给他的徒弟(view原创 2015-08-28 10:55:14 · 295 阅读 · 0 评论 -
instancetype和id的区别
1.instancetype 代替了强制转换2.instancetype 不能作为参数3.id 返回未知类型4.类方法alloc ,new 等,以及 autorelease ,init, retain ,self 实例方法都会返回方法所在类型的对象,这些方法称为是关联返回类型的方法。请看下面的例子:[objc] view plaincopy@interface NSObject原创 2015-08-27 16:47:31 · 227 阅读 · 0 评论 -
xib 加载另一个 xib的各个场景
1.自定义单元格的调用方法A.在 data source方法中调用如下方法,即可生成单元格 FreeTelFeedbackCell *cell = [FreeTelFeedbackCellfreeTelFeedbackCell];在 FreeTelFeedbackCell.h 类中声明如下方法:+(instancetype) freeTelFeedba原创 2015-08-27 16:10:37 · 459 阅读 · 0 评论 -
iOS开发常用快捷键
Xcode:Command+Shift+N 快速创建projectCommand+N 快速创建文件Command + Alt + N = 快速创建组(文件夹) Command + 0, hide/show navigationBarCommand + alt + 0, hide/show utilitiesBarCommand + shi转载 2015-08-18 10:23:40 · 305 阅读 · 0 评论 -
iOS之 coredata
1.介绍coredata是一种ORM(对象关系映射)技术。其中有两个关键的模型是关系数据模型和对象模型。2.coreData 堆栈在xcode项目上添加coredata 时,会自动在appdelegate上生成三个成员属性以及两个方法。分别是NSManagedObjectModel 的属性是被管理对象模型类,而NSPersistentStoreCoordinator 是持久原创 2015-09-01 14:30:48 · 282 阅读 · 0 评论 -
ios 本地存储之NSUserDefaults
1.设置参数[[NSUserDefaults standardUserDefaults] setObject:@“haveShowed" forKey:@"FreeTelHaveShowedGuideView"];[NSUserDefaults standardUserDefaults] synchronize];2.获取参数[[NSUserDefaults standardUse原创 2015-09-09 11:32:41 · 305 阅读 · 0 评论 -
第三方类库masonry(自动布局)的使用
环境信息:Mac OS X 10.10.3Xcode 6.3iOS 8.3正文:前期准备:1. 下载Masonry并导入到工程中;2. 将Masonry.h导入当前控制器。案例一:要求:无论在什么尺寸的设备上(包括横竖屏切换),红色view都居中显示。案例一实现:#import "ViewControll转载 2015-09-29 14:51:44 · 467 阅读 · 0 评论 -
dispatch_async 与dispatch_sync的区别
**同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)*** 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。* 而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,转载 2015-09-29 10:43:03 · 1855 阅读 · 0 评论 -
iOS之循环引用
ARC 下的循环引用类似于日本的 B 级恐怖片。当你刚成为苹果开发者,你或许不会关心他们的存在。直到某天你的一个 app 因内存泄露而闪退,你才突然意识到他们的存在,并且发现循环引用像幽灵一样存在于代码的各个角落。年复一年,你开始学会如何处理循环引用,检测和避免它们,但是这部片子的恐怖结局还是在那里,随时可能出现。ARC 令许多开发者(包括我)感到失望的地方之一是苹果保留了用 ARC 来进转载 2015-09-29 10:10:34 · 471 阅读 · 0 评论 -
assign,retain,copy,weak,strong,readonly,nonatomic ,atomic 8个属性的特征
1.assign 是简单的值传递,没有retaincount.对于基础数据类型和C数据类型,id等非指针类型用这个。2.retain释放之前的对象(指针清空),再指定新的指针地址,同时 retainCount+1.-(void) setName:(NSString *) newName { if(name!=newName) {[name release]; /指针清空原创 2015-09-06 11:14:55 · 286 阅读 · 0 评论 -
类别 category 以及类扩展
1.可以把类别看做是可扩展类的接口,而无需对类进行子类化。形式如下:@interface NSString (extension)-(void ) method;@end@implementation NSString (extension ) -(void ) method {...} @end2.类别不可以有新的实例变量,只包含方法。一个类可以有多个类别原创 2015-09-07 09:44:31 · 316 阅读 · 0 评论 -
NSString的copy 属性
NSString 与NSMutableString的区别:1.前者一旦创建地址不可变,则内容也不可变,后者地址不变,内容也可变。2.NSString可以用attain, 也可以用copy 属性。用attain 只是指针拷贝,并没有使用新的内存。而用copy 是内容拷贝,会产生新的内存空间。所以从效率上来说是attain更高。而从安全性上来看,NSMutableString 的基原创 2015-09-06 10:58:18 · 294 阅读 · 0 评论