iOS
SoundsGood
A clever person solves a problem. A wise person avoids it。
展开
-
iOS设置Launch Image 启动图片
前面的设置参照下面博客http://blog.sina.com.cn/s/blog_6c97abf10102voui.html如果启动不行 记得clear 一下工程如果要使启动页停留一段时间 只需要在 AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithO原创 2015-10-30 19:56:35 · 652 阅读 · 0 评论 -
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
当运行工程出现 错误代码:No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s) 时,按照上图设置选择那栏 设置为NO就 ok啦原创 2015-11-09 21:19:47 · 615 阅读 · 0 评论 -
CoreData(数据库升级 )版本迁移-iOS App升级安装
如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下:1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel2.设置当前版本 选择上级mydata.原创 2015-10-23 19:55:43 · 4946 阅读 · 0 评论 -
C 博客快捷键
快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做 Ctrl + Y原创 2015-10-23 19:58:36 · 423 阅读 · 0 评论 -
iOS#import与@class的区别
j#import与@class的区别1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用转载 2015-09-21 15:46:17 · 363 阅读 · 0 评论 -
controllers间怎么进行通信
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation; 2.通知中心Notification Center; 3.键值观察key value observing,KVO 因此,那为什么我们需原创 2015-07-31 10:33:01 · 459 阅读 · 0 评论 -
block简单入门
// int array[10] 类型是int[10] 函数名是array // 变量命名规则:1.只能由数字、字母、下划线组成,并且数字不能开头 // 2.不可以与系统保留字同名 // 3.不能使用重复的变量名 // int (*point)(int x, int y);原创 2015-09-09 16:09:55 · 457 阅读 · 0 评论 -
类目,延展的简单了解
1//类目跟原始类方法具有同等关系,类目的子类也可以继承他的方法 //Category(类目、类别、分类) 主要用来给没有源代码的类添加方法 //如果Category里面写了跟原始类重名的方法,如果这个方法是实例方法(-),则外面使用的是原始类的方法,如果这个方法是类方法(+),则外面使用的是Category里面的方法//延展,Extension作用是管理私有方原创 2015-09-09 16:57:40 · 349 阅读 · 0 评论 -
深拷贝,浅拷贝
1// //NSString不可变的字符串使用copy是浅拷贝// NSString *name1 = [[NSString alloc]initWithFormat:@"%@",@"gxm"];// NSLog(@"%lu",name1.retainCount);// NSString *name2 = [name1 copy];//原创 2015-09-09 20:04:26 · 340 阅读 · 0 评论 -
iOS内存警告
1#pragma mark收到内存警告,- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // 如果控制器执行了 viewDidLoad 方法(进行了加载过程),并且当前控制器控制的 view 没有显示在 window 上// 则对控制器控制的 view 进行释放原创 2015-09-10 10:26:35 · 412 阅读 · 0 评论 -
iOS懒加载
ss懒加载的好处:1> 不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强2> 每个属性的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合3>只有当真正需要资源时,再去加载,节省了内存资源。原创 2015-09-10 14:18:51 · 750 阅读 · 0 评论 -
ARC下的block的循环引用问题
第一种: __weak ViewController *MySelf = self;第二种: __weak typeof(self) MySelf = self;原创 2015-10-15 17:28:15 · 428 阅读 · 0 评论 -
单例的三种写法,static的理解
(一)在.h文件#pragma mark 创建单例的方法//类名(即 +(SharedData *))//id类型的话,外面使用的时候只知道是对象类型//instancetype可以动态识别是哪一种对象类型//开发者通常使用share 系统默认是default(即defaultData)//起名习惯:share + 类名+(instancetype)shareD原创 2015-10-08 23:11:44 · 1170 阅读 · 0 评论 -
iOS如何提高tableView的性能
a、重用cell 我们都知道申请内存是需要时间,特别是在一段时间内频繁的申请内存将会造成很大的开销,而且上tebleView中cell大部分情况下布局都是一样的,这个时候我们可以通过回收重用机制来提高性能。 b、避免content的重新布局 尽量避免在重用cell时候,对cell的重新布局,一般情况在在创建cell的时候就将cell布局好。 c、使用不透明的subView原创 2015-11-13 21:28:25 · 488 阅读 · 0 评论 -
iOS隐藏导航栏或返回按钮
一,隐藏导航栏隐藏导航栏1,self.navigationController.navigationBarHidden = YES;2,[self.navigationController setNavigationBarHidden:YES animated:YES];二,返回按钮1,以空替代 UIBarButtonItem *temporaryBarBut原创 2015-10-13 20:15:49 · 1248 阅读 · 0 评论 -
UIView与CALayer的理解
1//初始化一个CALayer--CALayer是含隐式动画的 _layer = [[CALayer alloc] init]; //设置CALayer的颜色 _layer.backgroundColor = [UIColor orangeColor].CGColor; _layer.frame = CGRectMake(0, 0, 100, 100);原创 2015-10-13 19:39:34 · 539 阅读 · 0 评论 -
iOS本地的缓存的方式
1、 NSKeyedArchiver(归档)采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。2、 NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSD原创 2015-09-28 14:42:21 · 803 阅读 · 0 评论 -
真机测试、远程推送步骤
真机测试步骤:1,创建开发者证书2,创建APP ID3,添加设备4,创建描述文件远程推送步骤:1,创建远程推送证书2,通过调用系统的方法,向苹果服务器申请deviceToken3,将deviceToken和远程推送证书发送给第三方服务器(信鸽、极光等),由第三方服务器将我们想要推送给用户的信息发送给苹果服务器4,由苹果服务器将需要推送的消息通过devic原创 2015-11-13 14:04:55 · 598 阅读 · 0 评论 -
从StoryBord取出控制器并跳转的问题总结
第一种: ActivityDetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"活动详情"];第二种ActivityDetailViewController *detailVC = [[UIStoryboard storyboardWithNam原创 2015-10-11 14:55:06 · 1261 阅读 · 0 评论 -
switch和if判断的个人理解
//以选择开关的实现方法为例-(void)segmentedAction:(UISegmentedControl *)sender{ //通过 sender.selectedSegmentIndex 判断选中的哪一个 segmented if (sender.selectedSegmentIndex == 0) { self.backgroundColo原创 2015-09-14 10:46:56 · 594 阅读 · 0 评论 -
理解strong与weak)强引用与弱引用转载自《http://blog.sina.com.cn/s/blog_7c8dc2d50101lc08.html》
__weak 和 __strong 会出现在声明中默认情况下,一个指针都会使用 __strong属性,表明这是一个强引用。这意味着,只要引用存在,对象就不能被销毁。这是一种所期望的行为:当所有(强)引用都去除时,对象才能被收集和释放。不过,有时我们却希望禁用这种行为:一些集合类不应该增加其元素的引用,因为这会引起对象无法释放。在这种情况下,我们需要使用弱引用(不用担心,内置的集转载 2015-09-14 15:28:01 · 844 阅读 · 0 评论 -
XML,JSON数据结构解析
解析:从事先规定好的格式中提取数据解析的前提:提前约定好格式、数据提供方按照格式提供数据、数据获取方则按照格式获取数据XML数据结构: 概念:Extensible Markup language (可扩展标记语言),主流数据格式之一,可以用来存储和传输数据。 功能:1,数据交换 2,内存管理 3,用做配置文件 语法:原创 2015-10-07 12:56:20 · 544 阅读 · 0 评论 -
iOS随机数
如果要随机一个[a, b]范围内的整数 arc4random() % (b - a + 1) + a;定义颜色的宏:#define color arc4random()%256/255.0原创 2015-10-16 13:35:54 · 427 阅读 · 0 评论 -
iOS是伪多任务?
iOS是伪多任务? Android系统原生就支持多任务,而iOS系统是从4开始的。它的多任务并不是传统意义上的多任务,不是任何应用进程都可以在后台自由运行。真正做到支持多任务的只有苹果Safari和Mail,很多苹果亲生的应用也都并不支持。 对于第三方应用,可以开放的后台运行接口只有音频播放(如QQ音乐)、地理位置检测(如谷歌地图)和网络电话(如Skype)等。原创 2015-10-16 13:37:50 · 1451 阅读 · 0 评论 -
iOS导航栏,标签视图的透明度处理
UINavigationController:导航控制器 UITabBarController:标签视图控制器 这两句话是对64,49两个高度做处理的方法 self.navigationController.navigationBar.translucent = NO; self.tabBarController.tabBar.transluc原创 2015-10-09 20:20:14 · 466 阅读 · 0 评论 -
ARC,MRC理解
1/* oc里面有三种 ARC MRC gc java里面有垃圾回收机制 1. 人工引用计数-MRC(MannulReference Counting) 2. 自动引用计数-ARC(AutomaticReference Counting) 在MRC的内存管理模式下,与对变量的管理相关的方法有:retain,release和autorelease。retain和r原创 2015-09-09 20:00:44 · 500 阅读 · 0 评论 -
初学者初始化方法 便利构造器
#pragma mark 初始化方法(在这里,我是初始化方法,通常情况下,把参数最全的初始化方法作为指定初始化方法)-(id)initWithName:(NSString *)name withAge:(NSString *)age withSex:(NSString *)sex{ self = [super init]; //父类初始化 子类self继承于父类super原创 2015-09-09 15:28:58 · 441 阅读 · 0 评论 -
字典集合
//一,字典--NSDictionary key键找到唯一的value 值 // 特点:1,只能存对象// 2,字典是无序的// 3,key 值不可以重复 (如果重复,保留前面的键值对)// 4, value 值 可以重复// 5, key 值 和 value 值原创 2015-09-09 15:52:16 · 363 阅读 · 0 评论 -
字符串,数组
/* // 字符串创建方法(不可变的字符串) //这是第一种创建方式(也是最简单的) NSString *name1 = @"xiaoming"; // NSString也是一个类 //第二种创建方式(对于NSString,这种方式不常见) NSString *name2 = [[NSString alloc]in原创 2015-09-09 15:44:33 · 373 阅读 · 0 评论 -
@property 属性理解
1@property (nonatomic,copy)NSString *name;@property (nonatomic,assign)NSInteger age;//不需要在dealloc中release/* 属性 下面这句话相当于做了三件事1,声明了一个实例变量_name2,实现了setter方法3,实现了getter方法property的属性有三类原创 2015-09-09 20:03:24 · 633 阅读 · 0 评论 -
宏定义三目运算符
//第一版本#define MAXValue(A,B) A > B ? A : B//第二版本#define MAXValue1(A,B) (A) > (B) ? (A) : (B)//第三个版本#define MAXValue2(A,B) ((A) > (B) ? (A) : (B))//第四个版本#define MAXValue4(A,B) ({int __a =原创 2015-09-09 23:10:49 · 6796 阅读 · 0 评论 -
程序运行时遵循的UIApplicationDelegate协议
UIApplicationDelegate 一张图可以便可清晰知道每个代理方法的意思原创 2015-10-07 13:20:08 · 428 阅读 · 0 评论 -
iOS Frame和bounds的区别
Frame和bounds的区别 1,bounds相对于自身来说的,它的x、y永远不会发生变化(0,0),但是 它的宽高改变之后,宽高就会发生改变 2,frame是相对于父视图来说的,如果x、y发生改变,那么它的位置就会发生改变原创 2015-09-14 15:52:17 · 649 阅读 · 0 评论 -
ios设置图片为圆形
//设置图片为圆形(图片必须为正方形,假如图片的长度为300,则设置时为300的一半125) self.pictureImage.layer.masksToBounds = YES; self.pictureImage.layer.cornerRadius = self.pictureImage.frame.size.width/2;原创 2015-09-14 16:00:17 · 572 阅读 · 0 评论 -
iOSARC下block,代理声明属性
1,block用copy的原因 声明block属性是在栈区 把block块从栈区拷贝到堆区,防止其他地方使用之后被释放掉2,代理用assign的原因 代理人的属性一定要用assign修饰,防止的是父类对象作为子类对象代理人的时候引起的循环引用,造成内存泄漏原创 2015-09-23 14:38:22 · 354 阅读 · 0 评论 -
iOS数据的持久化(沙盒)
什么是数据存储:数据的永久存储。为什么要做数据持久化:存储在内存中的数据,程序关闭,内存释放,数据丢失。这种数据时临时的。数据持久化的本质:数据保存成文件,存储到程序的沙盒中。沙盒机制: 每个应用程序位于文件系统的严格控制部分 每一个应用程序在iOS系统内都放在了统一的文件夹目录下 沙盒本质就是一个文件夹,名字是随机分配的原创 2015-10-06 15:19:05 · 407 阅读 · 0 评论 -
iOS封装的三个步骤
1,目的2,功能3,实现:三原则(通用,方便,隐私)原创 2015-10-07 12:47:35 · 723 阅读 · 0 评论 -
存储区划分
从高到低(内存地址从大到小)1,栈区:栈内存返回是不安全的,禁⽌止!!!2,堆区:内存手动分配,手动释放3,静态区:一,只初始化一次 二,如果初始没有给值,默认值为0 三,只有程序退出才释放(永远存在)将变量定义的类型前加static,则该变量存储在静态存储区4,常量区:常量占⽤用内存,原创 2015-10-07 12:52:48 · 631 阅读 · 0 评论 -
IOS开发中的几种设计模式介绍(思想)
ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate原创 2015-10-07 12:41:15 · 1678 阅读 · 0 评论 -
协议跟代理的理解
// 这是正式的协议 定义一组方法规范,实现此协议的类必须实现对应的方法// oc 里面虽然没有多继承,但是一个类可以遵守多个协议,这样间接地实现了多继承@required // 必须执行的(默认的)#pragma mark 赚钱-(void)makeMoney;@optional // 可以选择性执行的-(void)lookAfterBaby;照英文字面來看,@原创 2015-10-22 18:58:36 · 354 阅读 · 0 评论