IOS基础知识
lyhuzhu
创业者,产品经理,iOS开发工程师,微信号:lyhuzhu。
展开
-
iOS开发知识要点
NSString:1,把一个整数,转换成一个NSString[NSString stringWithFormat:@"%d",3];2,比较两个NSString是否相等[@"test"isEqualToString:@"test"];转载 2011-12-28 09:49:50 · 725 阅读 · 0 评论 -
iphone开发适配iphone5的步骤
iphone5的屏幕分辨率:1136 x 640 也即是高度变成了568,程序启动时我们需要一张retina图片命名为Default-568h@2x.png。在我们创建工程时xcode会默认为我们创建一个纯黑色的图片替换即可。xcode 4.5 已经支持iphone5的模拟器了。打开模拟器,选择设备,选择iphone(Retina 4-inch),即为iphone5的模拟器。原创 2013-04-19 17:30:35 · 1760 阅读 · 0 评论 -
ARC forbids explicit message send of'retain'
一般同时还有:'retain' is unavailable: not available inautomatic reference counting mode 的错误提示从字面上来解释就是,arc 禁止显示发送retain消息。其实就是使用ARC之后,不允许直接调用retain, release, autorelease, dealloc, retainCount这些方法了原创 2013-04-28 10:03:08 · 3037 阅读 · 0 评论 -
对于UIWindow的认识
UIWindow是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用:1、作为容器,包含app所要显示的所有视图2、传递触摸消息到程序中view和其他对象3、与UIViewController协同工作,方便完成设备方向旋转的支持原创 2013-04-19 14:36:47 · 1407 阅读 · 0 评论 -
rangeOfString的用法
官方描述:Finds and returns the range of the first occurrence of a given string within the receiver.例子:-(NSRange)getRangeWithStr:(NSString *)_str searchStr:(NSString *)_searchStr{ return [_s原创 2013-05-08 11:46:26 · 6018 阅读 · 0 评论 -
IOS常用代码整理
1、更改cell选中的背景UIView *cellView = [[UIView alloc] init];cellView.frame = CGRectMake(0, 0, 320, 44);cellView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"xxx.png"]];cell.原创 2013-01-28 16:29:44 · 902 阅读 · 0 评论 -
ios sdk5.0新特性 异步连接实现sendAsynchronousRequest:queue:completionHandler:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"www.baidu.com"]cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30.0]; [NSURLConnectio原创 2013-03-25 13:39:06 · 6248 阅读 · 0 评论 -
IOS 基础开发之 UIScrollView的使用
UIScrollView 是我们在项目开发过程中,经常会用到的控件。1、初始化 //init UIScrollView *scrollView = [[UIScrollView alloc] init]; [scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.fra原创 2013-03-26 16:18:51 · 1552 阅读 · 0 评论 -
ios 类别(category)
定义类别(category)是Objective-C语言的新特性,为现有的类添加新方法的方式。局限性:1、无法添加新的实例变量。2、与类本身的方法名称冲突。当名称冲突时,类别具有更高的优先级。作用:1、利用类别分散实现。2、使用类别创建前向引用。3、非正式协议和委托类别。使用我们这里给NSString添加一个类别subString.h文件:@interface NSStri原创 2013-07-23 17:32:07 · 1490 阅读 · 0 评论 -
多线程编程 - GCD
一、简介在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为 GCD本身是苹果公司为多核的并行运算提出的解决方案。GCD在工作时会自动利用更多的处理器核心,以充分利用更强大的机器。GCD是Grand Central Dispatch的简称,它是基于C语言的。如果使用GCD,完全由系统管理线程,我们不需要编写线程代码。只需定义想要执行的任务,然后添加到适当的调度队列(dispatch转载 2013-08-01 08:43:27 · 1145 阅读 · 0 评论 -
百度地图 - 合并模拟器和真机的静态库文件
场景在我们进行运用百度地图时,百度地图给我们准备了两个静态库文件,分别运用于模拟器和真机。如果我们要一边用模拟器,一边用真机测试那我们需要时不时地替换静态库文件了。这样实在太麻烦了,所以我们需要将两个文件,合并成一个通用的文件,方便我们的开发。实现我们需要在百度开发者中心将两个静态库文件下载到本地。分别找出两个文件的绝对路径。运用lipo命令(注意:不要忽略空格),合并两个静态原创 2013-08-20 10:09:17 · 2732 阅读 · 0 评论 -
ios 打电话结束返回到应用中
在我们做打电话这个功能时,我们常常是调用这个方法:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://xxxxx"]];然而,这样实现了功能后,结束通话后,确不能回到自己的应用中来。最近在网上搜了很多,苹果自己是没有提供回调函数的。强大的网友们通过用UIWebView这个控件实现了这个方法。代码原创 2013-08-14 22:07:06 · 2881 阅读 · 2 评论 -
ios 摇一摇功能的实现
当我们用微信的时候是不是感觉摇一摇的功能很炫呢?是不是感觉实现起来比较麻烦呢?其实,不然,这些都是苹果已经给我们封装好了,给我提供了非常简单的入口了。在UIResponder中有这些方法:-(void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{ NSLog(@"began");}-(voi原创 2013-08-15 17:15:58 · 3728 阅读 · 0 评论 -
isKindOfClass, isMemberOfClass的区别
这两个方法常常会困惑我们,它们有什么区别呢?定义首先,我们来看看它们的定义。isKindOfClass:官方解释:Returns a Boolean value that indicates whether the receiver is an instance of given class or an instance of any class that inherits原创 2013-10-10 17:15:53 · 3007 阅读 · 2 评论 -
iOS 如何选择delegate、notification、KVO?
delegate、notification和KVO的功能比较类似,那么在实际的编程中,如何选择这些方式呢?在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-observation/,因为博文是用英文写的,下面将其翻译成中文。转载 2014-02-26 17:36:46 · 889 阅读 · 0 评论 -
NSDate 时间加减
NSDate有个类别,如下:@interface NSDate (NSDateCreation)一个方法是:- (instancetype)initWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)date;这个方法官方的description是:Returns an NSDate ob原创 2014-05-19 11:28:50 · 3926 阅读 · 0 评论 -
No unexpired provisioning profiles found that contain any of the keychain's signing certificates
Organizer->Devices->Provisioning Profiles 中的App Identifier的com及之后部分是否与TARGETS->Summary->iOS Application Target->Bundle Identifier 相符,特别是后面的项目名称原创 2013-04-27 11:39:29 · 2051 阅读 · 0 评论 -
iOS6.0 消息推送的原理与实现
一、消息推送的原理Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务器。 上图可以分为三个阶段:第一阶段:应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。 第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并原创 2013-04-26 16:30:30 · 2370 阅读 · 2 评论 -
UIViewController的生命周期
下面是UIViewController从创建到销毁的生命周期: 1、创建UIViewController。 我们可以直接手写代码生成一个UIViewController也可以通过XIB生成一个UIViewController。通过- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle转载 2012-02-14 11:09:31 · 574 阅读 · 0 评论 -
CGContextRef用法
quartz 是主要的描画接口,支持基于路径的描画、抗锯齿渲染、渐变填充模式、图像、颜色、坐标空间变换、以及PDF 文档的创建、显示、和分析。UIKit 为Quartz 的图像和颜色操作提供了Objective-C 的封装。Core Animation 为很多UIKit 的视图属性声明的动画效果提供底层支持,也可以用于实现定制的动画。在调用您提供的drawRect:方法之前,视图对转载 2013-03-01 10:11:16 · 655 阅读 · 0 评论 -
设置NSZombieEnabled和MallocStackLogging
在XCode,4以上版本中,设置NSZombieEnabled和MallocStackLogging1.点击XCode的Product菜单,选择Edit Scheme...选项2.选择左侧的Run...,右边点击Arguments3.在Environment Variables栏里,添加NSZombieEnabled,value为YES;再添加MallocStackLogg转载 2013-03-19 11:08:50 · 1323 阅读 · 0 评论 -
Objective-C代码中,块(block)的使用
//int代码块 int mutl =7; int (^visenBlock)(int) = ^(int num){return num *mutl;}; NSLog(@"%d",visenBlock(4)); //nsstring代码块 void (^visenPrintString)(NSString *str) = ^(N转载 2013-03-19 11:36:26 · 997 阅读 · 0 评论 -
iOS图片裁剪,绘制背景色
1 iOS裁剪图片- (UIImage *)croppedImage:(UIImage *)image{ if (image) { float min = MIN(image.size.width,image.size.height); CGRect rectMAX = CGRectMake((image.size.width转载 2013-03-21 10:01:42 · 2701 阅读 · 0 评论 -
ios扩展机制objc_setAssociatedObject,objc_getAssociatedObject
使用例子:首先导入头文件:#import 设置静态常量:static char alertinfokey;- (IBAction)showAlertAction:(id)sender { UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"title"message:@"warn"delegate:原创 2013-03-25 11:36:21 · 5332 阅读 · 0 评论 -
IOS 基础开发之 addSubview和insertSubview:atIndex: 区别
两者都是添加子视图,视图的添加都是以栈的方式,即后进先出。addSubview 是添加到最后,即最后一个进栈,显示在所有子视图的最上面。insertSubview:AtIndex:是根据索引添加到栈里面,可以根据需要添加到对应的栈的位置里面。下面两句效果一样:[self insertSubview:imageBlue atIndex:self.subviews.count]原创 2013-03-26 14:47:00 · 9201 阅读 · 1 评论 -
IOS 基础开发之 保留小数点后几位
NSLog(@"%f",roundf(1.23456789 * 1000) / 1000); NSLog(@"%.3f",1.2233444);打印结果: 1.235000 1.223原创 2013-03-28 14:13:47 · 11017 阅读 · 0 评论 -
IOS 基础开发之CGFloat和float的区别
CGFloat和float的区别,什么时候用哪一种?CGFloat is just a typedef for either float or double.The basic type for all floating-point values.typedef float CGFloat;// 32-bittypedef double CGFloat;// 64-b原创 2013-03-28 11:29:09 · 8577 阅读 · 1 评论 -
Xcode 4.5"Could not insert new outlet connection"的解决办法
1、关闭Xcode,重新打开,看能不能连接,一般情况能连接,如果不能连接,继续第二条。2、到~/Library/Developer/XCode/DerivedData目录中,找到用你的工程名字和一串字母连接起来命名的工程,删除这个文件夹。 重新打开Xcode,ok。参考:http://stackoverflow.com/questions/6703054/xcod原创 2013-04-23 10:16:30 · 1421 阅读 · 0 评论 -
objectIOS基础:深入理解Objective-c中@class的含义
深入理解Objective-c中@class的含义objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时, 如下面代码: A.h文件C代码 #import "B.h" @interface A : NSObject { B *b; } @end 为了简单起见:A类是引用类,B类是被引用转载 2013-04-15 09:21:25 · 1324 阅读 · 0 评论 -
armv6,armv7 ,armv7s 的整理笔记
armv 是指令集的意思,偏硬件。目前iphone5支持armv7s。The iPhone 5 will ship with and only run iOS 6.0. To coincide with the launch of iOS 6.0, Apple has seeded developers with a newer version of its development原创 2013-04-25 09:37:42 · 6015 阅读 · 0 评论 -
UIPageControl 小点图片更换
UIPageControl的subview中有UIImageView。遍历subview找到UIImageView类后,把他的image换成你的图片就行了NSArray *subView = self.subviews; for (int i = 0; i < [subView count]; i++) { UIImageView *dot = [su原创 2013-04-18 11:43:13 · 2441 阅读 · 0 评论 -
Math Functions 常用函数
//指数运算NSLog(@"%.f", pow(3,2) );//result 9NSLog(@"%.f", pow(3,3) );//result 27//开平方运算NSLog(@"%.f", sqrt(16) );//result 4NSLog(@"%.f", sqrt(81) );//result 9//上舍入NSLog(@"res: %.f"原创 2013-04-18 11:27:55 · 1643 阅读 · 0 评论 -
如何向UITableView 添加分组,右侧索引/搜索
只需要实现UITableView的回调方法即可:- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { return keys;}原创 2013-04-17 10:03:28 · 2332 阅读 · 0 评论 -
一键生成AppIcon 多种尺寸图标
在我们开发APP的时候,客户总是不停地修改APPicon,感觉总是很麻烦。推荐大家使用一个一键生成的工具:http://www.makeicon.cc/,请测可以使用,瞬间感觉轻松了很多。原创 2018-01-17 11:21:59 · 7229 阅读 · 0 评论