ios开发

iOS开发-CocoaPods的安装与使用

走远了吗. 提交于 2020-03-01 15:01:49
第三方类库管理工具 —CocoaPods 原因 : 假设项目中引入了 10 个第三方框架 , 框架会被作者不断更新 . 不可能天天盯着作者有没有更新 . cocoaPods 可以帮助我们自动更新第三方框架 . 假设 第三方框架 A 依赖框架 B, B 又依赖框架 C, C 依赖框架 D....... cocoapods 只能管理 Github 上的框架 插件 — 给 Xcode 安装的 , 方便操作 xcode 框架 — 集成在项目中的 , 是代码 如何安装 cocoaPods 1. 需要翻墙 — 有条件可以直接翻墙 直接在终端中输入 sudo gem install cocoapods 即可 2. 非翻墙情况 2.1 在终端中 输入 gem sources 查看软件安装源 . 默认源是 https://rubygems.org/, 这是亚马逊提供的 , 因为是国外的 , 被中国官方屏蔽了 2.2 需要找一个 没有被屏蔽的源 , 添加进去 新的源 https://ruby.taobao.org/ 终端以此输入 : 查看当前源 gem sources 1. 删除默认源 : sudo gem sources - -remove https://rubygems.org/ 2. 添加 taobao 源 : sudo gem sources -a https://ruby.taobao

iOS开发里的Bundle是个啥玩意?

丶灬走出姿态 提交于 2020-03-01 13:51:43
初学iOS开发的同学,不管是自己写的,还是粘贴的代码,或多或少都写过下面的代码 [[NSBundle mainBundle] pathForResource: @" someFileName " ofType: @" yourFileExtension " ]; [YourViewController initWithNibName: " YourViewController " bundle:nil]; 可是你知道这里的bundle到底是个啥玩意呢?! Bundle简单地讲,就是一个内部结构按照标准规则组织的特殊目录 iOS的应用都是通过bundle进行封装的,对应的bundle类型是Application类型,平时我们通过XCode编译出来的Target(即我们开发的应用),其实就是一个Application类型bundle,即一个文件夹!但是Finder会把这个bundle当做一个文件显示给我们,其实是因为这个bundle自身也是一个package,而Mac系统会把所有的package当做一个文件来对待,显示给用户,从而防止用户误操作导致程序文件损坏或丢失。至于bundle和package有什么区别,就不在这里展开说明了,本文后面所说的bundle都会被Mac系统视为package。 现在我们已经知道了,原来我们开发的应用程序,最后都会成为一个bundle

iOS开发——UI基础-控制器,IBAction和IBOutlet,UIView

ぃ、小莉子 提交于 2020-03-01 09:24:28
第一个ios程序 1 @interface ViewController : UIViewController 2 3 @property(nonatomic, weak)IBOutlet UILabel *lable; 4 5 @end 6 7 8 9 @interface ViewController () 10 11 @end 12 13 @implementation ViewController 14 15 /** 16 红色按钮 17 */ 18 - (IBAction)redBtnClick 19 { 20 // -[ViewController redBtnClick] 21 NSLog(@"%s", __func__); 22 // 拿到UILabel对象, 修改对象的属性, 让label对象变为红色 23 self.lable.textColor = [UIColor redColor]; 24 self.lable.text = @"我是红色文字"; 25 self.lable.backgroundColor = [UIColor purpleColor]; 26 self.lable.font = [UIFont systemFontOfSize:30]; 27 self.lable.textAlignment = NSTextAlignmentCenter

iOS开发UI篇—CAlayer(自定义layer)

我的未来我决定 提交于 2020-02-29 16:24:55
iOS开发UI篇—CAlayer(自定义layer) 一、第一种方式 1.简单说明 以前想要在view中画东西,需要自定义view,创建一个类与之关联,让这个类继承自UIView,然后重写它的DrawRect:方法,然后在该方法中画图。 绘制图形的步骤: (1)获取上下文 (2)绘制图形 (3)渲染图形 如果在layer上画东西,与上面的过程类似。 代码示例: 新建一个类,让该类继承自CALayer YYMylayer.m文件 1 // 2 // YYMylayer.m 3 // 05-自定义layer(1) 4 // 5 // Created by apple on 14-6-21. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import "YYMylayer.h" 10 11 @implementation YYMylayer 12 //重写该方法,在该方法内绘制图形 13 -(void)drawInContext:(CGContextRef)ctx 14 { 15 //1.绘制图形 16 //画一个圆 17 CGContextAddEllipseInRect(ctx, CGRectMake(50, 50, 100, 100)); 18 //设置属性(颜色) 19 // [[UIColor

iOS开发之控制器之间传值

佐手、 提交于 2020-02-29 13:21:30
多个界面之间的跳转,免不了要进行数据传递,可以是顺向的,也可以是逆向的。android中activity之间数据传递是用startActivity(Intent)和startActivityForResult方式,逆向的时候在源activity中重写onActivityResult方法,在这个方法中获取传递过来的数据。iOS中可以利用 UIStoryboardSegue顺向或者用代理、block逆向进行值传递。 一、Segue方式: 首先要知道Segue是什么,storyboard上每一条用来描述界面跳转的线,就是一个UIStoryboardSegue对象,简称Sugue。它有三个属性: @property (nullable, nonatomic, copy, readonly) NSString *identifier;//segue的唯一标识 @property (nonatomic, readonly) __kindof UIViewController *sourceViewController;//源控制器 @property (nonatomic, readonly) __kindof UIViewController *destinationViewController;//目标控制器 根据Segue执行跳转的时刻,可以将其分为两种类型,自动和手动

iOS开发之Xcode常见错误

爷,独闯天下 提交于 2020-02-29 06:20:19
一."file/file.h" file not found 如果遇到这种类型的问题报错,可以分为三部来解决,由简到复杂一步一步来,直到解决问题位置。 1. 点击Xcode -> Project -> Clean清除缓存或者使用⌘ + ⇧ + k快捷键来清除。 2. 点击Xcode -> Window -> Projects 清除Derived Data的缓存,在清除缓存之前先彻底退出Xcode,然后直接删除缓存文件夹。 3. 再Build Settings -> Header Search Paths 添加路径,$(SRCROOT)/项目名称/文件路径。 如果上面这三种方法都没有解决问题,就要考虑一下文件是否存在或者导入方式是否有错误了。例如: # include<> 和 # include"" 、 # import<> 和 # import"" 的导入方式是否有错误。 ld: -pie can only be used when targeting iOS 4.2 or later clang: error: linker command failed with exit code 1 (use -v to see invocation) 首先注意: -pie can only be used when targeting iOS 4.2 or later -pie

iOS 开发流程笔记

大憨熊 提交于 2020-02-29 05:42:28
iOS 开发流程笔记 证书知识及准备工作 几种开发者帐号区别 真机调试流程 内测发布流程 Appstore 上架流程 目录导航 证书知识及准备工作 CSR(certificate request) 文件 开发者证书 apns(Apple Push Notification Service) 证书 p12(Personal Information Exchange) 证书 描述文件(Provisioning Profiles) 模拟器调试 真机调试 打包和发布 消息推送后端服务 什么是证书 什么时候需要证书 证书如何获得 如何对代码进行签名 我生成的私钥如何共享给团队成员 基础问题答疑 各流程中证书的需求情况 开发中常见的证书及相关文件介绍 附录1: 开发准备相关的网址 几种开发者帐号区别 关键区别 真机调试流程 基本概念 条件和流程 内测发布流程 基本概念 实现条件 几种常见的分发途径 附录2: 常见分发渠道及工具地址 Appstore 上架流程 附录3: App store最新审核标准(2015.3) 证书知识及准备工作 基础问题答疑 什么是证书 由 apple 官方颁发, 用以证明开发者身份的特殊文件, 在 iOS 开发中主要用于代码签名, 保障 iOS 生态的健康安全, 分为开发者证书和发布者证书 什么时候需要证书 只有在本机模拟器调试时无需代码签名, 当 App

iOS开发之文件(分段)下载

跟風遠走 提交于 2020-02-29 01:27:59
1 、 HTTP HEAD 方法 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:kTimeout]; request.HTTPMethod = @"HEAD"; [NSURLConnection sendAsynchronousRequest:request queue:self.myQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { NSLog(@"%@", response); NSLog(@"---------------"); NSLog(@"%@", data); }]; 运行测试代码可以发现,HEAD方法只是返回资源信息,而不会返回数据体 应用场景: (1) 获取资源Mimetype (2) 获取资源文件大小,用于端点续传或多线程下载 2 、使用块代码获取网络资源大小的方法 - (void)fileSizeWithURL:(NSURL *)url completion:(void (^)(long long contentLength))completion {

iOS数据存取(1)

青春壹個敷衍的年華 提交于 2020-02-28 16:44:49
应用沙盒 1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒 2)应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer) 应用沙盒的文件系统目录 3)应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。例如,游戏应用可将游戏存档保存在该目录 tmp:保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录 Library/Caches:保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据 Library/Preference:保存应用的所有偏好设置,iOS的Settings(设置)应用会在该目录中查找应用的设置信息。iTunes同步设备时会备份该目录 4)应用沙盒目录的常见获取方式 沙盒根目录:NSString *home = NSHomeDirectory(); Documents:(2种方式): i)利用沙盒根目录拼接”Documents”字符串 1 2 3 NSString *home =

iOS开发debug跟release版本log屏蔽方法

我们两清 提交于 2020-02-28 11:01:12
在开发过程中一般会用到 NSLog(<#NSString *format, ...#>)来获得具体的信息。 但当我们发布app时,一步一步的去找 NSLog(<#NSString *format, ...#>),并屏蔽掉,这样比较浪费时间还很累。我们可以采用预编译的方式来简化这个问题。 1.在***-Prefix.pch里面添加 #ifdef DEBUG # define DLog(...) NSLog(__VA_ARGS__) #else # define DLog(...) /* */ #endif #define ALog(...) NSLog(__VA_ARGS__) 2.进入Xcode 4,选择菜单“Product”->“Manage Schemes”,选择一个项目,点击“Edit”,Bulid Configuration 附: 检查DEBUG标志是否正确定义,xcode一般会在debug运行配置项里面已经定义号了DEBUG标志,如果没定义我们就自己写上,以我的xcode 4 为例,如下图:   找到PreProcessor Macros 这个属性,对于Debug配置我们给他写上DEBUG,而在Release配置中把它留空。 这样我们刚才那段预处理命令就可以根据这个标志来判断我们编译的时调试版本还是发布版本,从而控制NSLog的输出。 (因为xcode 4 会把debug