ios的一些总结
钢伢仔
这个作者很懒,什么都没留下…
展开
-
iOS获取当前网络类型(Wifi、2G、3G、4G)
我们在开发APP时,涉及网络连接的时候,都会想着提前判断一下当前的网络连接状态,如果没有网络,就不再请求url,省去不必要的步骤,所以,这个如何判断? 记得在工程添加:SystemConfiguration.framework去苹果API里搜索Reachability,下载demo,把demo里的Reachability.h和Reachability.m拖到自己的工程里。也可以在百度里面搜索”Re原创 2015-10-30 15:31:33 · 11633 阅读 · 0 评论 -
Block的循环引用问题
摘自:http://blog.csdn.net/wildfireli/article/details/22063001Block中的循环引用问题扯了这么多,回到Block的循环引用问题,由于我们很多行为会导致Block的copy,而当Block被copy时,会对block中用到的对象产生强引用(ARC下)或者引用计数加一(non-ARC下)。如果遇到这种情况转载 2015-05-18 16:31:03 · 657 阅读 · 0 评论 -
在子线程中使用定时器,将定时器添加到RunLoop中
参考自:http://my.oschina.net/u/936286/blog/159490- (void)viewDidLoad{ [super viewDidLoad]; dispatch_queue_t queue = dispatch_queue_create("kk", DISPATCH_QUEUE_SERIAL);转载 2015-05-31 23:13:31 · 2612 阅读 · 0 评论 -
iOS开发中NSRunloop跟NSTimer的问题
摘自:http://www.cnblogs.com/xwang/p/3547685.html我们在使用NSTimer的时候,可能会接触到runloop的概念,下面是一个简单的例子:- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the转载 2015-05-31 22:43:52 · 492 阅读 · 0 评论 -
NSString为什么要使用copy,而不是retain?
摘自百度文库:http://wenku.baidu.com/view/de0251d6960590c69ec3769e1,首先使用retain,只是计数器+1,并没有生成新的对象,所以效率更高2,但是使用copy安全。因为NSString为NSMutableString的基类,如果将NSMutableString以retain的形式赋值给NSString后,后续修改NSMuta转载 2015-05-18 16:12:44 · 520 阅读 · 0 评论 -
iOS如何选择delegate、Notification、KVO?
摘自:http://blog.csdn.net/dqjyong/article/details/7685933前面分别讲了delegate、notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为h转载 2015-05-29 15:57:26 · 426 阅读 · 0 评论 -
Block的基本使用、typedef给Block定义别名、Block的应用场景、Block的注意事项
什么是Block?Block是ios中一种比较特殊的数据类型,是苹果官方特别推荐使用的一种数据类型,应用场景有:动画、多线程、集合遍历、网络请求回调等Block的作用:用来保存某一段代码,可以在恰当的时间取出来再调用。Block的基本使用://// main.m// Block的基本使用//// Created by XinYou on 1转载 2015-05-08 14:48:59 · 6680 阅读 · 0 评论 -
iOS本地通知(NSLocalNotification)的使用
效果图:图一:核心代码://// JLViewController.m// 本地通知//// Created by XinYou on 15-5-15.// Copyright (c) 2015年 vxinyou. All rights reserved.//#import "JLViewController.转载 2015-05-15 13:30:00 · 1039 阅读 · 0 评论 -
iOS中的UIView动画
1.UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 2.执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码放在[UIViewbeginAnimations:nil context:nil]和[UIViewcommitAnimations]之间:[转载 2015-05-16 11:41:34 · 435 阅读 · 0 评论 -
iOS多线程之NSOperation和GCD的比较
摘自:http://blog.csdn.net/chenglibin1988/article/details/12654367GCD是基于c的底层api,NSOperation属于object-c类。ios 首先引入的是NSOperation,IOS4之后引入了GCD和NSOperationQueue并且其内部是用gcd实现的。相对于GCD:1,NSOperation拥转载 2015-06-01 23:30:31 · 550 阅读 · 0 评论 -
[UIScreen mainScreen].scale是什么?
[UIScreen mainScreen].scale表示屏幕的缩放比如果是 非Retain屏幕, [UIScreen mainScreen].scale = 1.0如果是 Retain屏幕,[UIScreen mainScreen].scale = 2.0详情参见博客:http://blog.csdn.net/li_huifeng/article/details/976599转载 2015-05-19 15:07:12 · 6604 阅读 · 0 评论 -
iOS获取运营商信息(IMSI)
关于获取运营商信息,需通过CoreTelephony.framework,记得在工程添加。我们用到的是CTTelephonyNetworkInfo和CTCarrier这两个类,这些在iOS 4.0之后就有了。名词解释 IMSI:International Mobile Subscriber Identification Number 国际移动用户识别码IMSI分为两部分:一部分叫MCC(Mobi原创 2015-10-30 15:58:49 · 16463 阅读 · 0 评论 -
iOS7.0隐藏状态栏(statusBarHidden)
iOS7.0之前,通过 [UIApplication sharedApplication].statusBarHidden = YES;① 或者通过 [[UIApplication sharedApplication] setStatusBarHidden: withAnimation:]② 来隐藏状态栏。iOS7.0之后,两个全局的方法①和②是行不通的。 7.0以后状态栏默认依赖UIVi原创 2015-10-24 13:44:06 · 965 阅读 · 0 评论 -
iOS应用生命周期详解
1.iOS应用的5种状态 状态 NotRunning Inactive Active Background Suspended 释义 非运行状态 前台非活动状态 前台活动状态 后台状态 挂起状态 详细 应用没有运行或被系统终止 应用正在进入前台状态,但是还不能接受事件处理 应用进入前台状态,能接受事件处理 应用进入后台,但依然能够执行原创 2015-10-24 16:20:01 · 924 阅读 · 0 评论 -
iOS根据屏幕宽高判断当前设备型号
为了屏幕适配的需要,有时候我们需要获得iOS设备的屏幕信息,然后根据该信息判断是哪一种iOS设备。CGSize screenSize = [UIScreen mainScreen].bounds.size;// 如果是iPhoneif ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) { //原创 2015-10-22 15:37:47 · 3033 阅读 · 0 评论 -
iPhone6 / 6 Pluse 设计适配方案
原文链接:http://blog.csdn.net/zhangao0086/article/details/42266865转载 2015-10-20 17:33:18 · 500 阅读 · 0 评论 -
iPhone6和iPhone6Plus的适配
iPhone6和iPhone6Plus的适配各机型分辨率、尺寸、ppi、长宽比例的比较 机型 分辨率 尺寸 ppi 长宽比 LauncherImage尺寸 iPhone3GS 320*480 3.5 inch 165 1.5 320*480 iPhone4/iPhone4s 640*960 3.5 inch 330 1.5 640原创 2015-07-30 16:29:50 · 926 阅读 · 0 评论 -
UITextField的键盘种类、用法总结
参考自:iOS键盘的相关设置1.键盘风格UIKit框架支持以下几种键盘风格: 代码 xib(Keyboard Type) 风格释义 UIKeyboardTypeDefault Default 默认键盘,支持所有字符 UIKeyboardTypeASCIICapable ASCII Capable 支持ASCII的键盘 UIKeyboardTypeNumbersA原创 2015-08-24 13:33:24 · 20718 阅读 · 0 评论 -
iOS如何制作ipa文件
参考自:http://blog.csdn.net/yanfangjin/article/details/7571317方式一:第一步,在Xcode中选择程序运行的目标设备为真机第二步,编辑Scheme,Build Configuration设置为Release 第三步,Command + B,可以看到在Products文件夹下.a转载 2015-05-14 17:17:16 · 5189 阅读 · 0 评论 -
iOS国际化:程序名称国际化、内容国际化、storyboard国际化
摘自:http://blog.csdn.net/totogo2010/article/details/77278961、iOS程序名称国际化1.1 新建一个Single View app模版项目,命名为Localization。1.2 新建后,可以看到工作目录结构文件如下,单击InfoPlist.strings,查看右边的属性,在Localization栏添转载 2015-05-14 10:48:11 · 821 阅读 · 0 评论 -
程序Crash(奔溃)记录和分析工具——Crashlytics
摘自:http://www.infoq.com/cn/articles/crashlytics-crash-statistics-tools简介Crashlytic 成立于2011年,是专门为移动应用开者发提供的保存和分析应用崩溃信息的工具。Crashlytics的使用者包括:支付工具Paypal, 点评应用Yelp, 照片分享应用Path, 团购应用GroupOn转载 2015-05-13 15:30:29 · 830 阅读 · 0 评论 -
ios开发之使用block引发循环引用导致内存泄露
首先来看一个动态图:由图可知,我们从One跳转到了Two(TwoViewController)接下来看一段代码://// JLPerson.h// BlockTest//// Created by Mac on 15-3-28.// Copyright (c) 2015年 vxinyou. All rights reserved.//原创 2015-03-28 23:10:57 · 1777 阅读 · 0 评论 -
ios开发之使用UIWebView打开本地的HTML、txt、PDF、PPT文件、打开远程的共享资源
如果想打开本地的一些常见文件,比如html、txt、PDF、PPT等,都可以使用UIWebView打开,只需要告诉UIWebView文件的URL即可:// 创建URLNSURL *url = [[NSBundle mainBundle] URLForResource:@"help.html" withExtension:nil];// 创建请求NSURLRequest *r转载 2015-03-27 17:04:12 · 4105 阅读 · 0 评论 -
ios开发之如何跳到AppStore给应用评分
为了提高应用的用户体验,经常需要邀请用户对应用进行评分应用评分无非就是跳转到AppStore展示自己的应用,然后由用户自己撰写评论方式一:NSString *appid = @"444934666";NSString *str = [NSString stringWithFormat: @"itms-apps://ax.itunes.ap转载 2015-03-27 16:41:26 · 732 阅读 · 0 评论 -
ios开发中判断真机和模拟器
// 如果是模拟器if (TARGET_IPHONE_SIMULATOR) { [MBProgressHUD showError:@"模拟器不支持该操作"]; }else{ // 打电话、发短信、发邮件...}TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是苹果的两个宏定义,在真机sdk转载 2015-03-27 13:30:18 · 10411 阅读 · 0 评论 -
ios开发之如何从一个应用跳转到另一个应用(应用间跳转)
有时候,需要在本应用中打开其他应用,比如从A应用中跳转到B应用首先,B应用得有自己的URL地址(在Info.plist中配置)B应用的URL地址就是:mj://ios.itcast.cn接着在A应用中使用UIApplication完成跳转NSURL *url = [NSURL URLWithString:@"mj://ios.itcast.cn"];[[转载 2015-03-27 16:22:00 · 1780 阅读 · 0 评论 -
UITableView的代理方法viewForHeaderInSection不执行的原因
有时候我们想自定义UITableView的headerView,于是重写代理方法:- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section但是在运行程序的时候发现该方法不执行,这时我们还需要重写一个代理方法:- (CGFloat)tableView:(UITabl原创 2015-03-27 12:55:59 · 6531 阅读 · 0 评论 -
ios中发邮件功能实现的几种方式
方式一:使用系统自带的邮件客户端,发完邮件后不会自动回到原应用。NSURL *url = [NSURL URLWithString:@"mailto://10010@qq.com"]; [[UIApplication sharedApplication] openURL:url];方式二:类似于发短信的第二种方式参见:http://blog.csdn.ne转载 2015-03-26 20:44:55 · 579 阅读 · 0 评论 -
ios中发短信功能实现的几种方式
方式一:NSURL *url = [NSURL URLWithString:@"sms://10010"];[[UIApplication sharedApplication] openURL:url];这种方式直接跳到发短信界面,但是不能指定短信内容,而且发完短信后不能自动回到原应用。方式二:使用系统自带的MessageUI框架来发送短信//转载 2015-03-26 20:41:23 · 1313 阅读 · 0 评论 -
ios真机调试步骤
真机调试步骤都在这个ppt上,ppt下载地址:http://download.csdn.net/detail/liu537192/8548697转载 2015-03-30 22:17:38 · 442 阅读 · 0 评论 -
ios开发中导航栏背景的出图规格
1,ios6导航栏背景的出图规格:非retina(视网膜)屏幕:320 x 44retina(视网膜)屏幕:640 x 88注意:从iphone4开始就已经都是视网膜屏幕2,ios7导航栏背景的出图规格:retina(视网膜)屏幕:640 x 128为什么是这样呢?因为ios6中导航栏的高度是44,导航栏上面20的高度是属于状态栏;ios转载 2015-03-30 22:14:46 · 2140 阅读 · 0 评论 -
UIImageView的contentMode属性详解
摘自:http://www.th7.cn/Program/IOS/201406/212706.shtmlUIViewContentModetypedef enum { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with转载 2015-03-23 21:37:16 · 919 阅读 · 0 评论 -
iPhone开发工具篇-利用xcode profile和analyze进行性能优化
摘自:http://blog.csdn.net/xdrt81y/article/details/11036317内存泄漏问题的解决内存泄漏(Memory Leaks)是当一个对象或变量在使用完成后没有释放掉,这个对象一直占有着这块内存,直到应用停止。如果这种对象过多内存就会耗尽,其它的应用就无法运行。这个问题在C++、C和Objective-C的MRR中是比较普遍的问题转载 2015-05-13 15:20:42 · 632 阅读 · 0 评论 -
使用Block模拟网络请求回调
//// JLViewController.m// Block实现回调//// Created by XinYou on 15-5-8.// Copyright (c) 2015年 vxinyou. All rights reserved.//#import "JLViewController.h"@interface JLViewControlle转载 2015-05-08 15:45:55 · 504 阅读 · 0 评论 -
iPhone6和iPhone6 Plus的分辨率和像素
摘自:http://blog.csdn.net/openglnewbee/article/details/424968551.iPhone5分辨率320x568,像素640x1136,@2x2.iPhone6分辨率375x667,像素750x1334,@2x3.iPhone6 Plus分辨率414x736,像素1242x2208,@3x这里所注的转载 2015-04-29 17:36:32 · 1040 阅读 · 0 评论 -
iOS6中UITextField的垂直居中问题
摘自:http://blog.csdn.net/slinloss/article/details/38302569用xib生成的UITextField文字默认是水平左对齐,垂直居中对齐的,但是用代码生成的UITextField确是默认是水平左对齐,垂直顶对齐。到UITextField的头文件看了一下,发现只有设置水平对齐的属性,却没有垂直对齐属性。因为xib里都可以设垂直对齐属转载 2015-04-16 18:03:45 · 445 阅读 · 0 评论 -
ios之格式化数字
/** * 格式化数字 * 数字小于一万,保持不变:4321-->4321 * 数字大于一万,且千位无值:40321-->4万 * 数字大于一万,且千位有值:43210-->4.3万 */- (NSString *)formatNumber:(int)number{ NSString *result = nil; if (numb转载 2015-04-20 22:54:38 · 525 阅读 · 0 评论 -
ios之图片的拉伸、UIImageView的stretchableImageWithLeftCapWidth方法详解
#import @interface UIImage (Extension)/** * 返回一张对“中点”进行拉伸的图片 */+ (UIImage *)resizedImageWithName:(NSString *)name;/** * 返回一张对“指定点”进行拉伸的图片 */+ (UIImage *)resizedImageWithName:转载 2015-04-20 23:14:17 · 928 阅读 · 0 评论 -
关于autoreleasepool一个常见的面试题
面试题如下:for (int i = 0; i < 10; ++i) { NSString *str = @"Hello World"; str = [str stringByAppendingFormat:@" - %d", i]; str = [str uppercaseString]; NSLog(@"%@", str);}问:以上代码存在什么样的转载 2015-04-04 21:49:12 · 1069 阅读 · 0 评论 -
ios中打电话功能实现的几种方式
方式一:NSURL *url = [NSURL URLWithString:@"tel://10010"]; [[UIApplication sharedApplication] openURL:url];但是这种方式有一个缺点,如果我们在应用中开启了打电话,电话结束后,不会自动回到原应用,会直接停留在通话记录界面。如图所示: 方转载 2015-03-26 19:54:03 · 652 阅读 · 0 评论