- 博客(39)
- 收藏
- 关注
原创 iOS Keywords
Keyword Description atomic atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。 nonatomic 非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高
2016-02-29 10:06:39
805
原创 NSUserDefaults写入和读取自定义的对象
需要写入的对象必须实现NSCoding protocolPerson.h#import #import "Face.h"@interface Person : NSObject @property (nonatomic, strong) NSString *personId;@property (nonatomic, strong) NSString *n
2014-06-21 20:53:24
948
原创 Apple Swfit UI控件实现
Swift 实现所有UI,不下载你会后悔的~~下载地址:https://github.com/HunkSmile/Swift.git
2014-06-05 11:18:58
3908
1
原创 CAAnimation Class Reference
Archiving Properties- (BOOL)shouldArchiveValueForKey:(NSString *)key;判断对于一个给定的键值,指定的属性的值是否归档。Providing Default Values for Properties+ (id)defaultValueForKey:(NSString *)key;获取对应指定Key的默认值。
2013-11-29 11:08:13
1224
原创 UIKit Function Reference
CGContextRef UIGraphicsGetCurrentContext(void);UIGraphicsAddPDFContextDestinationAtPointUIGraphicsSetPDFContextDestinationForRectUIGraphicsSetPDFContextURLForRectUIAccessibilityRequestGuidedAccessSession
2013-11-22 10:30:53
6386
原创 UIResponder详解
UIResponder Class ReferenceManaging the Responder Chain1.- (UIResponder *)nextResponder返回接收者的下一个相应,如果没有就返回nilUIResponder类不自动存储和设置下一个响应者,而是默认返回nil。子类必须override这个方法来设置下一个响应者。UIView实现了这个方法,因为可以
2013-07-31 16:38:33
13382
原创 NSObject详解
NSObject Class ReferenceInitializing a Class+ (void)initialize一个类的实例在使用前需要先初始化
2013-07-15 19:37:47
15100
原创 UIWebView详解
UIWebView详解- (void)loadRequest:(NSURLRequest *)request异步加载内容,可以从服务器和本地读取
2013-07-10 17:29:20
18382
原创 判断iOS设备的PUSH通知设置状态(打开。。。/关闭)
typedef NS_OPTIONS(NSUInteger, UIRemoteNotificationType) { UIRemoteNotificationTypeNone = 0, UIRemoteNotificationTypeBadge = 1 << 0, UIRemoteNotificationTypeSound = 1 << 1, UIRe
2013-05-07 15:06:47
10019
原创 iOS 替代UDID解决方案--UUID
#import @interface UUID : NSObject{}@property (nonatomic, readonly, retain) NSString *UUIDString;+ (UUID *)sharedUUID;@end#import "UUID.h"#define UUID_KEY (@"MobileUUID")static UUID
2013-05-07 11:21:20
4611
转载 如何使用NSFetchedResultsController
不知不觉我们已经来到了Core Data系列教程的最后一部分了,在这里我们要讨论如何使用NSFetchedResultsController来优化我们的应用,提高应用的运行速度,减少其内存占用。 你是不是已经忘记了以前讲过什么呢?我们来复习一下,在第一篇教程中:《iOS教程:Core Data数据持久性存储基础教程》中我们讲了如何为一个iOS程序创建一个Core Data的数据模型和测
2012-12-05 15:30:49
5775
转载 CATransform3D 矩阵 m11–m44每个的含义
struct CATransform3D{CGFloat m11(x缩放), m12(y切变), m13(), m14();CGFloat m21(x切变), m22(y缩放), m23(), m24();CGFloat m31(), m32(), m33(), m34(透视效果,要操作的这个对象要有旋转的角度,否则没有效果。当然,z方向上得有变化才
2012-11-01 10:48:29
1522
原创 UIImagePickerController
http://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more
2012-10-31 14:25:11
586
转载 ios中如何解析xml文件
ios中如何解析xml文件两种方法:1.ios中已有的NSXMLParse类 2.Google的GDataXML也是基于libxml2的,因此在使用GDataXML之前,你需要先导入libxml2。这里详解ios中的nsxmlparse:NSXMLParser 实现的是sax方法解析xml文件。dom实现的原理是把整个xml文档一
2012-10-31 14:24:13
757
转载 定位与地图
个人觉得地理位置这部分的知识其实是相当有趣的。说到定位其实在大多数的社交软件中都有这样的一个功能,用户可以共享自己的位置并且查看其他用户的位置,从而更容易地结交一些附近或者在同一地区的朋友,又或者在地图上显示自己的当前位置,并且显示附近的餐厅或者咖啡厅。这些功能看起来是挺复杂,但在实际的开发过程中,iOS为我们封装了大部分的功能,让我们不需要学习太底层的知识,通过他提供的两个库就能轻松实现。接下来
2012-10-23 17:51:41
1356
转载 In-App Purchase编程指南
IAP简介在应用中内嵌Store,在iOS应用中使用Store Kit framework来实现In-App Purchase。Store Kit会连接App Store,代替应用安全地完成用户支付。Store Kit提示用户授权支付,然后通知应用“用户已经完成支付”,这样应用就可以提供用户购买的东西。使用iap可以为应用的增强功能,或额外内容进行收费,如以下场景:
2012-10-23 17:49:01
8750
原创 开门动画
使用方式:DoorView *doorView = [[DoorView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0) door:[UIImage imageNamed:@"Default.png"]];[doorView setD
2012-09-29 16:55:00
2376
原创 单侧开门动画
UIImageView *coverView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, -20.0, 320.0, 480.0)]; [coverView setImage:[UIImage imageNamed:@"Default.png"]]; [coverView setCenter:CGPoin
2012-09-29 16:51:13
1548
原创 NSUserDefaults详解
NSUserDefaults类概述NSUserDefaults类为和默认的系统进行交互提供了一个系统编程接口。默认的系统允许一个应用来定制它的行为以适应用户的喜好。例如,你可以允许用户去决定你的应用程序显示什么样的计量单位或者文件多少时间自动保存。应用程序在用户默认的数据库里分配记录的参数值。这些参数被作为默认值,因为他们通常用于确定一个用用程序在启动时的默认状态或者默认状态的作用方式。
2012-09-11 15:22:01
14175
1
原创 NSArray详解
- (NSUInteger)count;获取NSArray中对象的个数- (id)objectAtIndex:(NSUInteger)index;获取NSArray中index位置的对象- (NSArray *)arrayByAddingObject:(id)anObject;把anObject添加到数组的末尾- (NSArray *)arrayByAdding
2012-08-10 15:10:06
6646
原创 NSArray的排序方法
1.sortedArrayUsingSelector(按Key值大小对NSDictionary排序)NSMutableArray *array = [NSMutableArray arrayWithObjects: [NSDictionary dictionaryWithObjectsAndKeys:@"Obj0", [NSNumb
2012-08-09 19:30:47
18658
原创 iOS添加自定义自体 [UIFont fontWithName: size:]
1.添加对应的自体文件(.ttf或.otf等)到工程目录下,比如:SIMKAI.TTF2.在-info.plist文件中添加一项Fonts provided by application,item0对应的value为SIMKAI.TTF,多个自体依次添加即可。3.使用 [UIFont fontWithName: size:]来设置自体,fontWithName的参数不一定是SIMKAI,这
2012-08-08 14:52:52
5451
原创 获取设备mac地址
- (NSString *)macaddress{ int mib[6]; size_t len; char *buf; unsigned char *ptr; struct if_msghdr *ifm; struct sockaddr_dl
2012-08-06 16:48:01
923
转载 EXC_BAD_ACCESS iOS内存错误
由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能。我们都需要自己管理和控制对象的回收,这是一件很麻烦的事情,也是做iOS项目中最容易出现的问题。如果不掌握这些方法,调试这些问题几乎没有头绪。1、EXC_BAD_ACCESS内存错误与NSZombieEnabledEXC_BAD_ACCESS是最常见的错误了,这个一般是访问了释放了的内存地址空间造成的。比如一
2012-08-06 10:54:46
1250
原创 设计模式
一、策略模式策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。设计原则1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合在一起。2.针对接口编程,而不是针对实现编程。3.多用组合,少用继承。二、观察者(Observer)模式观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变
2012-07-30 17:41:59
711
原创 修改UITabBar的背景图片
1. UIImageView *tabBarBgView = [[UIImageView alloc] initWithFrame:_tabBarController.view.bounds]; [tabBarBgView setImage:[UIImage imageNamed:@"menu_bar.png"]]; [tabBarBgView setContentMod
2012-07-30 15:09:03
1573
原创 Corrupt Icon File - The icon file icon@2x.png appears to be corrupt.
Dear developer,We have discovered one or more issues with your recent delivery for "通讯小秘". To process your delivery, the following issues must be corrected:Corrupt Icon File - The icon fil
2012-07-17 22:38:38
965
原创 时间戳与时间的相互转换
目前来看时间戳是一个10位数(小数点之前) double类型的,如果是13位数,那么需要除以1000#pragma mark -#pragma mark timeStringFromTimeInterval时间戳-->时间- (NSString *)timeStringFromTimeInterval:(NSTimeInterval)timeInterval{ NSD
2012-07-04 09:06:43
1956
原创 [解决方案]应用程序帮助导航
现在有很多应用程序第一次启动的时候都有一个左右滑动的帮助导航,这些导航往往是介绍应用程序的新功能。新应用在第一次启动时或者新版本升级完第一次启动时就显示。解决方法就是先检测是不是当前版本的第一次启动。1.获取应用版本,对版本号进行判断看看是不是最新版本;NSString* versionString = [[NSBundle mainBundle] objectForInf
2012-06-27 15:47:29
706
原创 iOS打印Debug日志的方式
简单介绍以下几个宏:1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。2) __FILE__ 宏在预编译时会替换成当前的源文件名3) __LINE__宏在预编译时会替换成当前的行号4)
2012-06-19 11:08:43
7614
原创 iOS图标尺寸总结
尺寸大小用途适用设备备注512x512用于AppStore商品大图显示无 144x144应用程序高清图标显示iPad(3代以上) 114x114应用程序高清图标显示iPhone/iPod touch(4代以上) 72x72应用程序图标显示iPad 58x58spotlight
2012-06-12 23:29:33
1459
原创 Objective-C中@property与@synthesize
OC中的关键字,@property与@synthesize配对使用。语法:@property (参数1,参数2) 变量类型 变量名@synthesize 变量名功能:让编译器自动编写一个与数据成员同名的方法声明,这样可以省去声明读写方法。例如:// 在头文件中@property NSInteger number;
2012-06-12 21:59:43
1553
转载 使用Settings Bundle为程序添加设置项
Settings Bundle是在自己的程序中建立的一组文件,利用它可以告诉设备中的Settings程序我们写的程序有哪些设置项。用户在Settings程序中设置好相关相关选项后回到我们自己的程序,自己的程序中的对应项也会发生相应的变化。在iOS程序中,用户默认项,即上面所说的设置项,是用NSUserDefaults类实现的。在NSUserDefaults类中使用关键字来读取和存储设置项的具体
2012-06-11 21:38:32
614
转载 通过归档永久存储数据
想要永久保存数据,我们当然可以使用plist文件,当退出程序时,我们执行将数据写入plist文件的操作,使用writeToFile:atomically:方法。具有这个方法的类有:NSArrayNSMutableArrayNSDictionaryNSMutableDictionaryNSDataNSMutableDataNSStringNSMutableStringNSNu
2012-06-11 21:33:50
744
转载 SandBox的结构
在模拟器中运行iOS程序,都会为该程序创建一个沙盒(SandBox)。首先声明,我用的系统是Max OS X 10.7.3,编译器是Xcode 4.3.2。想要找到沙盒目录,先运行Finder,然后在Finder的菜单栏找到前往—前往文件夹…,在打开的窗口输入/Users/UserName/Library/Application Support/iPhone Simulator/其中,Us
2012-06-11 21:23:40
654
原创 SQLite
SQLite 里最常用的就是 sqlite3* 类型,从数据库打开开始,sqlite就要为这个类型准备好内存,直到数据库关闭,整个过程都要用到这个类型,从数据库打开开始,这个类型的变量就代表了你要操作的数据库。sqlite3 *database;不要忘记在工程中加入库文件libsqlite3.dylib和头文件#import1.打开数据库int sqlite3_op
2012-06-11 14:59:19
1635
原创 iOS手势UIGestureRecognizer
UIGestureRecognizer是一个抽象类,定义了所有手势的基本行为,它有6个子类处理具体的手势:1.UITapGestureRecognizer (任意手指任意次数的点击)// 点击次数numberOfTapsRequired// 手指个数numberOfTouchesRequired UITapGestureRecognizer *tap
2012-06-11 14:39:32
10959
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人