iOS开发
zhaolaoda2012
这个作者很懒,什么都没留下…
展开
-
ios开发-Runtime理解,应用,基本知识
Runtmie--运行时机制是一套底层的纯c语言的API,在oc程序运行过程中,转换成runtime的c语言代码。大多数情况下,runtime是在幕后工作。举个例子:oc代码:[ [ Person alloc ] init ];转化成runtime的c语言代码为:objc_msgsend( objc_msgsend("Person","alloc") , "init" )原创 2015-05-14 15:45:26 · 552 阅读 · 2 评论 -
IOS开发-画直线
介绍两种画直线的方法: (1)通过QuartzCore (2)通过UIBezierPath 先创建一个自定义view: 然后在导入QuartzCore框架: 然后在m文件打出下面代码,三种函数都是同样的效果:#import "ZCView.h"#import <QuartzCore/QuartzCore.h>@implementation ZCView/*// Only ove原创 2016-05-19 20:54:04 · 2733 阅读 · 0 评论 -
IOS开发-画曲线画弧线画圆
(1)导入QuartzCore框架 (2)自定义一个view,然后输入下面的代码:- (void)drawRect:(CGRect)rect { [self drawArc1];}/** * 曲线 */- (void)drawArc1{ //获取上下文 CGContextRef context = UIGraphicsGetCurrentContext();原创 2016-05-19 21:31:03 · 10534 阅读 · 0 评论 -
IOS开发-利用绘图表示进度
(1)创建自定义view。 (2)导入QuartzCore框架 (3)在h文件,定义一个属性,用于接收进度值,最大值是1,最小值是0:#import <UIKit/UIKit.h>@interface ZCView : UIView@property(nonatomic,assign)CGFloat progress;@end(4)m文件的代码如下:#import "ZCView.h"#i原创 2016-05-20 12:07:47 · 611 阅读 · 0 评论 -
IOS开发-画饼图画柱状图
饼图(1)自定义一个view (2)导入QuartzCore框架 (3)m文件代码如下:#import "ZCView.h"#import <QuartzCore/QuartzCore.h>//随机浮点数#define ARC4RANDOM_MAX 0x100000000// 颜色#define ZCColor(r, g, b) [UIColor colorWithRed:(r)/255原创 2016-05-20 13:15:59 · 1360 阅读 · 0 评论 -
IOS开发-cocoaPod安装遇到的错误以及解决方法
(1)activesupport requires Ruby version >= 2.2.2. 解决方法是: 先安装 RVM baby 版本管理器curl -L get.rvm.io | bash -s stable等安装完成 出现下面这行提示以下 In case of problems: https://rvm.io/helpandhttps://twitter.com/rvm_io执行s原创 2016-07-14 16:20:42 · 1148 阅读 · 0 评论 -
IOS开发-导航栏相关设置
隐藏导航栏底部的线条 方法1 (单页面设置) [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage n翻译 2016-08-22 15:08:47 · 695 阅读 · 0 评论 -
IOS开发-环信UI3.0集成(XCode8)
首先去官网下载SDK:http://www.easemob.com/download/im下载完把图中的两个文件拖进项目: 然后加入对应的framework: 根据需求去添加(下图是官网的教程提示的): 红色框框是重点。这些工作做完以后,command+b编译一下会发现有错,这里我们需要添加一个pch文件到项目中: 然后再pch文件里面添加以下内容:#ifdef __OBJC__原创 2016-10-09 17:17:30 · 1336 阅读 · 0 评论 -
IOS开发-AFNetWorking NSParameterAssert(URLString)为空
NSParameterAssert(URLString)这个地方报错。当URL正常,但afnetworking崩溃 URL中含有中文需要转换url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];原创 2016-10-21 16:36:04 · 1012 阅读 · 0 评论 -
IOS开发-此证书的签发者无效
今天好多朋友都问到证书签发失效的问题,原因是Apple Worldwide Developer Relations Certification Authority Intermediate Certificate证书过期导致的首先打开自己的Keychain,删除过期的WWDR证书在System的那一栏也有这个过期的WWDR ,一并删除它。然后下载: https://developer.apple.原创 2016-10-06 14:41:59 · 284 阅读 · 0 评论 -
IOS开发-使用autolatout后如何正确获取view的frame
假设自定义一个tableview cell,添加加了约束以后,该如何获取到约束更新后,正确的frame,只要重写layoutsubviews这个系统方法,代码如下:- (void)layoutSubviews{ [super layoutSubviews]; [self.contentView setNeedsLayout]; [self.contentView layout原创 2016-11-28 11:40:42 · 1300 阅读 · 0 评论 -
IOS开发-Swift-基础知识学习笔记
实例代码下载: IOS开发-Swift-基础知识学习笔记1.定义常量变量,显示指定类型 var myVariable = 42; let myConstant = 42; //指定类型 var myChange: Float = 4; myVariable = 50; myChange = 666;原创 2017-04-25 11:36:34 · 543 阅读 · 0 评论 -
IOS开发-苹果开发者中心 提示 edit phone number
最近登录开发者中心 会提示一个信息: 其实就是要你更新手机号码,就在这个网址:修改网址 添加一下你的手机号码 添加玩回到开发者中心刷新一下可以了。 ...原创 2018-04-13 15:59:46 · 7934 阅读 · 12 评论 -
IOS开发-应用转让
先登录开发者中心,然后登录到itune connect: 选中你要转让的app,进入信息页面: 滚动到最下面,会看到转让app的按钮,点击进去。 按照里面的提示,你是必须满足这所有的条件才能进行转让,点击下面继续的按钮,会进入一个新的页面: 这里会要你填写两个东西,一个是你要转让给哪个apple id,团队id是要到对方的开发者中心查看: 填写完点击,继续会来到一个新...原创 2018-04-13 16:16:33 · 493 阅读 · 0 评论 -
IOS开发-cocoapod pod init 报错 RuntimeError - [Xcodeproj] Unknown object version.
最近升级了xcode9.3,用cocoapod进行init操作的时候,出现了一个错误: 就是这个错误,RuntimeError - [Xcodeproj] Unknown object version. 这个错误大概是cocoapod和xcode的版本不对应,所以要对cocoapod进行升级。在终端执行下面的语句:sudo gem install cocoapods --pre...原创 2018-04-19 15:44:27 · 677 阅读 · 0 评论 -
IOS开发-ERROR ITMS-90096: Your binary is not optimized for iPhone 5
打包上传appstore的时候报错:description length:5574764ERROR ITMS-90096: "Your binary is not optimized for iPhone 5 - New iPhone apps and app updates submitted must support the 4-inch display on iPhone 5 and ...原创 2018-06-11 15:28:33 · 416 阅读 · 0 评论 -
IOS开发-Masonry
Masonry是一个封装苹果Autolayout的一个第三方框架。简化了代码添加约束的代码量等。 下载地址: https://github.com/SnapKit/Masonry 下载完后解压缩,把Masonry这个文件夹拖进项目里就可以了。下面是一个小小的实例: 先导入头文件:#import "Masonry/Masonry.h" UIView *buleView = [[UIVie原创 2016-05-07 10:31:29 · 874 阅读 · 0 评论 -
IOS开发-VFL语言
Visual Format Language,翻译过来时可视化格式语言,是苹果公司用来简化Autolayout代码量的语言。 实例: (1)H:[(redView(72))]-12-[blueView(50)] 首字母表示水平方向,意思是有一个redview宽度72,距离这个redview右边12个点的距离有一个宽度为50的blueview。(2)H:[redView(>=60@700)]原创 2016-05-06 11:41:34 · 917 阅读 · 0 评论 -
IOS开发-自动布局Autoresizing和Autolayout
苹果的自动布局有两种: (1)Autoresizing (2)Autolayout 下面先介绍Autoresizing: 在开始使用前,我们要对xcode进行设置,因为默认xcode是打开Autolayout的,按照下面两张图就能打开Autoresizing了。 然后按照下图,选到对应选项卡就能使用autoresizing的功能了。现在用autoresizing做一个练习,让一个控件始终在原创 2016-05-06 10:28:21 · 909 阅读 · 0 评论 -
ios开发-property参数
非ARC参数:(1)retain要生成符合内存管理的set方法,应用于对象类型@property(retain)NSString *proprice;(2)assign直接赋值,适用于对象类型,基本数据类型,如:int,float,double@property(assign)int proprice;(3)copy@property(copy)in原创 2015-05-14 17:25:48 · 465 阅读 · 0 评论 -
ios开发-如何把代码从非ARC转到ARC
(1)打开xcode:菜单Edit ------>refactor ------>convert to ARC(2)帮需要转成ARC的文件,添加Compiler Flags:在xcode中点击项目,选择Bulid Phases,展开Compile Sources,找到需要转成ARC的文件,双击,输入 -fno-objc-arc不懂请留言哈哈。原创 2015-05-14 17:32:17 · 495 阅读 · 0 评论 -
ios开发-多线程
创建线程目的是为了开启一条新的执行路径,运行指定代码与主线程中的代码实现同时运行。多线程优势:(1)充分发挥多核处理器优势,讲不通现成分配给不同的处理器,真正进入“并行运算”状态;(2)将耗时的任务分配给其他线程执行,由主线程负责统一更新界面会使应用流畅,用户体验更好;多线程弊端:(1)新建线程会消耗内存空间和cpu时间,县城太多会降低系统运行性能;多线程误区:(1)多原创 2015-05-14 21:31:48 · 458 阅读 · 0 评论 -
ios开发-如何将oc文件转成c,c++语言文件,后缀名为cpp
首先打开终端:(1)cd到你所要转成c语言文件的目录里:cd /Users/my00/Desktop/swift/托尔斯泰/托尔斯泰/(2)然后输入clang -rewrite-objc main.m如果没有提示错误的话,这时候你就会发现,在你所cd的目录下面多了一个后缀名是cpp的文件。原创 2015-05-18 11:30:12 · 5978 阅读 · 0 评论 -
ios开发-block理解
block实际上是指向结构体的指针如何定义一个bolck:可以在头文件定义,#import typedef void(^MyBlock)();@interface ViewController :UIViewController@property(nonatomic,copy)MyBlock myBlock;@end举几个小例子,进行原创 2015-05-18 11:25:10 · 443 阅读 · 0 评论 -
ios开发-内存管理-理解
retaincount是引用计数的意思。使用release使retaincount-1,使用retain使retaincount+1,当retaincount等于0的时候,该对象会被释放掉。在内存管理时会碰到下面的几个问题:(1)野指针可将对象赋值为nil,可以避免野指针的出现。[p release]; p = nil; p.age = 30;//相当于 [原创 2015-05-14 15:58:06 · 403 阅读 · 0 评论 -
mac 登录时候要登录两个管理员才能进入系统
打开系统偏好设置–安全性与隐私 选中FileVault选项卡 关闭 FileVault 即可 有点坑爹。。。。。-。-原创 2016-04-14 17:54:25 · 2001 阅读 · 0 评论 -
九宫格算法
//单元格的大小 CGFloat itemW = 60; CGFloat itemH = 60; //最大列数 int maxCol = 4; //间距 CGFloat padding = (CGRectGetWidth(self.view.frame)-itemW*maxCol)/(maxCol+1); for (int i = 0; i<1原创 2016-04-15 16:04:24 · 686 阅读 · 0 评论 -
IOS读取项目中的plist
NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle pathForResource:@"Property List" ofType:@"plist"]; NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:path];这种方法读取原创 2016-04-15 16:37:42 · 1300 阅读 · 0 评论 -
IOS懒加载
懒加载: 用到时再加载,并且只加载一次。好处是节省资源。数据量大的时候,避免不用时加载造成的卡顿。实质上是重写属性的getter方法。(1)现在头文件定义一个属性,类型按需要。@interface ViewController ()@property(nonatomic,strong)NSDictionary *itemDictionary;@end(2)在.m文件里面,重写该属性的get方法原创 2016-04-15 16:48:40 · 500 阅读 · 0 评论 -
IOS小技巧-xcode代码块
下面介绍怎么使用代码块来,加快撸代码的速度。 选中这行代码,拖到右下角的的红色框框里面。 这是这个窗口就会出现一个新的选项。大概叫My code snippet。 点击打开,然后设置成下图: 白色框框里面的内容应该打成这样: @property(nonatomic,strong) <#class#> *<#name#>; 才会变成图片里面的样子。然后点击done。 再去项目原创 2016-04-15 17:10:44 · 544 阅读 · 0 评论 -
IOS开发-免证书调试(xcode7及以上)
进入xcode,菜单栏选择xcode –> preferences (快捷键 command + ,)在Accounts选项卡添加自己的Apple ID 在项目导航栏中选择要真机调试的项目,在工作区的targets选择要测试的项目(一般就是项目名称)选择General选项卡,展开Identity项,修改下面的team选项为你刚才添加的Apple ID 把真机调试的设备连上电脑在team选项的下面原创 2016-04-28 19:29:23 · 386 阅读 · 0 评论 -
IOS开发-读取xib文件
(1)通过NSBundle读取:NSArray *xibArray = [[NSBundle mainBundle]loadNibNamed:@"xibName" owner:nil options:nil];(2)通过UINib读取UINib *xib = [UINib nibWithNibName:@"xibName" bundle:[NSBundle mainBundle]];NSArray原创 2016-04-16 11:09:03 · 2788 阅读 · 0 评论 -
IOS开发-删除所有子view
for (int i = 0; i<self.view.subviews.count; i++) { UIView *sub = self.view.subviews[i]; [sub removeFromSuperview]; }很多人会用这种方式,包括我第一次想做这种操作的时候,也会第一时间想到这个,但是这样就犯了一个错误。因为每次删除我们for的条件,s原创 2016-04-19 14:24:47 · 2971 阅读 · 0 评论 -
iOS-阿里OSS Alamofire图片上传,失败原因和小实例
使用Alamofire上传图片到阿里OSS时会发现有的时候上传失败,原因是因为Alamofire拼接form-data的时候顺序会出错,所以需要自己使用URLRequest自己进行拼接就可以。private let MultipartFormCRLF = "\r\n"private let MutlipartFormCRLFData = MultipartFormCRLF.data(using...原创 2019-09-18 15:57:50 · 961 阅读 · 0 评论