技术博客
谷飞飞iOS
iOS明天会更好
展开
-
tableView中cell、collectionView中cell选中后,图片加上一层高亮效果 selected highlighted
collectionView的cell中重写下面两个方法- (void)setSelected:(BOOL)selected { [supersetSelected:selected]; if (selected) { self.imageView.highlighted =NO; }}- (void)setHighl原创 2016-05-10 13:48:10 · 1691 阅读 · 0 评论 -
Swift 2.0特有的枚举函数的实现方法和调用方法
一、//枚举网络访问错误//swift中枚举可以定义函数和属性privateenumGFFNetworkError: Int { case emptyDataError = -1 case emptyTokenError = -2 //错误描述 private var errorDescription:Stri原创 2015-08-02 16:50:13 · 1363 阅读 · 0 评论 -
The network connection was lost 文件下载错误提示
如果出现这样的错误,可能是模拟器断网,重启下模拟器就可以:The network connection was lost原创 2015-07-20 13:10:15 · 3287 阅读 · 0 评论 -
KVO-对象属性值改变监听
key value observer 键值观察一、使用方法:以person对象为例,person中的属性name,监听name值改变的方法//添加监听的属性keyPath options:要监听的是新值还是旧值[self.personaddObserver:selfforKeyPath:@"name"options:NSKeyValueObservingOptio原创 2015-07-17 13:51:27 · 4848 阅读 · 0 评论 -
KVC简单介绍 -字典转模型,模型转字典
// 以下两个方法,都属于 KVC的方法 // KVC 是 cocoa的大招!间接给对象属性设置数值 // 程序执行过程中,动态给对象属性设置数值,不关心 .h中是如何定义的 // 只要对象有属性(无论是在.h中还是在.m中定义的属性),就能够读取/设置! // 这种方式,有点违背程序的开发原则! // 字典转模型原创 2015-07-17 13:12:05 · 885 阅读 · 0 评论 -
比MD5 和HMAC还要安全的加密 - MD5 加时间戳
//1、给一个字符串进行MD5加密 NSString *passKey =@"myapp"; passKey = [passKey md5String]; //2、对第一步中得到的MD5和密码进行HMAC加密 NSString *passWord = [pwdhmacMD5StringWithKey:passKey]; //3、获取系统原创 2015-07-16 10:49:04 · 2298 阅读 · 0 评论 -
IOS多视图应用管理器
http://www.cnblogs.com/syxchina/archive/2012/09/06/2672793.html转载 2015-07-15 14:39:35 · 650 阅读 · 0 评论 -
OC对象给分类添加属性
OC对象中不能给分类添加属性,但是在实际开发中,经常为了更好的性能需要给分类添加属性,那么添加的属性不能有默认的成员变量,需要我们自己实现set和get方法,要用到运行时如下:#import //运行时的关联对象,动态添加属性const void *URLStringKey ="URLStringKey";//set方法- (void)setUrlS原创 2015-07-08 10:13:15 · 1780 阅读 · 0 评论 -
真机iOS 系统升级后xcode不能进行真机调试
今天升级了一下iPhone5s(土豪金版)的系统到iOS8.4,xcode只能支持到8.3,真机调试遇到问题???下面是解决办法!找到xcode,点击右键,打开显示包内容,按路径Contents/Develpoer/Platforms/iPoneOS.platform/Developer/SDKs,这时候你就看到安装包了,我的是iPhoneOS8.3.sdk。然后copy一下该sd转载 2015-07-14 16:45:02 · 1304 阅读 · 0 评论 -
字典转模型的过程中,空值和id特殊字符的处理
在IOS 中id是特殊字符,但是很多时候从网络中下载的数据是以id保存的如果在定义属性的时候@property(nonatomic,copy) NSString *id;就不会出现错误当键值对的value是空时,保存的时候也会出错,解决方法是定义成copy的类型@property(nonatomic,copy) NSNumber *behot_time;原创 2015-07-14 12:12:24 · 1481 阅读 · 0 评论 -
字典转模型的时候,如果字典键值对比模型属性多,解决方法
+ (instancetype)newWithDictionary:(NSDictionary *)dict{ news *newOne = [selfnew]; [newOne setValuesForKeysWithDictionary:dict]; return newOne;}如果使用KVC需要字典键值对和模型属性一一对应,但是重写下面方法,就原创 2015-07-14 12:08:25 · 1103 阅读 · 0 评论 -
内存区域划分
从上往下一次是栈区 :局部变量堆区BSS段数据区代码区在ARC环境下,block 如果不使用外部变量则是全局block(NSGlobalBlock)如果使用外部变量则是堆block(NSMallockBlock)在MRC环境下,block不使用外部变量还是全局block(NSGlobalBlock)如果使用外部变量则是栈block(NSStack原创 2015-07-10 15:11:37 · 674 阅读 · 1 评论 -
id 和instancetype之间的区别
id 可以做参数,不可以检测返回值,不可以使用点语法instancetype 不可以做参数,可以检测返回值,可以用点语法原创 2015-05-27 11:47:10 · 587 阅读 · 0 评论 -
NSCache使用常见错误
NSCache用来存储缓存数据的时候,和NSDictionary功能类似,但是NSCache有一个特别的问题:一旦接收到内存警告之后,如果使用[NSCache removeAllObjects]处理就不能把图片存放到内存中,之后所有的图片都是从沙盒中取的不能再次存放到内存中,因为框架的内存警告做了[NScache removeAllObjects]操作[NSCache removeAl原创 2015-07-09 08:38:33 · 1511 阅读 · 2 评论 -
学习ios常用网站
1、苹果官方文档构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程:Start Developing iOS Apps Today构建Mac OS X程序:下面这篇文章介绍了Mac OS X开发的过程:Start Developing Mac Apps TodayObjective-C:下面的这个链接是苹果官方介绍Objective-C的文转载 2015-08-28 19:20:03 · 750 阅读 · 0 评论 -
27个提升效率的iOS开源库推荐 第三方开放框架
1. DZNEmptyDataSetDZNEmptyDataSet算是一个很标准的iOS内建方式,适合用来处理空的table view和collection view。默认情况下,如果你的table view为空,屏幕就为空,这样一来用户体验并不理想。使用这个库,你只需遵守一些协议,iOS就会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来转载 2015-08-04 18:53:58 · 468 阅读 · 0 评论 -
QQ分享每次都要授权登录才能分享 EQQAPIAPPNOTREGISTED
分享功能里先注册一下[[TencentOAuth alloc] initWithAppId:@"xxxxxxxx" andDelegate:self]; 否则会提示未注册EQQAPIAPPNOTREGISTED原创 2016-03-07 16:31:46 · 4256 阅读 · 0 评论 -
UIAlertView ios9 开始废弃 使用UIAlertController弹框提示
UIAlertController *alert = [UIAlertControlleralertControllerWithTitle:@"提示"message:@"更新"preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *defaultAction = [UIAlertActionactionWit原创 2015-12-21 17:00:13 · 2143 阅读 · 0 评论 -
GitHub排名前100的iOS第三方汇总简介,方便开发者选择适合的第三方框架。
http://blog.6ag.cn/1040.html?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1 项目名称项目信息1. AFNetworking作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大转载 2015-11-19 17:08:46 · 2071 阅读 · 0 评论 -
数组中的每个对象都执行同一个方法 makeObjectsPerformSelector
NSArray 类定义的方法1. makeObjectsPerformSelector:@select(aMethod)简介:让数组中的每个元素 都调用 aMethod 2. makeObjectsPerformSelector:@select(aMethod) withObject:oneObject简介:让数组中的每个元素 都调用 aMethod 并把 wi原创 2015-11-25 14:55:16 · 1423 阅读 · 0 评论 -
An AVPlayerItem cannot be associated with more than one instance of AVPlayer'
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'An AVPlayerItem cannot be associated with more than one instance of AVPlayer'*** First throw call stack:(0x18317822原创 2015-10-30 14:58:45 · 1426 阅读 · 0 评论 -
关于AppStore被拒后的申诉
提交了申诉之后,如果不是程序的问题就不要提交以供审核了,直接等着苹果员工重新审核就可以如果你又点击了提交以供审核,相当于你又重新发布了新的版本,之前的申诉会被忽略掉原创 2015-11-18 11:37:48 · 4319 阅读 · 0 评论 -
AppStore上传不成功但是没有提示
之前遇到过一次,ipa一直上传不上去,并且不做任何提示,然后下了个Application Loader ,然后提交ipa,提示出了一大堆错误,建议使用Application Loader上传原创 2015-11-18 12:02:34 · 580 阅读 · 0 评论 -
上传appStore出现的错误
下边的最小value is 8.0 解决办法是更新下第三方框架,保持所有版本一致原创 2015-11-16 12:09:04 · 513 阅读 · 0 评论 -
swift语法,很全的总结,强烈推荐 http://wiki.jikexueyuan.com/project/swift/
http://wiki.jikexueyuan.com/project/swift/转载 2015-08-07 10:45:47 · 491 阅读 · 0 评论 -
addChildViewController
在苹果的WWDC2011大会视频的 《Session 101 - What’s New in Cocoa》 和 《Session 102 - Implementing UIViewController Containment》 中介绍了苹果在iOS5中给UIViewController新增加的5方法以及一个属性:12345678// 方法a转载 2015-07-24 13:39:54 · 494 阅读 · 0 评论 -
如新闻频道滑动切换的代码
效果:collectionView的数据源方法- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ newsCell *cell = [collectionVi原创 2015-07-24 12:46:31 · 693 阅读 · 0 评论 -
iWatch应用开发-oc篇
1、创建项目2、添加target watchApp3、调试4、解决bug5、 搭建界面6、链接button点击事件7 、iphoneApp与watchApp交互原创 2015-07-24 13:28:16 · 4276 阅读 · 0 评论 -
图片无限轮播-最简单的实现方法
collectionView中只有三个cell 每次显示的都是第二个cell- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { CycleViewCell *ce原创 2015-07-24 12:54:41 · 1463 阅读 · 0 评论 -
关于内存警告
UIKIT_EXTERN NSString *const UIApplicationDidReceiveMemoryWarningNotification;内存警告可以写在- (void)didReceiveMemoryWarning{ }方法中,但是在通知中实现效率更高,警告的方法执行顺序在通知之后[[NSNotificationCenterdefa原创 2015-07-08 10:20:45 · 743 阅读 · 0 评论 -
图片帧播放性能优化及音频播放路径
/** * 图片帧播放 */-(void)animationWithTomImageName:(NSString *)imageName andWithCount:(int)count{ if ([self.tomImageisAnimating]) { return;//如果有动画在执行其他动画就不能执行 } NSMutabl原创 2015-05-24 23:06:01 · 555 阅读 · 0 评论 -
git的常用命令
$ git config --global user.name "姓名"$ git config --global user.email "xxx@qq.com"$ git config -l 查看配置信息$ git commit -m "注释" 将暂存区内容提交至代码库$ git commit --amend修改最后一次提交的注释原创 2015-07-09 09:01:50 · 575 阅读 · 0 评论 -
自己理解的C和OC的本质区别
C和OC的区别OC使用消息结构(messaging structure),C使用函数调用(function calling)消息结构:运行时所执行的代码由运行环境决定(动态绑定)函数调用:运行时所执行的代码由编译器决定OC的重要工作都有“运行期组件”(runtime component)而非编译器完成,包括:OC面向对象特性所需要的全部数据结构及函数OC全部内存管理方法原创 2015-04-19 21:22:14 · 1805 阅读 · 0 评论 -
iOS开发中,对进程和线程的理解
1.进程1.1>进程是指在系统中正在运行的一个应用程序(同时打开QQ和Xcode,系统会分别启动2个进程)1.2>每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内2.线程1.1>一个进程想要执行任务,必须得有线程(每个进程至少要有一条线程,即主线程)1.2>线程是进程的基本执行单元,进程的所有任务都在线程中执行3.多线程3.1>一个进程中可以开启多原创 2015-04-19 11:14:55 · 710 阅读 · 0 评论 -
OC中,ARC机制下类的属性的定义
1.属性属性时OC的一项特性,用于封装对象中的数据@property基于严格的命名规范优点:使用点语法和存取方法效果相同使用属性,编译器会自动编写访问这些属性所需的方法,该过程由编译器在编译器执行禁止编译器自动合成存取方法自己实现存取方法使用@dynamic关键字,该关键字会告诉编译器:不要自动创建实现属性所用的实例变量不要为其创建存取方法。编译器确原创 2015-04-19 21:18:23 · 486 阅读 · 0 评论 -
iOS学习,数据存储小结
1、数据存储方式XML属性列表PreferenceNSArchiveSQLite3Core Data2、沙盒 1》沙盒结构应用程序包:包含了所有的资源文件和可执行文件Documents:保存需要持久化的数据,iTunes同步时会备份,用于游戏存档等(影响审核)tmp:当前运行时所需要的临时数据,退出应用程序时清空Library/Caches:保存应用运行时生成的需要原创 2015-04-19 21:15:23 · 433 阅读 · 0 评论 -
字符串NSString学习,相关方法整理
NSString字符串的创建字符串的导出-(BOOL)writeToFile:(NSString*)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;atomically原子性:写入内容到文件中时候,会写入一个临时文件中,在把临时文件中所有内原创 2015-04-19 13:55:16 · 453 阅读 · 0 评论 -
ui界面搭建,自己的理解和总结
storyBoard 影响整个界面,描述程序界面。只要修改这个文件,就能修改整个界面。学习方法:一.先把界面跑起来,在找有什么文件能影响这个界面,就能猜测出这个文件能改变界面。二.找到目标文件了,随意拖控件进去,然后运行程序,看看界面的变化。三.发现控件位置不变,因为当前模拟器是3gs,3.5英寸屏幕,而stroyBoard是4英寸的,位置不对正常。解决方式:将stroyBoard原创 2015-04-19 13:53:32 · 756 阅读 · 0 评论 -
iOS回调机制的理解
各种回调机制的比较:1)代理:也叫委托,当某个对象收到多个事件,并要求同一个对象来处理所有事件时。委托机制依赖于某个协议定义的方法来发送消息。代理主要是提供接口、或是类似C++多重继承功能,为类提供一种修饰机制。代理不是为回调而生的,它应该表述一组互操作约定。优点:实现简单,容易理解。强类型检查。缺点:类与类间建立了比较强的耦合关系有可能需要较长期保存委托以进行回调原创 2015-04-19 13:50:45 · 1147 阅读 · 0 评论 -
OC中ARC机制的理解和整理
ARC的本质ARC是编译器(时)特性,而不是运行时特性,更不是垃圾回收器(GC)。Automatic Reference Counting (ARC) is a compiler-level feature that simplifies the process of managing object lifetimes (memory management) in Cocoa ap原创 2015-04-19 12:10:30 · 664 阅读 · 0 评论