一款编程语言标准库的设计理念,往往对这门编程语言给人的整体感觉有很大影响。好的标准库就好似语言本身的扩展一般,并且保证标准库内部的一致性可以有效提升整体的开发体验。为了搭建一个好的 Swift 标准库,Swift 3 的其中一个主要目标就是要定义一组 API 设计准则,并且始终如一地应用这些准则。
引言:当前使用资源文件存在的问题 先来看下目前如果我们要使用资源文件时代码是如何调用的:
最近在阅读温伯格的《程序员开发心理学》,这本44年前的书,其中的很多探索和观点,现在看来依然鲜活而不过时。它开创了以人为本的软件开发研究方法,是软件从业者思想启蒙的巨著,技术人生的必读经典。我在我的订阅号“程序视界”的每周一书栏目里推荐了它,回复10067可以查看。
UITouch 对象用于位置、 大小、 运动和一根手指在屏幕上为某一特定事件的力度。触摸的力度是从开始在 iOS 9 支持 3D 的触摸的设备上可用。你可以通过UIEvent对象传递给响应者对象访问。一个UITouch对象包括访问器
前言:iPhone是个极具艺术性的平台,相信大家在开发过程中一定有很多感触,希望能写出来一起交流,所以开了这个帖子,以后还会维护。 如果大家和我一样有感触的话,可以跟在帖子下面,最好简短并附上中英文:)
要想将用户数据或设置永久保存起来,不受 app 更新重新安装的影响,我们只能将这写数据保存在 userDefaults 中或 Documents 目录下,这两个地方在官方文档中得到明确的支持。 文档中如是说: /Documents/ 您应该将所有的应用程序数据文件写入到这个目录下。
// start by retrieving day, weekday, month and year components for yourDate NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
//保存当前view到相册 UIGraphicsBeginImageContext(currentView.bounds.size); //currentView 当前的view [currentView.layer renderInContext:UIGraphicsGetCurrentContext()];
- (NSString *) stringByAppendingRandomStringOfRandomLength; - (int) occurrencesOfString: (NSString *) aString; - (NSDate *) date; + (NSString *) commasForNumber: (long long) num;
string 转成 char: char mychar[100]; NSString * mystring; strcpy(mychar,(char *)[mystring UTF8String]);
#define NUMBERS @"0123456789\n" - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
//每个线段的两点都在另一个线段的左右不同侧,则能断定线段相交 //公式对于向量(x1,y1)->(x2,y2),判断点(x3,y3)在向量的左边,右边,还是线上. //p=x1(y3-y2)+x2(y1-y3)+x3(y2-y1).p<0 左侧, p=0 线上, p>0 右侧
//计算点到线段的最短距离 double x1, y1, x2, y2, x3, y3; double px = x2 - x1; double py = y2 - y1; double som = px * px + py * py; double u = ((x3 - x1) * px + (y3 - y1) * py) / som;
// 是否高清屏 #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)