代码改变世界

随笔分类 - iOS

IOS7开发~Xcode5制作framework

2014-08-14 17:50 by Mr.Xer, 176 阅读, 收藏, 编辑
摘要: 一、Framework 简介(Introduction to Framework Programming Guide)Mac OS X 扩展了 framework 的功能,让我们能够利用它来共享代码和资源。通过 framework 我们可以共享所有形式的资源,如动态共享库,nib 文件,图像字符资源... 阅读全文

关于IOS7以及向下兼容音量控制问题

2014-03-06 12:56 by Mr.Xer, 496 阅读, 收藏, 编辑
摘要: 最近做个简单的播放界面,只是简单的设计到播放音频,ios系统自带播放有四个类可以播放音频AVPlayer,AVAudioPlayer,MPMusicPlayerController,MPMoviePlayerController因为设计到播放本地和网络音频,人又比较偷懒,尝试看用自带的类能不能做个较好的功能,经过各种尝试之后,决定用AVAudioPlayer播放本地音频,网络音频用MPMoviePlayerController。其实AVPlayer既可以播放本地又可以播放网络音频,但是由于官方封装的东西太少,本来都还可以凑合着用一下,但是因为最近推出了IOS7,在IOS7下运行会出现获取不到网 阅读全文

ios7 获取UITablleViewCell

2013-08-06 09:57 by Mr.Xer, 996 阅读, 收藏, 编辑
摘要: iOS7之前UITablleViewCell中得contentView得superView就是UITableViewCell。但是在iOS7得时候,contentView得superView确实UITableViewCellScrollView.UITableViewCellScrollView得superView才是UITableViewCell。考虑到也许之后发生同样得时候,所以如果需要重子View查找指定类型得父视图。考虑使用自定义函数实现- (UIView*)superviewWithClass:(Class)class child:(UIView*)child{ UIView ... 阅读全文

在mac中如何清除.svn文件

2013-07-30 10:22 by Mr.Xer, 670 阅读, 收藏, 编辑
摘要: 有些时候在开发一个应用程序我们需要用到版本控制,它可以帮助我们很好的控制我们程序的代码,尤其在多人开发的时候,优点尤为突出。但是在有些情况下我们又认为这些.svn真的很麻烦,那么我们怎么把他们一下子都找出来,一起删除呢?这个在linux系统中是很简单就能实现的,只要输入下面命令点击回车即可:sudofind/Users/justfly/Documents/workspace/justSVN/-name".svn"-execrm-r{}\;记得一定要加sudo这个需要root权限的。意思就是搜索/Users/justfly/Documents/workspace/justSV 阅读全文

iPhone开发笔记(20)EGOImageView的使用方法及注意事项

2013-07-23 17:54 by Mr.Xer, 447 阅读, 收藏, 编辑
摘要: EGOImageView是一种实现网络图片的异步加载和缓存的第三方类库,具有相同功能的第三方类库还有SDWebImage。但是相比两个类库的安装和使用来说,EGOImageView更简单一些,下面就介绍一下EGOImageView的使用方法: 1、下载EGOImageView及其相关的类库 EGOImageLoading 将EGOCache、EGOImageButton、EGOImageView、EGOImageLoader全部添加到工程下(拷贝) 2、EGOImagView使用代码如下 [plain]view plaincopyEGOImageView*imageView=[[EG... 阅读全文

iphone开发技巧整合

2013-07-23 16:40 by Mr.Xer, 337 阅读, 收藏, 编辑
摘要: 1、NSCalendar用法-(NSString *) getWeek:(NSDate *)d{NSCalendar *calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit |NSDayCalendarUnit | NSWeekCalendarUnit;NSDateComponents *components = [calendar components:unitsfromDat 阅读全文

IOS 图片压缩

2013-06-26 09:52 by Mr.Xer, 588 阅读, 收藏, 编辑
摘要: 上传图片前的图片压缩:NSData *imageData =UIImageJPEGRepresentation(self.uploadImage , 0.75);//图片按0.75的质量压缩-》转换为NSDataNSString *file_name = [TimeUtilgetDateStringWithFormat:@"yyyy-MM-dd-HH-mm-ss"];//以时间为图片名字NSString *upload_name =[NSString stringWithFormat:@"%@.jpg",file_name ];//上传的图片名字[req 阅读全文

ios 时间戳 当前时间 相互转化

2013-06-25 17:51 by Mr.Xer, 405 阅读, 收藏, 编辑
摘要: 1.今天在做一个webservice的接口的时候,被要求传一个时间戳过去,然后就是开始在Google上找2.遇到两个问题,一,当前时间转化为时间戳,二,获取的当前时间和系统的时间相差8个小时一,转化的方法为 NSString *timeSp = [NSString stringWithFormat:@"%d", (long)[localeDate timeIntervalSince1970]]; NSLog(@"timeSp:%@",timeSp); //时间戳的值二,把获取的时间转化为当前时间NSDate *datenow = [NSDate date 阅读全文

IOS中NSUserDefaults的用法(轻量级本地数据存储)

2013-06-25 17:40 by Mr.Xer, 248 阅读, 收藏, 编辑
摘要: NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了。NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型 阅读全文

ios 调用系统发短信以及打电话功能

2013-06-25 17:14 by Mr.Xer, 331 阅读, 收藏, 编辑
摘要: 先介绍一种最简单的方法:调用打电话功能[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];调用发短信功能[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://10000"]];上面的发短信的功能是调用系统的界面,下面是实现一种点击按键就直接发送短信,相当于后台发送,能不能上软件商店,还不能确定。相对建议来说,尽量使用第一种。首先导入MFMessageCompos 阅读全文

iphone获取sim卡信息

2013-06-25 17:13 by Mr.Xer, 499 阅读, 收藏, 编辑
摘要: /*iphone获取sim卡信息1.加入一个Framework(CoreTelephony.framework).2.引入头文件#import #import 3.初始化*///-----------------------------------具体demo//-----------------------------------#import #import #import @interface RootViewController : UITableViewController{ //声明变量 CTTelephonyNetworkInfo *networkInfo;}@end@imple 阅读全文

IOS开发之iOS深浅拷贝

2013-06-25 17:11 by Mr.Xer, 294 阅读, 收藏, 编辑
摘要: 这里主要侧重于集合类的深浅拷贝,主要事因为工作的时候遇到这个问题。有不足的地方欢迎指正首先我们需要有这样的一个前提:[array addObject:obj];这样obj的引用计数会增加1,如果使用remove则obj的引用计数会减一。ios对集合的内存处理就是这样的。那么,假设obj只被array拥有:id temp = [array objectAtIndex:0];[array removeObjectAtIndex:0];如果你再要使用temp就会出错,因为这个时候obj已经被释放了。(提醒一下,如果用NSString做测试,要注意@“abc”是常量 :-) )由于在程序中经常会遇到集 阅读全文

IOS开发之KVC KVO KVB

2013-06-25 16:13 by Mr.Xer, 436 阅读, 收藏, 编辑
摘要: KVC(Key Value Coding)KVO(Key Value Observing)KVB(Key Value Binding)KVO是Cocoa的一个重要机制,他提供了观察某一属性变化的方法,极大的简化了代码。这种观察-被观察模型适用于这样的情况,比方说根据A(数 据类)的某个属性值变化,B(view类)中的某个属性做出相应变化。对于推崇MVC的cocoa而言,kvo应用的地方非常广泛。(这样的机制听起来类 似Notification,但是notification是需要一个发送notification的对象,一般是 notificationCenter,来通知观察者。而kvo是直接通知 阅读全文

IOS开发之关于NSString和NSMutableString的retainCount

2013-06-25 16:04 by Mr.Xer, 284 阅读, 收藏, 编辑
摘要: 1. 字符串常量NSString *s = @"test";NSLog(@"s:%lx",[s retainCount]); //ffffffffffffffff(即UINT_MAX ( Maximum value an `unsigned int'))因为"test"为字符串常量,系统不会收回,也不会对其作引用计数,即使我们对s如何retain或release。2. stringWithFormatNSString *s = [NSString stringWithFormat:@"%s", " 阅读全文

IOS开发之delegate和Notification的区别

2013-06-25 16:00 by Mr.Xer, 318 阅读, 收藏, 编辑
摘要: delegate针对one-to-one关系,并且reciever可以返回值给sender;notification 可以针对one-to-one/many/none,reciever无法返回值给sender;所以,delegate用于sender希望接受到reciever的某个功能反馈值,notification用于通知多个object某个事件。delegate主动,notification被动1.Delegate:消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然后发送者响应事件,delegate机制使得接收者可以改变发送者的行为。通常发送者 阅读全文

IOS开发之把 Array 和 Dictionaries 序列化成 JSON 对象

2013-06-25 15:50 by Mr.Xer, 688 阅读, 收藏, 编辑
摘要: 1 前言通过 NSJSONSerialization 这个类的 dataWithJSONObject:options:error:方法来实现,Array 和 dictionary 序列化成 JSON 对象。方便在网络中传输。2 代码实例TestDemo.m[plain](void)converseToJson{ NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; [dictionary setValue:@"Archy" forKey:@"First Name"]; 阅读全文

IOS开发之把 JSON 数据转化成 Arrays 或者 Dictionaries

2013-06-25 15:49 by Mr.Xer, 513 阅读, 收藏, 编辑
摘要: 1 前言通过 NSJSONSerialization 这个类的 JSONObjectWithData:options:error:方法来实现,把JSON 数据解析出来放在数据或者字典里面保存。2 代码示例TestDemo.m[plain]-(void)convseFromJson{ NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init]; [dictionary setValue:@"Anthony" forKey:@"First Name"]; [dictionary s 阅读全文

iOS开发之应用首次启动显示用户引导

2013-06-25 15:45 by Mr.Xer, 239 阅读, 收藏, 编辑
摘要: 这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现,新建一个继承于UIViewController的类 命名为 UserGuideViewController ,在UserGuideViewController.m 写1 - (void)viewDidLoad2 {3 [super viewDidLoad];4 // Do any additional setup after loading the view.5 self.view.backgroundColor = [UIColor redCol 阅读全文

ios 双指捏合放大缩小图片的例子

2013-06-25 15:09 by Mr.Xer, 1121 阅读, 收藏, 编辑
摘要: 图片跟随双指捏合的距离放大或者缩小。利用-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 实现。touchesMoved每当手指在屏幕上移动的时候都会运行。1.检测手指的个数NSArray * touchesArr=[[event allTouches] allObjects];NSLog(@"手指个数%d",[touchesArr count]);2.检测两指的坐标,从而计算两指的距离。 p1=[[touchesArr objectAtIndex:0] locationInView:self.v 阅读全文

在IOS开发中使用GoogleMaps SDK

2013-06-25 15:08 by Mr.Xer, 664 阅读, 收藏, 编辑
摘要: 一、申请一个免费的API KEY要使用GoogleMaps SDK,必须要为你的应用申请一个API KEY,API Key可以让你监视你的应用调用api的情况。api key是免费的,你可以在任何调用Map api的应用中使用,你可以通过在Google APIs Console上提供你应用的包标识(bundle identifier)来获得一个api key,有了api key后,你要把它加到AppDelegate中,下面会讲到。获取api key的具体步骤:1、在Google APIs Console上创建一个api工程2、在打开的api工程页面中选中左边的Services面板,将里面的Go 阅读全文