当前位置: 首页 > 编程日记 > 正文

ios cocopods 安装使用及高级教程

CocoaPods简介

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm。随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods。http://cocoapods.org/

一、安装

1.更新gem

如果终端gem版本太老可能会有问题,先更新gem:(现在大部分新机都不会有这个问题)

sudo gem update --system

2.换源

gem默认的源是外国的https://rubygems.org/,国内网速太慢,换成淘宝源

gem sources -l                         // 查看当前源

  gem sources --remove https://rubygems.org/    // 删除原有的rubygems

  gem sources -a https://gems.ruby-china.org/

  gem sources -l // 再次查看当前源有没有替换成功

3.选中xcode

如果安装有多个版本xcode的朋友,需要切换一个默认的版本

sudo xcode-select --switch /Applications/Xcode.app

4.安装cocoapods

mac系统版本如果是10.11以前的,使用一下命令安装:

sudo gem install cocoapods

如果是10.11以后由于cocoapods的命令路径改变了,变成:

sudo gem install -n /usr/local/bin cocoapods

5.初始化cocopods

安装好cocopods以后,需要下载更新本地的依赖库tree,每天很多人都会更新或创建好的Pods库,需要下载或更新到本地,由于依赖库tree数量太多,可能会很慢,耐心等待,中间可能出现各种莫名其妙的错误,很大一部分是网络原因,请重新执行命令

pod setup

二、项目集成cocopods

1.进入到项目的根目录,创建Podfile文件,

cd  ***/IOSHelloWorldProject        // 进入项目根目录

touch Podfile                              // 创建Podfile文件

2.用记事本或xcode打开Podfile文件,添加项目所需要的依赖库,例如:

platform :ios, '8.0'
inhibit_all_warnings!

pod 'AFNetworking'

pod 'SDWebImage'

这样一个AFNetworking、SDWebImage的依赖库就添加完成了

3.安装依赖库,返回终端执行:

pod install --no-repo-update

pod install --verbose --no-repo-update

--verbose 查看安装细节

4.安装完成以后我们不在打开后缀为.xcodeproj的工程,而是打开后缀为.xcworkspace的工作空间。

此时一个简单的cocopods工程就完成了,相信可以满足大部分小朋友的需求了,对于项目比较复杂、架构设计要求高、个性化追求高的小朋友请接着看cocopods的高级教程

5.cocopods升级

pod --version   // 查看cocopods当前的版本

gem update cocoapod // 升级cocopods命令

6.cocopods卸载

电脑重装或者切换到某个账号后cocopods使用有问题或者cocopods出现解决不了的问题而必须卸载重装,下面就是卸载了:

which pod // 查看pod的安装路径

gem list --local | grep cocoapods   // 查看当前安装了哪些有关cocopods的东西

xiaomingdeMacBook-Pro:OCServiceDemo xiaoming$ gem list --local | grep cocoapods
cocoapods (1.1.1)
cocoapods-core (1.1.1)
cocoapods-deintegrate (1.0.1, 1.0.0.beta.1)
cocoapods-downloader (1.1.2, 1.1.1, 1.0.0.beta.3, 0.9.3)
cocoapods-plugins (1.0.0, 1.0.0.beta.1, 0.4.2)
cocoapods-search (1.0.0, 1.0.0.beta.2, 0.1.0)
cocoapods-stats (1.0.0, 1.0.0.beta.4, 0.6.2)
cocoapods-trunk (1.1.1, 1.0.0, 1.0.0.beta.3, 0.6.4)
cocoapods-try (1.1.0, 1.0.0.beta.3, 0.5.1)

接下来一个一个卸载:

sudo gem uninstall cocoapods-core

sudo gem uninstall cocoapods-deintegrate

如果需要卸载那个版本,如下:

sudo gem uninstall cocoapods -v 1.1.1 //后面的版本号要和上面列表中的版本号对应

二、 国内镜像下载慢的解决方案:
1.切换镜像源

- gem sources --remove https://rubygems.org/
- gem sources -a https://gems.ruby-china.co

2.使用国内站点开放的镜像源,如gitee:

pod repo remove master
pod repo add master https://gitee.com/mirrors/CocoaPods-Specs.git

3.Podfile文件增加指向镜像源:

  source 'https://gitee.com/mirrors/CocoaPods-Specs.git'

三、cocopods高级教程

1.类似pod 'AFNetworking'依赖库名如何得来,使用pod的搜索命令:

pod search AFNetworking

xiaomingMacBook-Pro:OCServiceDemo xiaoming$ pod search AFNetworking

-> AFNetworking (3.1.0)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 3.1.0'
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3, 3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,
   2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,
   1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1
   [master repo]
   - Subspecs:
     - AFNetworking/Serialization (3.1.0)
     - AFNetworking/Security (3.1.0)
     - AFNetworking/Reachability (3.1.0)
     - AFNetworking/NSURLSession (3.1.0)
     - AFNetworking/UIKit (3.1.0)
-> AFNetworking+AutoRetry (0.0.5) Auto Retries for AFNetworking requestspod 'AFNetworking+AutoRetry', '~> 0.0.5'- Homepage: https://github.com/shaioz/AFNetworking-AutoRetry- Source: https://github.com/shaioz/AFNetworking-AutoRetry.git- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]-> AFNetworking+Ext (1.2.1)AFNetworking的封装, 并提供一个 UIImageView+DYLoading cache in fileSystem+memorypod 'AFNetworking+Ext', '~> 1.2.1'- Homepage: https://github.com/junhaiyang/AFNetworkingExt- Source: https://github.com/junhaiyang/AFNetworkingExt.git- Versions: 1.2.1, 1.2, 1.1, 1.0, 0.5, 0.4, 0.3 [master repo]- Subspecs:- AFNetworking+Ext/Base (1.2.1)- AFNetworking+Ext/AFCustomRequestOperation (1.2.1)- AFNetworking+Ext/AFDownloadRequestOperation (1.2.1)- AFNetworking+Ext/AFTextResponseSerializer (1.2.1)- AFNetworking+Ext/example (1.2.1)- AFNetworking+Ext/UIKit (1.2.1)- AFNetworking+Ext/UIKit/UIImageView+DYLoading (1.2.1):

解释下内容:

-> AFNetworking (3.1.0)        // 依赖库名、最新版本号
   A delightful iOS and OS X networking framework.    // 简介描述
   pod 'AFNetworking', '~> 3.1.0'                             // 在Podfile文件里引用这个依赖库的语法,大部分情况下拷贝这行到Podfile文件即可
   - Homepage: https://github.com/AFNetworking/AFNetworking   // 依赖库的主页,主页里包含介绍、说明、源码等一系列文件
   - Source:   https://github.com/AFNetworking/AFNetworking.git   // 依赖库的git仓库路径
   - Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3, 3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,
   2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,
   1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1    // 依赖库的各个版本
   [master repo]
   - Subspecs:   // 这里的是依赖库的各个子模块,一般不用关心,研究依赖库源码框架的可以看看
     - AFNetworking/Serialization (3.1.0)
     - AFNetworking/Security (3.1.0)
     - AFNetworking/Reachability (3.1.0)
     - AFNetworking/NSURLSession (3.1.0)
     - AFNetworking/UIKit (3.1.0)


在Podfile文件使用如下语法引用依赖库:

pod 'AFNetworking'      //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0'     //只使用2.0版本
pod 'AFNetworking', '> 2.0'     //使用高于2.0的版本
pod 'AFNetworking', '>= 2.0'     //使用大于或等于2.0的版本
pod 'AFNetworking', '< 2.0'     //使用小于2.0的版本
pod 'AFNetworking', '<= 2.0'     //使用小于或等于2.0的版本
pod 'AFNetworking', '~> 0.1.2'     //使用大于等于0.1.2但小于0.2的版本,不包含0.1.2
pod 'AFNetworking', '~>0.1'     //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0'     //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本

2.多个target使用相同Pod依赖库

如果为IOSHelloWorldProject的targetOne和targetTwo都需要引用Reachability、SBJson、AFNetworking三个Pods依赖库,可以使用link_with关键字来实现,将Podfile写成如下方式:

    link_with 'targetOne', 'targetTwo'pod 'Reachability',  '~> 3.0.0'pod 'SBJson', '~> 4.0.0'pod 'AFNetworking', '~> 2.0'

新的语法是使用abstract_target

# There are no targets called "Shows" in any Xcode projects
abstract_target 'Shows' dopod 'ShowsKit'# Has its own copy of ShowsKit + ShowWebAuthtarget 'ShowsiOS' dopod 'ShowWebAuth'end# Has its own copy of ShowsKit + ShowTVAuthtarget 'ShowsTV' dopod 'ShowTVAuth'end
end

如果使用隐式abstract_target语法必须写在Podfile文件顶部:

pod 'ShowsKit'
# Has its own copy of ShowsKit + ShowWebAuth
target 'ShowsiOS' dopod 'ShowWebAuth'
end# Has its own copy of ShowsKit + ShowTVAuth
target 'ShowsTV' dopod 'ShowTVAuth'
end

3.不同target引用不同Pod依赖

如果为IOSHelloWorldProject的targetOne引用Reachability,而targetTow引用SBJson、AFNetworking,将Podfile写成如下方式:

target :'targetOne' dopod 'Reachability',  '~> 3.0.0'endtarget :'targetTow' do
     pod 'AFNetworking', '~> 2.0'     pod 'SBJson', '~> 4.0.0'
  end

do/end作为开始和结束标识符

4.其他常用pod引用依赖库语法

pod 'Alamofire', :path => '~/Documents/Alamofire' // 在~/Documents/Alamofire路径下存在spec的项目(spec后期介绍) pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git' // git上的master分支 pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :tag => '3.1.1' // git上tag为3.1.1 pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :commit => '0f506b1c45' // git上commit为0f506b1c45 pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'dev' // git上的开发分支 

更多Podfile语法请参考官网:https://guides.cocoapods.org/syntax/podfile.html#podfile

5.关于Podfile.lock文件

在使用CocoaPods,执行完pod install之后,会生成一个Podfile.lock文件。这个文件看起来跟我们关系不大,实际上绝对不应该忽略它。
该文件用于保存已经安装的Pods依赖库的版本

Podfile.lock文件最大得用处在于多人开发。当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的SBJson,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!
在这种情况下,如果团队想使用当前最新版本的SBJson依赖库,有两种方案:

  1. 更改Podfile,使其指向最新版本的SBJson依赖库;
  2. 执行pod update命令;

鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中

5.查看本地依赖库的tree文件

cocopods的tree文件默认是隐藏的,先把Mac隐藏文件夹显示出来,Mac隐藏和显示的命令如下:
隐藏:defaults write com.apple.finder AppleShowAllFiles -bool true
显示:defaults write com.apple.finder AppleShowAllFiles -bool false
然后退出终端,重启Finder

cocopods的tree文件的默认路劲是

~/.cocoapods/repos/master/Specs  // 当前用户的.cocoapods/repos/master/Specs目录下

直接使用命令如下命令打开路劲即可:

open ~/.cocoapods/repos/master/Specs

常见问题:

1.如果pod install 出现报错:

[!] Unable to find host target(s) for StaticLib. Please add the host targets for the embedded targets to the Podfile.
Certain kinds of targets require a host target. A host target is a "parent" target which embeds a "child" target. These are example types of targets that need a host target:
- Framework
- App Extension
- Watch OS 1 Extension
- Messages Extension (except when used with a Messages Application)

解决方案:
降低一个版本试下:
pod _1.1.1_ install

Xcode 9以后如果使用了cocopods后icon无法显示,Podfile文件底部添加:
post_install do |installer|
copy_pods_resources_path = "Pods/Target Support Files/Pods-FuelCardApp/Pods-FuelCardApp-resources.sh"
string_to_replace = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"'
assets_compile_with_app_icon_arguments = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"'
text = File.read(copy_pods_resources_path)
new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
File.open(copy_pods_resources_path, "w") {|file| file.puts new_contents }
end

相关文章:

单片微型计算机概念及组成,中国民用航空飞行学院2014年微机原理与接口考研复习大纲...

中国民用航空飞行学院硕士研究生入学考试801《微机原理与接口》复习大纲第一部分 考试说明一、 考试性质《微机原理与接口》是中国民用航空飞行学院硕士生入学考试科目之一。它的评价标准是高等学校、科研院所的优秀本科毕业生能达到及格以上水平&#xff0c;以保证被录取者具…

【转】Jmeter常见问题

收集工作中JMeter遇到的各种问题1. JMeter的工作原理是什么&#xff1f;向服务器提交请求&#xff1b;从服务器取回请求返回的结果。2. JMeter的作用&#xff1f;JMeter可以用于测试静态或者动态资源的性能&#xff08;文件、Servlets、Perl脚本、java对象、数据库和查询、ft…

linux的tar中ztvf,linux中的tar命令(2)

实例4&#xff1a;只将 /tar 内的 部分文件解压出来命令&#xff1a;tar -zxvf /opt/soft/test/log30.tar.gz log2013.log输出&#xff1a;[rootlocalhost test]# tar -zcvf log30.tar.gz log2012.log log2013.loglog2012.loglog2013.log[rootlocalhost test]# ls -al log30.ta…

xcode 消除警告

项目中引用大量的第三方代码时&#xff0c;这些代码很复杂&#xff0c;不要轻易去改动它&#xff0c;如果编译产生很多警告&#xff0c;该如何消除呢&#xff1f; 1. 最直接、最一劳永逸、最安全的方式&#xff0c;直接找到警告的那段代码&#xff0c;改为不警告。这个方式最安…

RoadMap

转载于:https://www.cnblogs.com/taogao3364/p/9616020.html

罗格斯大学电气与计算机工程专业怎么样,美国电子工程排名 - 电子计算机工程的研究生教育,特别是偏向电路设计方向,请问是美国罗格斯大学新布朗斯维克校区好还是清华...

美国电子工程排名 - 电子计算机工程的研究生教育&#xff0c;特别是偏向电路设计方向&#xff0c;请问是美国罗格斯大学新布朗斯维克校区好还是清华&#xff0c;1. 电子计算机工程的研究生教育&#xff0c;特别是偏向电路设计方向&#xff0c;请问是美国罗格斯大学新布朗斯维克…

Win10系列:VC++调用自定义组件1

通过20.9.1小节中的代码和步骤编写了一个名为"FilePickerComponent"的WinRT组件&#xff0c;接下来将在上一小节所新建的项目基础上&#xff0c;继续介绍如何在不同的语言所编写的应用中调用这个WinRT组件。 &#xff08;1&#xff09;JavaScript调用WinRT组件 在解决…

windows常用命令有哪些(整理)

windows常用命令有哪些&#xff08;整理&#xff09; 一、总结 一句话总结&#xff1a;其实这个好学&#xff0c;只要先弄懂主干&#xff0c;清除主干&#xff0c;那么枝叶的添加逻辑就很清除了 这种多内容的&#xff0c;散乱的&#xff0c;弄清除主干效率就高了 1、windows命令…

c语言定义字符类型变量的关键字,C语言数据类型

C语言关键字&#xff1a;也称保留字&#xff0c;是C语言预先定义的、具有特殊意义的单词。数据类型关键字(12个)&#xff1a;(1)char&#xff1a;声明字符型变量或函数(2)double&#xff1a;声明双精度变量或函数(3)enum&#xff1a;声明枚举类型(4)float&#xff1a;声明浮点型…

mac tomcat https

一、HTTPS的基本工作原理&#xff1a; HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手&#xff0c;在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议&#xff0c;更是一件经过艺术家精心设计的艺术品&#xff0c;…

计算机应用基础电子演示文稿系统行考作业,最新电大计算机应用基础形考PowerPoint答案...

.;.. 计算机应用基础/ ? 课程考核/ ? 模块4 PowerPoint 2010 电子演示文稿系统——客观题一&#xff0e;单项选择题1. 在PoewrPoint 中&#xff0c;“视图”这个名词表示( D )。A. 一张正在修改的幻灯片B. 一种图形C. 编辑演示文稿的方式D. 显示幻灯片的方式2. 在下列PowerPo…

数据结构(三) 用java实现七种排序算法。

很多时候&#xff0c;听别人在讨论快速排序&#xff0c;选择排序&#xff0c;冒泡排序等&#xff0c;都觉得很牛逼&#xff0c;心想&#xff0c;卧槽&#xff0c;排序也分那么多种&#xff0c;就觉得别人很牛逼呀&#xff0c;其实不然&#xff0c;当我们自己去了解学习后发现&a…

Codeforces ECR50 div2题解

A&#xff1a;签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long ll read() {ll x0,f1;char cgetchar();while (c<0||…

开发ios的语言

iOS发展这么多年了&#xff0c;很多第三方语言都向开发一种自己的iOS&#xff0c;于是多种跨平台诞生了&#xff01; Object-c、swift&#xff1a; 当然是开发iOS的首先&#xff0c;毕竟是苹果自己的东西&#xff0c;也是最流行、最适合开发ios的&#xff0c;无论是UI库、性能、…

c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式

原标题&#xff1a;单片机C语言编程定时器的几种表达方式吴鉴鹰单片机开发板地址店铺&#xff1a;【吴鉴鹰的小铺】地址&#xff1a;【https://item.taobao.com/item.htm?_uukgdp5a7629&id524088004171】单片机C语言编程中&#xff0c;定时器的初值对于初学者真的是比较不…

上交2017计算机专业就业,上海交通大学计算机科学与工程系(CSE)

经过多轮的意向调整&#xff0c;最终确定的生产实习去向结果公示(请见附件)。原则上&#xff0c;经公示后结果不做调整。生产实习执行时间从7月24日到8月27日&#xff0c;请目前尚未就课题开展明细跟导师联系的同学在7月24日之前务必联系导师。一、实习报告要求1、从教务网站&a…

树上倍增求lca

嗯~ o(*&#xffe3;▽&#xffe3;*)o lca是树上两点的最近公共祖先。如果在同一个分支上就是更靠近根的那个点&#xff0c;否则就是大家一起向上走&#xff0c;第一次能都经过的那个点。 根据这两个性质&#xff0c;我们对于每次询问可以把一个向上走到根节点&#xff0c;标记…

ios app内嵌入http服务器

1.采用CocoaHTTPServer https://github.com/robbiehanson/CocoaHTTPServer 2.采用MongooseDaemon https://github.com/face/MongooseDaemon

编程模拟洗牌和发牌过程c语言,洗牌发牌模拟系统课程设计报告.doc

集美大学诚毅学院《高级语言程序设计》课程设计实验报告题目&#xff1a;洗牌和发牌模拟专业&#xff1a;计算机科学与技术班级&#xff1a;姓名&#xff1a;成绩&#xff1a;指导教师&#xff1a;完成日期&#xff1a;2008 年 6月 26 日一、目的C语言进行程设计的能力&#xf…

使用complete的图片属性检测图片是否加载完毕

转载于:https://www.cnblogs.com/zclx/p/6652545.html

学金融买计算机配置,我是学金融投资的计算机等级考试哪个方向对我工作有用...

你好&#xff1a;你的这种情况应该是系统调整或服务器维护造成的&#xff0c;在这两天还有很多网友无法进入主页&#xff0c;请耐心等待&#xff0c;新浪工作日人员会尽快将系统恢复&#xff01; 祝顺利&#xff01;多出好文章&#xff01; 博客临时故障&#xff0c;用新浪各种…

NOIP2018TG 初赛复习

Date&#xff1a; 20180911 TCP/IP OSI7面向对象的程序设计语言 1.不是自顶向下2.simula 67语言 第一个3.继承性、封装性、多态性NOIP支持的语言环境&#xff1a;对于c / c &#xff1a;Dev-Cpp \ RHIDE (DJGPP) &#xff08;推荐&#xff1a;Dev-Cpp&#xff09;对于pascal&am…

分裂游戏(bzoj 1188)

Description 聪聪和睿睿最近迷上了一款叫做分裂的游戏。 该游戏的规则试&#xff1a; 共有 n 个瓶子&#xff0c; 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i]颗巧克力豆&#xff0c;两个人轮流取豆子&#xff0c;每一轮每人选择 3 个瓶子。标号为 i,j,k, 并要保证 i < j…

rb c语言,C语言,RB和RBT什么区别啊???这里的typedef 什么作用???

满意答案guiyalm47042017.01.10采纳率&#xff1a;58% 等级&#xff1a;12已帮助&#xff1a;5026人1) #define是预处理指令&#xff0c;在编译预处理时进行简单的替换&#xff0c;不作正确性检查&#xff0c;不关含义是否正确照样带入&#xff0c;只有在编译已被展开的源程…

ios 项目的.gitignore

git作为代码管理工具&#xff0c;.gitignore文件用来忽略哪些哪些文件不用添加到仓库管理https://www.gitignore.io/ 这个网址输入变成语言会帮你生成常用的忽略文件如&#xff1a;IOS项目&#xff0c;输入Xcode、Object-C、Swift、C、C、git、svn生成&#xff1a;# Created by…

计算机一级ps2019,2019年计算机一级考试PS基础学习点子:PS菜单中英文对照表.docx...

2019 年计算机一级考试 PS 基础学习点子&#xff1a; PS 菜单中英文对照表PS菜单中英文对照表一、FileNew2.Open3.Open As4.Open RecentClose6.Save7.Save As8.Save for Web9.Revert10.Place11.ImportPDF ImageAnnotationsExportManage WorkflowCheck InUndo Check OutUpload T…

ffmpeg 常用命令

mp4中的h264编码&#xff0c;而h264有两种封装&#xff1a; 一种是annexb模式&#xff0c;传统模式&#xff0c;有startcode&#xff0c;SPS和PPS是在ES中&#xff1b;另一种是mp4模式&#xff0c;一般mp4、mkv、avi会没有startcode&#xff0c;SPS和PPS以及其它信息被封装在co…

re.sub用法

re.sub功能是对于一个输入的字符串&#xff0c;利用正则表达式&#xff0c;来实现字符串替换处理的功能返回处理后的字符串 re.sub共有五个参数 三个必选参数pattern,repl,string 两个可选参数count,flags pattern,表示正则中的模式字符串 反斜杠加数字&#xff08;\n&#xff…

标准c语言怎么绘图,C语言绘图问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是我写的程序&#xff0c;检查无误&#xff0c;但运行不了&#xff0c;不过我这水平也只能做到这份上了&#xff0c;求大神指教&#xff0c;以后我一定好好学习#include#include#include#includevoid main(){int a,b,c,d,a2,b2,c…

计算机操作培训主持词,魅力女性沙龙会主持词文稿.docx

魅力女性沙龙会主持词??性的学科、一项重要的经济管理工作&#xff0c;是加强经济管理&#xff0c;提高经济效益的重要手段&#xff0c; 经济管理离不开会计&#xff0c; 经济越发展会计工作就显得越重要。会计工作在提高经济在企业的经营管理中起着重要的作用&#xff0c;其…