
IOS
文章平均质量分 58
a_ss_a
要坚持 总有一天会变成心里的那个自己 ---------7.12
展开
-
16进制转化为颜色
16进制转化为相应的颜色的宏#define UIColorFromRGB(rgbValue,A) [UIColor colorWithRed:((float)((rgbValue &0xFF0000) >> 16))/255.0 green:((float)((rgbValue &0xFF00) >> 8))/255.0 blue:((float)(rgbValue &原创 2016-06-08 11:55:30 · 481 阅读 · 0 评论 -
将敏感字用“*”代替
// 存取敏感字的数组 NSMutableArray *array = [[NSMutableArrayalloc]init]; //向敏感字数组里添加元素 NSString *element1 = @"敏感字"; NSString *element2 = @"我"; [array addObje原创 2014-08-09 10:20:04 · 1202 阅读 · 0 评论 -
iOS 面试题(九)
Objective-C有私有方法么?私有变量呢?如多没有的话,有没有什么代替的方法? OC中没有私有方法,有私有变量 私有方法可以用category(类目)extension(延展)来代替 2 #import、#include和@class有什么区别 #include #include“x.h”用户自定义的文件引原创 2014-08-08 11:11:50 · 803 阅读 · 0 评论 -
iPhone SDK 包含哪些东西?
iPhone SDK 包含哪些东西?第一部分:在使用Intel芯片的Macintosh计算机开发iOS应用程序所需的全部接口、工具以及资源全都包含于iPhone SDK。苹果公司将大部分系统接口发布在框架这种特殊的数据包。一个框架就是一个目录,它包含一个动态共享库以及使用这个库所需的资源(例如头文件、图像以及帮助应用程序等)。如果要使用某个框架,则需要将其链接到应用程序转载 2014-08-08 14:35:05 · 677 阅读 · 0 评论 -
GCD
GCD是苹果开发的一种支持并行操作的机制, 它的主要部件是一个FIFO队列和一个线程池,前者用来添加任务,后者用来执行任务。GCD中的FIFO队列称为dispatch queue 它可以保证先进来的任务先得到执行(但不一定先执行结束) 通过个线程池的配合,dispatch queue分为以下两种情况:Serial Dispatch Queue 线程池只提供一个线程用来执行任原创 2014-08-21 01:24:16 · 611 阅读 · 0 评论 -
iOS AddressBook
一.基本知识和通讯录中联系人相关的应用iPhone提供了两个框架:AddressBook.framework和AddressBookUI.framework,使用这两个框架我们可以在程序中访问并显示iPhone数据库中的联系人信息。二.具体介绍1.AddressBookUI显示部分AddressBookUI中提供了和联系人显示信息相关的一些Controller,有四个:ABPe转载 2014-08-02 09:41:04 · 668 阅读 · 0 评论 -
开发中实用的代码片段
1.判断邮箱格式是否正确的代码://利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWi转载 2014-07-29 11:04:00 · 440 阅读 · 0 评论 -
iOS 面试题总结 (一)持续更新
1.简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic,atomic,strong,weak属性的作用?答:OC中内存管理机制应该就是引用计数的增减,retainCount为原创 2014-07-30 19:24:56 · 729 阅读 · 0 评论 -
ios设备唯一标识获取策略
英文原文:In iOS 7 and later, if you ask for the MAC address of an iOS device, the system returns the value 02:00:00:00:00:00. If you need to identify the device, use the identifierForVendor property of UI转载 2014-07-31 19:10:11 · 611 阅读 · 0 评论 -
堆和栈的区别详解
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教转载 2014-07-31 19:27:10 · 522 阅读 · 0 评论 -
iOS开发中需要注意的一些小细节
Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。如果你的项目使用的非 ARC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签。如果你的项目使用的是 ARC 模式,则为非 ARC 模式的代码文件加入 -fno-objc-arc 标签。2 使用数据库注意导入路径:/usr/include/libxml23 打开终端(在应用原创 2014-07-28 09:33:15 · 497 阅读 · 0 评论 -
IOS 单击图片全屏显示并存储到本地相册
在一次练习中用到的 很简单原创 2014-07-13 18:48:18 · 867 阅读 · 0 评论 -
iOS 面试题(七)
简述你对UIView、UIWindow和CALayer的理解 UIView 是用来显示内容的视图,可以处理用户事件 CALayer是用来绘制内容的,对内容进行动画处理依赖UIView进行显示,不能处理用户事件 UIView来自CALayer,高于CALayer,是CALayer高层实现与封装。 UIView的所有特性来源于 CALayer支持原创 2014-08-06 21:53:42 · 911 阅读 · 0 评论 -
iOS 面试题(六)
回答person的retainCount值,并解释为什么Person * per = [[Person alloc] init];self.person = per;1 或者2 看对象用什么属性修饰,Person类对象在创建的时候引用计数加1,若用 assign类不会使引用计数加1的属性修饰 person的retainCount= 1 ; 若使用retain类会使引用计数增加的属原创 2014-08-06 09:57:59 · 511 阅读 · 0 评论 -
线程同步
线程同步应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。比如,一个线程可能覆盖其他线程改动的地方,或让应用程序进入一个未知的潜在无效状态。如果你幸运的话,受损的资源可能会导致明显的性能问题或崩溃,这样比较容易跟踪并修复它。然而如果你不走运,资源受损可能导致微妙的错误,这些错误不会立即显现出来,而是很久之后才出现,或转载 2014-07-30 18:22:39 · 466 阅读 · 0 评论 -
三种iOS多线程实现的方法
第一种,使用@synchronized(self) static LocationController *sharedInstance;+ (LocationController *)sharedInstance { @synchronized(self) { if (!sharedInstance) sharedInstance=[[Locat转载 2014-07-30 17:32:18 · 582 阅读 · 0 评论 -
文字转化成语音
转的语音效果太生硬了,感觉不是很好!上代码吧~~导入AVFoundation框架引入头文件 #import AVSpeechSynthesizer *av = [[AVSpeechSynthesizer alloc]init]; AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc]initWithSt原创 2014-07-30 21:30:16 · 807 阅读 · 0 评论 -
两个APP之间实现跳转
一个程序若要跳到另一个程序。需要在目标程序的plist文件里面修改:打开info.plist,添加一项URL types展开URL types,再展开Item0,将Item0下的URL identifier修改为URL Scheme展开URL Scheme,将Item0的内容修改为myapp(此为跳转的key)。然后在原程序里面,要开始跳转的地方,可以为一个bu原创 2014-07-28 09:58:19 · 2122 阅读 · 0 评论 -
IOS 多语言支持,应用程序国际化
多语言在应用程序中一般有两种做法:一、程序中提供给用户自己选择的机会;二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点:1.本地化应用程序名称2.本地化字符串3.本地化图片4.本地化其他文件1.本地化应用程序名称(1)程序自动生成InfoPlist.strin转载 2014-07-20 20:43:08 · 962 阅读 · 0 评论 -
沙盒路径
Documents 苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候包括此目录Library 存储程序的默认设置或其他状态信息Library/Catches 存放缓存文件,此目录不会在应用退出删除,iTunes不会备份此目录tmp 提供一个即时创建临时文件的地方获取程序的Home目录NSString *h翻译 2014-08-07 21:23:47 · 658 阅读 · 0 评论 -
xcode升级 插件修复
第一步:defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID如:zhaoshanshan:~ aaa$ defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID收到UUID原创 2015-12-22 16:18:49 · 527 阅读 · 0 评论 -
滚动CollectionView控制PageControl实现分页浏览的效果
滚动CollectionView控制PageControl实现分页浏览的效果原创 2015-08-19 19:38:05 · 12855 阅读 · 0 评论 -
类名前自动添加前缀
第一步: 选中工程如下第二步:在XCode最右侧的栏目里面会看到如下界面第三步:修改 Class Preflx原创 2015-12-22 11:09:15 · 1859 阅读 · 0 评论 -
UICollectionView在初始化的时候移动到某个距离
UICollectionView在初始化的时候移动到某个距离,使用场景:选中非第一张图片用CollectionView进行浏览时,CollectionView滑动到相应的位置原创 2015-08-19 20:32:32 · 2513 阅读 · 0 评论 -
present出ViewController的页面为透明的
present出ViewController的页面为透明的原创 2015-08-19 20:07:08 · 2215 阅读 · 0 评论 -
Swift(三)
// 类和结构体// 在Swift中对结构体进行了很多的加强,和类有很多共同点 1都可以定义属性 也可以定义方法 2定义构造器和OC中构造方法(init)类似 3都可以扩展 4 都遵循协议// 不同点 1 结构体是值类型 类是引用类型的 2结构体不可以被继承 类可以继承 3类可以进行类型判定 例如OC中的isKindOfClass 4类原创 2014-08-12 18:47:08 · 592 阅读 · 0 评论 -
iOS 面试题总结 (二)
假设有一个字符串aabcad,请写一段程序,去掉字符串中不相邻的重复字符串,即上述字符串处理之后的输出结果为:aabcdNSMutableArray *marry = [[NSMutableArray alloc]init]; for (int i = 0; i unsigned char a = [str characterAtIndex:i]; fo原创 2014-07-31 21:10:27 · 641 阅读 · 0 评论 -
iOS 面试题 (四)
什么是序列化和反序列化,可以用来做什么?如何在OC中实现复杂对象的存储? 把对象转换为字节序列的过程称为对象的序列化 把字节序列恢复为对象的过程称为对象的反序列化 可以用来将对象写到文件或者数据库里,并且可以读取出来 ; 遵循NSCoding协议,来实现复杂对象的存储 实现该协议后就可以对其进行打包或者解包,然后转化为NSData原创 2014-08-02 22:00:10 · 716 阅读 · 0 评论 -
iOS 面试题(十二)
1 应用程序如何省电 iOS的电能管理系统保持电能的方法是关闭当前未使用的硬件功能。应用程序可以通过以下组件达到省电的目的:CPU WiFi和基带(EDGE,3G)无线信号 Core Location框架 加速计 磁盘 您的优化目标应该是以尽可能有效的方式完成大多数的工作。您应该总是采用Instruments和Shark工具对应用程序的算法进行优化。但是,很重要的一点,原创 2014-08-12 18:26:00 · 777 阅读 · 0 评论 -
iOS 面试题(十一)
1 请写出代码,用blocks来取代上例中的protocol,并比较两种方法的优势。实际应用部分?请写出代码,用blocks取代协议或回调方法 委托和Block是iOS上实现回调的两种机制。BLock基本可以代替委托的功能,而且实现起来比较简洁,比较推荐能用Block的地方不要用委托 TimerControl.h文件 // 委托的协议定义 @protoc原创 2014-08-10 23:18:29 · 1237 阅读 · 0 评论 -
Swift(二)
import Foundation原创 2014-08-12 11:58:55 · 587 阅读 · 0 评论 -
String与StringBuilder的区别
00String与StringBuilder的区别[C#] String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System转载 2014-08-11 19:26:47 · 474 阅读 · 0 评论 -
iOS多任务详解
iOS多任务1 检查设备是否支持多任务 通过UIDevice对象的multitaskingSupported属性来获取当前设备是否支持多任务if(![UIDevice currentDevice].multitaskingSupported){ // 不支持多任务时应该做的处理}2 基本多任务特性通常当用户按下Home键,当前应用就会进入后台,应用程序在后台运行状态一转载 2014-08-12 00:54:43 · 886 阅读 · 0 评论 -
Swift(一)
// mian函数作为主入口此函数木有// 输出自动换行import Foundationprintln("Hello, World!")println("输出需要加双引号")// Swift语句后面没有分号,但是可以使用// 在Swift中,定义一个变量需要使用 var 常量需要使用 let/原创 2014-08-11 18:12:01 · 874 阅读 · 0 评论 -
iOS 面试题(十)
如何将产品进行多语言发布? 在工程InfoPlist.strings中添加发布时需要的语言,并在Info.plist中添加新的属性Application has localized display name 设置类型为boolean并将value设置为YES 创建”.strings”文件进行字符串 图片和其他文件的多语言处理 2 如何将敏感字变成** //原创 2014-08-09 10:52:07 · 834 阅读 · 0 评论 -
iOS内存使用陷阱
iOS内存使用陷阱在iPhone开发过程中,代码中的内存泄露我们很容易用内存检测工具laeks检测出来,并改之,但有些是因为iOS的缺陷和用法上的错误,leaks检测工具并不能检测出来。以下情况需要注意一 [UIImage imageNamed:]只适合与UI界面中贴图的读取,较大的资源文件应该尽量避免使用用UIIMage加载本地图像最常用的是下面三种:1 用image转载 2014-08-08 18:11:05 · 621 阅读 · 0 评论 -
iOS 面试题(八)
重写一个NSStrng类型的,retain方式声明name属性的setter和getter方法 -(void)setName:(NSString *)name{ if(_name != name){ [_name retain]; [_name release]; _name = nam原创 2014-08-07 21:19:41 · 1053 阅读 · 0 评论 -
点击cell时 与cell颜色相关的设置
@property(nonatomic,getter=isSelected) BOOL selected; // 是否被选中如果是YES, 选中cell的时候, cell会变成蓝色, 让用户知道被选中了如果是NO, 点击cell手指不离开, cell还是会显示蓝色, 当手指离开后, 蓝色消失有时候cell只是起到展示信息的转载 2014-07-29 18:35:00 · 577 阅读 · 0 评论 -
block详解
一 。(一)定义和使用Block我们使用^运算子来定义一个block变数,而且在block的定义后面加上; 来表示一个完整的述句 1: int multiplier = 7 ; 2: int (^myBlock)( int ) = ^( int num) 3: { 4: return num * multiplier; 5: };我们定义一个「myBlo翻译 2014-07-30 01:14:44 · 594 阅读 · 0 评论 -
发短信
#pragma mark - 发短信(调用系统短信程序)/** * 这种方式的缺点是没办法从系统短信回到自己的应用程序 * 首先通过[[UIApplication sharedApplication]canOpenURL:[NSURL URLWithString:@"sms://"]]来判断当前的设备是否能跳转到系统的短信程序,如果能的话直接通过openUrl跳转到系统原创 2014-07-28 09:52:16 · 605 阅读 · 0 评论