oc

文顶顶iOS开发博客链接整理及部分项目源代码下载

心已入冬 提交于 2020-01-31 05:08:54
网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找。如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作。有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获。 在此也向@文顶顶 表示严重感谢! 源码请加群539156631下载 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,故专门整理了跟iOS开发的全部链接,方便快速查阅。 OC语言前期准备 - 文顶顶 - 博客园 OC语言基础知识 - 文顶顶 - 博客园 OC方法和文件编译 - 文顶顶 - 博客园 OC内存管理 - 文顶顶 - 博客园 OC面向对象—封装 - 文顶顶 - 博客园 OC面向对象—继承 - 文顶顶 - 博客园 OC面向对象—多态 - 文顶顶 - 博客园 OC点语法和变量作用域 - 文顶顶 - 博客园 OC语言@property @synthesize和id - 文顶顶 - 博客园 OC语言构造方法 - 文顶顶 - 博客园 OC语言类的本质和分类 - 文顶顶 - 博客园 OC语言description方法和sel - 文顶顶 - 博客园 foundation框架—结构体 - 文顶顶 - 博客园

oc拨打电话方法

你。 提交于 2020-01-27 09:28:30
1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示 NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"电话"]; // NSLog(@"str======%@",str); [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]; 2,这种方法,打完电话后还会回到原来的程序,也会弹出提示,推荐这种 NSMutableString * str=[[NSMutableString alloc] initWithFormat:@"tel:%@",@"电话"]; UIWebView * callWebview = [[UIWebView alloc] init]; [callWebview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:str]]]; [self.view addSubview:callWebview]; [callWebview release]; [str release]; 3,这种方法也会回去到原来的程序里,也会弹出提示 NSMutableString * str=[

OC生成二维码

余生长醉 提交于 2020-01-26 14:29:01
1.先 #import <CoreImage/CoreImage.h> 2. //本地生成二维码 // 1.创建过滤器 -- 苹果没有将这个字符封装成常量 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2.过滤器恢复默认设置 [filter setDefaults]; // 3.给过滤器添加数据(正则表达式/帐号和密码) -- 通过KVC设置过滤器,只能设置NSData类型 NSString *dataString = @"www.baidu.com"; NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; [filter setValue:data forKeyPath:@"inputMessage"]; // 4.获取输出的二维码 CIImage *outputImage = [filter outputImage]; self.CodeImageView.image = [UIImage imageWithCIImage:outputImage]; self.QRCodeImageView.image = [self createNonInterpolatedUIImageFormCIImage

Objective-C中的Block(闭包)

纵饮孤独 提交于 2020-01-25 10:41:18
转自http://www.cnblogs.com/ludashi/p/3903054.html?utm_source=tuicool&utm_medium=referral 学习OC有接触到一个新词Block(个人感觉又是一个牛气冲天的词),但不是新的概念,不是新的东西。学过Javascript的小伙伴对闭包应该不陌生吧~学过PHP的应该也不陌生,在PHP5.3版本以后也支持闭包, 也就是OC中所提到的Block。 到底什么是闭包或者block呢?用大白话说就是匿名函数,也就是在函数中可以包含这函数。就是在函数中可以定义匿名函数然后在函数中调用。学习OC中的block之前也小担心一下,Block在OC中属于高级的部分,心里有又有个疑问:学起来难不难?看过Block的部分,感觉Block挺好理解的,用起来也挺顺手的,Block没我想象中的那么难理解。 废话少说,学习一门新的编程语言是少不了代码量的支持的,所以代码是少不了的。下面就通代码来认识一下OC中的block的使用。 Block基础部分 1.Block的声明 Block的定义和函数的声明差不多,就是把函数名改成(^blockName)即可。下面是block声明的代码。 有返回值的 1 int (^sumBlock) ( int , int ); 无返回值的 1 void (^myBlock)( int , int ); 2

Swift和Objective-C相互调用

早过忘川 提交于 2020-01-25 05:20:02
1.Swift调用ObjectiveC 1.1创建OC类 //testObject.h文件 #import <Foundation/Foundation.h> NS_ASSUME_NONNULL_BEGIN @interface testObject : NSObject -(void)seyHello; @end NS_ASSUME_NONNULL_END //testObject.m文件 #import "testObject.h" @implementation testObject -(void)seyHello{ NSLog(@"seyHello-from Objective-C"); } @end 1.2创建桥接文件 在Swift工程内想要调用OC是相对比较容易的,只需在桥接文件中导入想要调用的OC类即可。 当在Swift工程中创建完成OC类的时候,系统会提示我们是否创建桥接文件,这个时候一定要选择创建,否者我们自己创建需要设置路径。 如果系统提示时未创建桥接文件或未提示,可以根据下面步骤创建桥接文件 创建一个Header File文件,一般命名为“项目名-Bridging-header”,内容清空,找到Build Settings搜索Objective-c Bridging header,将刚刚创建的桥接文件的路径添加到Objective-c Bridging

iOS开发-OC语言 (一)oc数据类型

浪尽此生 提交于 2020-01-24 04:55:03
分享一套以前学习iOS开发时学习整理的资料,后面整套持续更新 : oc 数据类型 数据类型:基本数据类型、指针数据类型 基本数据类型:数值型、字符型(char)、布尔型、空类型(void) 指针数据类型:类(class)、id 数值型:整数类型int、浮点型float、double c 和 oc 的基本数据类型 int:声明整型变量 double:声明双精度变量 float:声明浮点型变量 char:声明字符型变量 id:通用的指针类型 enum:声明枚举类型 long:声明长整型变量或函数 short:声明短整型变量或函数 signed:声明有符号类型变量 struct:声明结构体变量 union:声明共用体(联合)数据类型 unsigned:声明无符号类型变量 void:声明函数无返回值或无参数 数据类型格式化说明符 数据类型 oc关键字 格式说明引导符 整型 int %d.%i 短整型 short int %hd.%hi 长类型 long int %ld.%li 无符号短整型 unsigned int %u 无短整型 unsigned short %hu 无符号长整型 unsigned long %lu 浮点型 float %f 双精度型 double %f 长双精度型 long double %lf 字符型 char %c 具体的数据类型 整数类型

iOS_OC判空:NULL、nil、Nil、NSNull

主宰稳场 提交于 2020-01-22 05:55:40
NULL = (void *)0 C指针的字面空值 nil = (id)0 OC对象的字面空值 Nil = (Class)0 OC类的字面空值 NSNull = [NSNull null] 空值的OC对象 具体如下: //1. NULL //表示C的指针空值 int *pointerToInt = NULL; char *pointerToChar = NULL; struct TreeNode *rootNode = NULL; // 2. nil // 表示指向OC对象的指针为空 NSString *str = nil; NSURL *url = nil; id obj = nil; if (obj == nil) { // todo ... } // 3. Nil // 表示只想OC类 类型的指针为空 Class class = Nil; Class class2 = [NSString class]; // 4. NSNull:一个OC对象,用于表示空值的类 // 只有一个单例方法:+ (NSNull *)null; // 一般用于集合对象中保存一个空的占位对象: \ 因为Foundation集合对象中,nil通常被用于表示集合对象结束的标志,\ 因此无法用nil来存储一个空值,所以一般用[NSNull null]来存 // 例1:当 NSArray 里遇到 nil 时

OC 知识梳理-block(1)

孤者浪人 提交于 2020-01-20 00:30:58
BLock 类型 Block可以捕获外界变量 copy 001 栈 Block int a = 10; NSLog(@"%@",^{ NSLog(@"hello world ----%d",a); }) NSLog(@"%@",block); 002 堆 Block int a = 10; void (^block)(void) = ^{ NSLog(@"hello world ----%d",a); } NSLog(@"%@",block); 003 全局 Block void (^block)(void) = ^{ NSLog(@"hello world"); } NSLog(@"%@",block); =是操作符 循环引用:A和B相互持有 都等着对方发送retaincount=0的指令 self.block = ^{ self.name = @"hello"; } 这会导致循环引用 解决版本1 __weak typeof(self) weakSelf = self; self.block = ^{ weakSelf.name = @"hello"; } 解决版本2 __strong typeof(self) strongSelf = self; self.block = ^{ strongSelf.name = @"hello"; } 个人理解

C++/OC 混编

懵懂的女人 提交于 2020-01-16 06:31:55
Objective-C和C++混编的要点 在 Objective-C++中,可以用C++代码调用方法也可以从Objective-C调用方法。在这两种语言里对象都是指针,可以在任何地方使用。例 如,C++类可以使用Objective-C对象的指针作为数据成员,Objective-C类也可以有C++对象指针做实例变量。下例说明了这一点。 注意:Xcode需要源文件以".mm"为扩展名,这样才能启动编译器的Objective-C++扩展。 C++词汇歧义和冲突 OC头文件中定义了一些标识符,所有的OC程序必须包含的,这些标识符识id,Class,SEL,IMP和BOOL。 OC方法内,编译器预声明了标识符self和super,就想C++中的关键字this。跟C++的this不同的是,self和super是上下文相关的;OC方法外他们还可以用于普通标识符。 协议内方法的参数列表,有5个上下文相关的关键字(oneway,in,out,inout,bycopy)。这些在其他内容中不是关键字。 从 OC程序员的角度来看,C++增加了不少新的关键字。你仍然可以使用C++的关键字做OC selector的一部分,所以影响并不严重,但你不能使用他们命名OC类和实例变量。例如,尽管class是C++的关键字,但是你仍然能够使用 NSObject的方法class: [foo class]; // OK

网络技术知识点汇总

回眸只為那壹抹淺笑 提交于 2020-01-14 14:56:28
网络技术知识点汇总 计算类选择题 1.问传输速度 ①OC-3=155.520Mbps; ②OC-12=622.080Mbps; 方法:这类题目只需要记住 OC-1=51.84Mbps 即可计算。 2.求交换机带宽 ①一台交换机具有 48 个 10/100Mbps 端口和 2 个 1000Mbps 端口,如果所有端口都工作在全双工状态,那么交换机总带宽应为()。 A)8.8Gbps B)12.8Gbps C)13.6Gbps D)24.8Gbps ②两台交换机分别有 16 个和 8 个 100/1000Mbps 全双工下联端口,它们的上联端口带宽至少为()。 A)8Gbps 和 4Gbps B)16Gbps 和 8Gbps C) 2Gbps 和 16Gbps D) 4Gbps 和 32Gbps 方法:题目中不管要求交换机总带宽还是上联端口带宽,均用公式:端口数*端口速率*2(不同层级的互联是 1:20,汇聚层→核心交换层是 1:20,同层还是 1:1)。 3.系统可用性 ①系统可用性 99.9%→停机时间≤8.8 小时; ②系统可用性 99.99%→停机时间≤53 分钟; ③系统可用性 99.999%→停机时间≤5 分钟; 方法:记住系统可用性与停机时间的对应关系; 4.子网掩码 IP 地址块 10.15.15.136/12 的子网掩码可写为()。 A)255.224.0.0 B