ios 基础
苹果欣
这个作者很懒,什么都没留下…
展开
-
将CGPoint这种类型的数据保存到NSArray里
// 存: [array addObject:[NSValue valueWithCGPoint:point]]; // 取: CGPoint anotherPoint = [[array objectAtIndex:index] CGPointValue]; // 另外: xCoords = [NSArray arrayWithObjects:[NSNumber numberWith转载 2014-06-05 14:44:15 · 811 阅读 · 0 评论 -
AppDelegate中几个常用的回调调用时机
本篇文章主要介绍一些UIApplicationDelegate中几个常用的回调方法的调用时机。以帮助你判断哪些方法倒底放到哪个回调中去实现。1. – (void)applicationDidFinishLaunching:(UIApplication *)application;此方法基本已经弃用,改用第2个方法代替。2. – (BOOL)application:(UIApplic转载 2015-06-15 00:49:59 · 336 阅读 · 0 评论 -
mvc
http://casatwy.com/iosying-yong-jia-gou-tan-wang-luo-ceng-she-ji-fang-an.htmlhttp://casatwy.com/iosying-yong-jia-gou-tan-viewceng-de-zu-zhi-he-diao-yong-fang-an.html------------M应该做的事:给ViewC转载 2015-07-29 09:01:00 · 418 阅读 · 0 评论 -
很好的关于Block的使用简介
原文地址:http://blog.csdn.net/totogo2010/article/details/7839061转载 2015-07-21 15:39:09 · 340 阅读 · 0 评论 -
关于MVVM翻阅的一些文章
浅谈iOS中MVVM的架构设计与团队协作http://www.cocoachina.com/ios/20150122/10987.html一次简单的 ViewModel 实践:高效简单地组织代码http://www.cocoachina.com/ios/20150714/12447.html转载 2015-07-21 22:36:14 · 299 阅读 · 0 评论 -
Associative机制使用场景[objective-c有两个扩展机制:category扩展方法和associative扩展属性]
原创文章,转载请注明出处:http://blog.sina.com.cn/s/blog_60342e330101tcz1.html1. 概念objective-c有两个扩展机制:category和associative。我们可以通过category来扩展方法,但是它有个很大的局限性,不能扩展属性。于是,就有了专门用来扩展属性的机制:associative。转载 2015-07-22 18:24:15 · 472 阅读 · 0 评论 -
加载文档后,知道文档中有哪些“看不见的”转义字符
文件中的源数据长得大概是这个样子:我想将其转换成NSArray对象,便对字符串进行了去\n操作,没想到成了这个样子:显而易见,是还有别的字符在“捣乱”,想要查出是什么字符还得使用HEX编辑器工具来查看:在上图的左侧都是ASCII的16进制表示,右图都是按字节表示,每一个.都代表是一个占位符,根据左侧的ASCII码可以知道右侧的...分别代表\t,\r,\n顺便补充一点,原创 2015-09-01 04:46:28 · 1264 阅读 · 0 评论 -
使用AVAsset获取音频文件ID3信息
key=TPE1,commonKey=artistkey=TALB,commonKey=albumNamekey=TYER,commonKey=(null)//上市年份key=USLT,commonKey=(null)//歌词key=APIC,commonKey=artworkkey=TIT2,commonKey=title原创 2015-12-13 21:31:14 · 1480 阅读 · 0 评论 -
FileManager 管理文件目录
NSFileManager *fileManager = [NSFileManagerdefaultManager];路径:[XYXToolssandBoxPath]1.获得路径中所有文件及子文件: NSArray *files = [fileManagesubpathsAtPath:[selfgetSandBoxPathString]];subpaths原创 2015-12-14 01:43:12 · 1995 阅读 · 0 评论 -
并发 (三):Group Dispatch and DIY Dispatch
将GCD任务集合起来目的:将代码块集合到一起,确保他们在GCD机制下,一个接一个的执行,就像是相互依靠。 解决方法:dispatch_group_create 来建立集合先了解下Group的四个方法:dispatch_group_createdispatch_group_async dispatch_group_notifydispatch_group_release1和4搭配使用,2要翻译 2016-01-05 03:45:38 · 412 阅读 · 0 评论 -
IOS开发之深拷贝与浅拷贝(mutableCopy与Copy)详解-讲得非常棒
阅读本文之前首先了解copy与retain的区别,如果有不正确的地方望大家多多指教:copy与retain的区别:copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 retain属性表示两个对象地址相同(转载 2015-12-22 02:50:07 · 370 阅读 · 0 评论 -
单例的几种创建方式
制造单例模式的两大方法原创 2015-12-24 01:35:56 · 424 阅读 · 0 评论 -
字符转转十六进制,再转十进制
字符串长度int BUF_SIZE = (int)self.txtInput.text.length;NSLog(@"BUF_SIZE = %d",BUF_SIZE);字符串转16进制const char *bufTemp = [self.txtInput.text cStringUsingEncoding:NSASCIIStringEncoding];unsigned char *buf =原创 2016-03-28 15:32:38 · 607 阅读 · 0 评论 -
手写CollectionView并调整布局
UICollectionViewController原创 2016-03-28 15:34:54 · 358 阅读 · 0 评论 -
char,short ,int ,long,long long,unsigned long long数据范围
编程语言的基础类型速查表 char -128 ~ +127 (1 Byte) short -32767 ~ + 32768 (2 Bytes) unsigned short 0 ~ 65536 (2 Bytes) int -2147483648 ~ +2147483647 (4 Bytes) unsigned int 0 ~ 4294967295 (4 Bytes) long == in转载 2016-07-26 10:15:46 · 354 阅读 · 0 评论 -
[转]深入学习Objective-C(一):揭开NSObject的面纱
原文:http://www.tuicool.com/articles/mmyuUr对于 NSObject 来说,我们可是非常熟悉的了,它是objc中大多数类的基类。注意,并不是所有的类都继承于 NSObject ,比如 NSProxy 类。详细的类图可以参考这篇文章 IOS 整体框架类图 ,讲的很详细。既然要深入学习objc,我们不妨从最熟悉的 NSObject 类开始,让我们来看一看它的源码吧!首转载 2016-07-26 15:54:38 · 350 阅读 · 0 评论 -
Promise of iOS
先简介下Promise吧Promise为什么会出现这得说到Web前端的开发,异步编程为js带来强大灵活性,但它也带来两个问题,多层嵌套令代码可读性变差以及无法满足并行逻辑的穿行执行,然后机智的程序员们构架出Promise这样的一个链式回调机制,它类似于一个事务管理器,它的作用就是将各种内嵌回调的事务用流水形式表达。 那关我们写iOS什么事呢?— 方便呗。Promise 基础Promise 有三种状原创 2016-07-28 16:09:11 · 398 阅读 · 0 评论 -
图片拉伸技巧
对于有些图标等按钮 在美工设计的按钮下可以通过拉伸效果处理所需效果,最熟悉的莫过于微信聊天的 椭圆背景,也是通过这个这个原理进行背景图片。 如对该图片拉伸,如何操作? 首先找到要拉伸的部分,很明显 两侧椭圆是不变 要拉伸的是中间部分,如何指定中间部位,先看下图 指定这4个宽度后 会形成黑色模块 直白点就是 这块内容就是拉伸后中间那块不断填充的部分具体代码:UIImage* img=转载 2016-08-16 16:47:51 · 489 阅读 · 0 评论 -
如何更改iOS项目名称
更改项目名称有两种情况,第一种是只需要修改在商店或者是安装在设备上的名称,第二种是修改整个项目的名称。第一种情况:bundle display name 配置文件里面设置, 这个指的是显示在icon下面的名字.application name在itunes connect上改, 是指显示在app store上的名字. 这两个名字都可以在更新新版本的时候修改.原文转载 2015-06-08 16:36:03 · 751 阅读 · 0 评论 -
mac 删除文件夹里所有的.svn文件
check out 下来的工程,对其原有文件进行文件夹归档调整后,会出现很多关于missing file 的warning,所以一个好办法就是... 删除svn配置文件吧,一了百了mac 删除文件夹里所有的.svn文件想要把SVN專案作轉移或複製時舊的「.svn」真的是很煩人的東西最快的方式是用終端機輸入sudo find /Users/justfl转载 2015-05-18 09:37:40 · 468 阅读 · 0 评论 -
两种方法删除NSUserDefaults所有记录
12345678910111213//方法一NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];[[NSUserDefaultsstandardUserDefaults]removePersistentDomainForName:appD转载 2015-06-18 04:44:20 · 488 阅读 · 0 评论 -
由id类型对象初始化成NSArray或者NSMutableArray
程序运行毫无问题,但是控制台里有东西就是让你看着不爽,有时候就有这种感觉,对不对?原创 2014-06-12 15:35:02 · 819 阅读 · 0 评论 -
手势:长按
//长按手势 UILongPressGestureRecognizer * longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressToDo:)]; longPressGr.minimumPressDuration = 1.0; [self.转载 2014-12-02 16:31:43 · 359 阅读 · 0 评论 -
关于_block操作
A类对应的一个界面,现在需要更新下数据,需要到跳转到B界面去取数据。虽然委托和通知两种方法都能用了,但是回调更加简单。 B类里要做的:我先在B中设置好回调块 typedef void (^TimePickerBlock)(); 放在B.h文件夹的@interface声明之外,然后在B.h下声明一个块对象@property (nonatomic, copy) TimePickerBl原创 2014-12-04 11:07:25 · 484 阅读 · 0 评论 -
ios推送状况百出,不同原理,浪费时间
话说这两天决定不用三方库来做推送。其实理论上还是挺简单的,实际操作却状况百出,浪费我两天时间,我只能给跪了。现在小小记录下。这里有两个帖子,是我参照着做证书用的,个人感觉写的挺好,将贴在文章末端。现在我先总结下,做关于推送的证书吧。一、首先你得要一个苹果开发者证书,这个不用多说。它位置在开发者中心的Certificates栏目下,文件类型是iOS Development。这是开发应用的原创 2015-02-04 21:28:28 · 595 阅读 · 0 评论 -
Block 回调
在请求网络数据的时候,我们通常做法让一个单例单独来负责数据的发送和传输。这里记录下参数为block的回调方式吧。例子:在单例中,.h- (void)loginName:(NSString *)name pwd:(NSString *)pwd success:(void(^)(NSError * err原创 2014-12-12 17:01:18 · 540 阅读 · 0 评论 -
多个UITextfield间的切换顺序
UITextfield 的一些基本操作原创 2015-03-10 17:31:57 · 1590 阅读 · 0 评论 -
简约风格应用中UIAlertView到底要不要自定义
现在弹出框主要有四种需求:1.提示消息 2.要求输入密码 3.要求输入账号和密码 4.其他自定义界面嘛,其他自定义界面的话必然是需要自定义了,那么前三种常见风格,到底要不要自定义呢首先,新手,最直接想到的可能是,我自定义个view吧,需要的时候自己写个炫酷刁炸天的show动画就add上去了。熟练者可能想到的是,我继承吧,然后再重写父类方法吧。不过,呢,自从iOS5后,苹果内置了123这原创 2015-03-12 16:10:29 · 443 阅读 · 0 评论 -
保存用户账号信息;UUID、UDID、KeyChain、Devicetoken
iOS 7 之前,苹果对于一个设备上的多个App生成相同的Devicetoken,iOS7及之后,对同一设备上的多个App生成不同Devicetoken。虽说Devicetoken也不是一定可靠,因为它可能在某个你不知道的时候发生变化,但是可以设置一个对策,自从第一次在didRegisterForRemoteNotificationsWithDeviceToken中获取到devicetoken原创 2015-03-18 16:53:18 · 1216 阅读 · 0 评论 -
armv6、armv7、armv7s、arm64 与开发静态库(.a)
声明:本帖系列均为在转载和摘抄的基础上进行补充。若转载请备注原文出处。/** 第一部分 初步认识*/ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,它的性能在同等功耗产品中也很出色,几乎所有手机都是使用它的。Armv6、armv7、armv7s、arm64都是arm处理器的指令集,所有指令集原则上都是向下兼容转载 2015-03-24 16:08:09 · 700 阅读 · 0 评论 -
block回调中如何防止多重引用retain cycle
在block中,所有参与的对象都会被自动retain count+1。本来是在类A中使用了一个block,那么这个类A的实例对象a就拥有这个block,但是在block若又引用到了a,即a在block的引用计数增加1,a又属于block中,那么它俩就存在循环引用了。因此这个资源弄死就互相咬着,放不开。我们需要做的就是让它们无法形成循环引用。一、如果项目没有开启ARC,使用__block原创 2015-02-12 19:48:53 · 604 阅读 · 0 评论 -
由Struct到NSData和NSValue
http://www.tekuba.net/program/276/原创 2015-04-25 17:45:57 · 956 阅读 · 0 评论 -
IOS同步请求和异步请求的区别
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。同步通信方式与异步通信的概念同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟转载 2015-05-09 15:33:17 · 470 阅读 · 0 评论 -
IOS之同步请求、异步请求、GET请求、POST请求
1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里转载 2015-05-09 15:44:56 · 367 阅读 · 0 评论 -
storyboard、xib、pure code,选谁?
Storyboard:优势:操作简单,布局方便、一目了然,利于个人开发劣势:不利于多人对同一个项目的分工合作,甚至可能有版本冲突Xib:优势:操作简单,布局方便、一目了然,个人团队两相宜劣势:每个xib文件都是带有xcode版本号的,所以呢....其次可能遇到需要移植部分布局的情况,所以呢....Pure code:优势:方便移植,无需担心x原创 2015-04-30 17:06:43 · 449 阅读 · 0 评论 -
ios 随机数
iOS开发取随机数肯定会遇到的,暂时小结一下,好像有个arc4random(),所以假如你想取80到100的随机数,就可以写成int randomNumber = arc4random() +80int index = arc4random() % 6 + 1;就是1到6的随机数了。还有很多其它的取随机数的方法,论坛上也经常讨论有网友问怎么生成不重复的随机数,说是生成转载 2015-05-05 11:39:35 · 611 阅读 · 0 评论 -
KVO简明教程
KVO:Key-Value Observing,一种通知机制,也叫做观察者模式。当对某个对象的某个数值添加了观察者之后,每当这个 对象的数值改变,观察者都能立即获得该变化通知。实例:我有个tableview,tableview中有个自定义cell,cell中有个UISegmentedControl。现在我的需求是希望每当这个UISegmentedControl的值改变,都通知tableview原创 2015-02-13 16:30:47 · 419 阅读 · 0 评论 -
ios开发中如何隐藏各种bar
状态条Status Bar[UIApplication sharedApplication].statusBarHidden = YES;或者// iOS3.2+支持[application setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; statusBarHidden属性支持在iOS2.转载 2015-05-14 14:40:25 · 296 阅读 · 0 评论 -
关于block使用的5点注意事项
转自:摇滚诗人1、在使用block前需要对block指针做判空处理。不判空直接使用,一旦指针为空直接产生崩溃。if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveObjectWit转载 2016-08-02 09:17:18 · 308 阅读 · 0 评论