教程 OpenGLES入门教程1-Tutorial01-GLKit OpenGLES入门教程2-Tutorial02-shader入门 OpenGLES入门教程3-Tutorial03-三维变换 - (void)addParticleAtPosition:(GLKVector3)aPosition velocity:(GLKVector3)aVelocity force:(GLKVector3 a_emissionPosition; //位置 attribute vec3 a_emissionVelocity; //速度 attribute vec3 a_emissionForce; //受力 highp mat4 u_mvpMatrix; //变换矩阵 uniform sampler2D u_samplers2D[1]; //纹理 uniform highp vec3 力 (a = f/m) // v = v0 + at : v 是当前速度; v0 是初速度; // a 是加速度; t 是时间 highp vec3
iOS开发知识点3——键盘 点击屏幕回收键盘是很简单的,但是在scrollView上点击回收键盘,直接调用那个方法就不能实现了 // 我的实现是这样的 // 首先实现一个继承自UIScrollView
、比例变换、旋转变换、对称变换、错切变换 具体的变换矩阵可以点这里 或者 这里 b、复合变换 关于任意点的比例、旋转变换 1、将任意点P移到原点,作平移变换; 2、进行比例、旋转等变换; 3、 总结 教程2、3是shader的一个分支,内容相对较难,接下的教程主要以GLKit为主。 附上源码地址 代码里面的util在 这里
1 SQLite3简介 sqlite3中的数据类型 http://www.cnblogs.com/kfqcome/archive/2011/06/27/2137000.html 大多数的数据库引擎 Sqlite v3数据库中的任何列,除了整形主键列,可以用于存储任何一个存储列的值。 3 类型近似 3.1 2.0 类型近似 为了使sqlite和其他数据库间的兼容性最大化,sqlite支持列上“类型近似”的观点,列的类型近似指的是存储在列上数据的推荐类型。 /details/8439561 sqldf SQLITE中文模糊查询的支持问题及解决方案 http://blog.sina.com.cn/s/blog_62b37bfe0101hygk.html IOS 开发数据库篇—SQLite模糊查询 http://www.cnblogs.com/wendingding/p/3871577.html Android SQLiteDatabase中文查询、相似查询 http
// /// Text(event.startDate, style: .date) /// /// Example output: /// June 3, (event.startDate, style: .offset) /// /// Example output: /// +2 hours /// -3 / Example output: /// 2:32 /// 36:59:01 public static let timer: Text.DateStyle } IOS 这里写了一个拓展函数支持十六进制颜色字符串 #if (arch(arm64) || arch(x86_64)) import Foundation import SwiftUI @available(iOS
在 ios开发 Runtime 详解part1和 ios开发 Runtime 详解part2(动态方法解析)中我大致介绍了runtime的基本功能,在这篇文章里,重点介绍一下runtime的一个重要的功能 AOP在java开发中因为有着一个牛逼的框架spring的存在使得AOP能够得以发扬光大,那么在ios开发中,AOP有哪些作用呢?下面我来大致列举一下: 1、记录日志,这也是用的最多的一种。 3、处理缓存。 4、安全检查,如权限管理。 由于汉字的博大精深,切面两个字已经将这一思想做了很好的诠释,但是如果没有深入的体会还是很难理解的。 3、method swizzling可能会造成方法名冲突 想象一下,如果你在类中用method swizzling中替换了一个方法,又在category中又扩展了这个方法,这时候就会出现方法名冲突, 总结:method swizzling可以方便的增加切面,用很少的代码就可以实现aop,使用的过程中一定要注意可能遇到的问题,使用得当必定是开发中的一把利器。
storyboard进行界面设计固然不错,特别是对于初学者经常会使用设计器进行界面设计,但是实际开发过程中我们很多情况下会直接使用代码进行界面布局,特别是对于复杂的界面布局更是如此。 小编有个自己学习交流群681503716(验证编号:大鲨)在iOS学习道路上的小伙伴可以加一下哦~ 直接在Xcode中创建“Empty Application”(注意在Xcode6中这个选项已经没有了, UIView就是指界面可见的控件元素,所有的控件最终都继承自UIView,UIView中还可以添加其他UIView(通过addSubView方法); 在一个iOS应用中必须有一个主窗口UIWindow( 下面我们看一下应用程序最终的布局,相信通过这张图大家对于iOS的布局会有一个大致了解: a2.png
关于动画 在移动开发中,为了提高用户体验,会用到一些动画来提高应用的视觉效果。让人有眼前一亮的感觉。同时有动画的过渡过程,会让应用看起来不是那么的生硬,更吸引用户。 所以它能实现的功能还是有限的,但是一般的开发中是够用的。UIView动画是封装自CoreAnimation的,下面会讲到。 ? 80, 100, 100); } completion:^(BOOL finished) { NSLog(@"动画执行完了"); }]; Spring动画(带弹簧效果) iOS7 以后引入的Spring动画,iOS8的时候Apple开放的Spring动画的API,开发者可以借助这个API很简单的实现带有弹簧的动画效果了。 value的值可以设置为CATransform3D的对象,实现3D动画效果! CAKeyFrameAnimation 示例: ?
3、系统是如何触发自定义奔溃 3.1 在_objc_init中完成exception初始化 //runtime的初始化函数 void _objc_init(void) { ...
初始化地图 定义可以拖控件连线或者代码定义 //设置地图类型 appMapView.mapType = MKMapType.Standard; //是否显示自己位置,设置true会一直定位 appMapView.showsUserLocation = false; //是否允许缩放 appMapView.zoomEnabled = true; //设置中心点 var pos:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: 34.8214
导入AsynSocket库,导入CFNetwork系统库 1.新建single view工程 ViewController.h文件 #import <UIKit/UIKit.h> #import "AsyncSocket.h" @interface ViewController : UIViewController <AsyncSocketDelegate> { NSMutableArray *_socketArray; AsyncSocket *_sendSocke
会出现怎样的结果, 相信接下来的语句 每一个做过开发人员都应该见过 unrecognized selector sent to instance 0x7ffee1e90f00 。 利用 Objective-C 的 Runtime 特性,我们可以自己来对语言进行扩展,解决项目开发中的一些设计和技术问题。
3DES,将DES重复3次所得到的一种密码算法,也叫做3重DES 目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题 3个密钥都是不同的,也称为DES-EDE3 10.png 11 解决密钥配送问题 由消息的接收者,生成一对公钥、私钥 将公钥发给消息的发送者 消息的发送者使用公钥加密消息 16.png RSA 目前使用最广泛的公钥密码算法是RSA RSA的名字,由它的3位开发者 签名机制 iOS签名机制的作用 保证安装到用户手机上的APP都是经过Apple官方允许的 不管是真机调试,还是发布APP,开发者都需要经过一系列复杂的步骤 生成CertificateSigningRequest.certSigningRequest Xcode已经自动帮开发者做了以上操作 思考 每一步的作用是什么? 设备的公钥 39.png 3、iOS签名机制 – 获得证书 40.png 4、ios_development.cer、ios_distribution.cer文件 利用Apple后台的私钥,对Mac设备的公钥进行签名后的证书文件
在iOS 3.0以及更高版本中,你应该重载viewDidUnload函数来释放任何对view的引用或者它里面的内容(子view等等)。 这个网上的资料都说的很不全面,尤其是蓝色字部分。 对于iOS2.x,你还必须在调用super dealloc方法前将这些引用置为nil。
class])); } } 1.在UIApplicationMain函数内部就启动了一个RunLoop 2.UIApplicationMain函数一直没有返回,保持了程序的持续运行 3. runloopMode = [NSRunLoop currentRunLoop].currentMode; 1.同一时间只可以运行其中的一种model 2.切换Model只能退出Runloop,重新进入 3. dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 3.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); // 3. Paste_Image.png Runloop:在开发中有什么作用? ,同时添加Source Or Timer,注:系统只会监测Source Or Timer,不会检查Observer 1.子线程的Runloop需要手动创建 2.子线程的Runloop需要手动开启 3.
, 在 iOS 开发中主要用于代码签名, 保障 iOS 生态的健康安全, 分为开发者证书和发布者证书 什么时候需要证书 只有在本机模拟器调试时无需代码签名, 当 App 需要在真机运行和发布时需要使用相应证书进行签名 (ios_development.cer) 打包和发布 描述文件(Provisioning Profiles) 可用于发布的开发者证书(ios_distribution.cer) 消息推送后端服务 由 apple 官方颁发, 用来证明开发者资格的证书文件, 分开发(ios_development.cer)和发布(ios_distribution.cer)两种 cer 证书跟开发机(私钥)绑定只能在拥有私钥的机器上使用 xcode 登录开发者帐号后可以连接开发者中心获取 附录1: 开发准备相关的网址 开发者中心 https://developer.apple.com/devcenter/ios/index.action agile.baidu.com fir-分发相关工具 http://fir.im/dev/tools itools http://www.itools.cn/ Appstore 上架流程 @TODO 附录3:
iOS开发概述 •什么是IOS •什么是IOS开发 •为什么要选择IOS开发 •学习IOS开发的准备 1.什么是iOS •iOS是一款由苹果公司开发的操作系统(OS是Operating System的简称 ,接着操作系统就会控制手机上的摄像头进行聚焦、拍照 •操作系统可以看作用户与硬件的接口、桥梁,它为应用软件和用户提供了控制、访问硬件的手段 3.什么是iOS开发 •已知:iOS是iPhone、iPad等手持设备的操作系统 •iOS开发就是开发运行在搭载iOS系统上的应用或者游戏软件,也就是可以开发一些运行在iPhone上的软件,比如手机QQ、微博或者游戏。 但由于开发门槛教高等因素,开发者并不多 •从事iOS开发的人员,可以称之为“iOS软件攻城狮”或“iOS程序猿” •iOS开发可以归类到“移动开发”(手机开发)领域 4.为什么要选择移动开发 •手机将是人类最离不开的设备之一 在iphone,ipad,itouch上开发软件 3.IOS平台下的开发和安卓下的开发各有什么优缺点? 4.IOS下开发所需要的条件。
iOS APP开发的发展前景如何?进入新的一年,不仅竞争越来越激烈,而且技术环境也在发生变化。IOS APP的发展现状主要是受市场影响,一些客观因素影响了整体运营。 IOS APP开发的现状在于通信的变化,系统必须跟上发展。从当前的用户反馈来看,仍有许多方面需要改进,例如产品的易用性和产品的灵活性。封闭系统具有局限性,但是具有很高的安全性。 新产品支持5G,但是对于APP,在开发过程中需要考虑很多事情,包括如何将5G技术集成到产品中,以及如何使产品在使用过程中更稳定是开发团队必须考虑的所有事情,因此技术要求很高。 就现在的行情来说,大多数的人是不是认为iOS已经人满为患了呢?移动开发目前趋向于饱和,但优秀的人才永远是少数,如果要入行的话,找一个好的团队然后疯狂的学习最重要,初级的开发越来越泛滥了。 来源:公众号 iOS进阶宝典
最近写了很多关于SceneKit 的入门教程文章,初衷就是想给应用增加一点色彩,今天就教大家实现一个简单的3DLabel 的小框架.如果你的应用中需要实现3D字体展示的功能,这个可能是你最好的选择。 支持的功能 1.设置字体的大小 2.设置字体颜色 3.设置背景颜色 4.设置3D字体深度 5.设置文字对齐方式 6.设置尾部省略模式 7.设置文字旋转角度 8.支持手势移动字体观察 9. 支持使用图片填充 10.支持天空盒子场景 如何使用 一段代码告诉你 - (void)viewDidLoad { [super viewDidLoad]; OS3DLabel *label = [[OS3DLabel alloc]initWithFrame:CGRectMake(0, 10, self.view.bounds.size.width, 100)]; /// 是否可以控制
1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1) 3.还是考指针,不过我对cocoa的代码还是不太熟悉 大概是这样的 - (void)*getNSString(const NSString * inputString) { inputString = cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,也不能出现obj- c的代码,因为cpp只是cpp2) 在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是问题3) NSAutoreleasePool 就是用来做引用计数的管理工作的,这个东西一般不用你管的.3. 25.obj-c的优缺 点 objc优点:1) Cateogies 2) Posing 3) 动态识别 4) 指标计算 5)弹性讯息传递 6) 不是一个过度复杂的 C 衍生语言 7)