ios 项目目录语句_ios switch分支语句合并相同功能的case语句 - CSDN
  • iOS开发UI篇—常见的项目文件介绍 一、项目文件结构示意图   二、文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要用来放依赖的框架

    转自:http://www.cnblogs.com/wendingding/p/3766347.html  文顶顶


    iOS开发UI篇—常见的项目文件介绍

    一、项目文件结构示意图

     

    二、文件介绍

    1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件
    2.frameworks文件夹主要用来放依赖的框架
    3.test文件夹是用来做单元测试的
    4.常用的文件夹(项目名称文件夹)
    (1)XXXinfo.plist文件(在该项目中为  01-常见文件-Info.plist)
    1)简单说明
    是配置文件,该文件对工程做一些运行期的配置,非常重要,不能删除。
    在旧版本xcode创建的工程中,这个配置文件的名字就叫做info.plist。
    注意:因此在载入自己准备的plist文件的时候,不要以info命名。
     
    2)配置文件的属性介绍:
    bundle display name:
    应用程序显示名称。如果要修改桌面上显示的文件名称,只要修改此处就可以了。(需要先删除原始的程序,然后清空一下工程,因为程序有缓存)
    bundle identifer:
    唯一标识符(唯一的标识着一个应用程序,为了保证程序的唯一性,通常把域名倒过来写)
    Bundle versions string, short和bundle versions
     两个都用来表示应用程序的版本,前面的版本是正式的版本,后面的为内部版本,即公司内部开发的版本。要求提示:上传app的时候,后面更新的版本必须比之前的版本大。
    main storyboard file base name
    最主要的storyboard
     
    有两种方式修改plist配置文件:
    第一种方式即在如图所示的界面对配置信息进行修改。
    第二种方式直接点击工程,可以通过可视化界面进行设置。
      
    补充说明:
    a.应用程序支持的旋转方向。四个方向,垂直-不支持颠倒-左-右(最多只支持三个方向)
    b.plist文件打开之后是xml文件。和字典一样,是通过键值对的形式来保存数据。在xml文件中,添加了CF前缀
     
     (2)pch文件(在该项目中为  01-常见文件-Prefix.pch)
    1)简单说明
    保存的内容能够被项目中的其他所有原文件共享。
    通常情况下宏文件的处理,需要添加import导入头文件。以后可以把这个宏定义在这个文件中,不再需要导入头文件
     
    2)应用场景:
    1.用来定义一些全局的宏,
    2.用来导入一些全局都能用到的头文件。
    3.用来自定义NSlog,很消耗资源。(几乎是最消耗的),在发布的时候要把所有的打印都去掉。
    补充:在开发中,分为两个阶段。
    一是开发调试阶段,需要打印log调试程序,如果程序处于调试阶段,系统会为我们定义一个名称叫做DEBUG的宏。
    二是发布阶段:不需要打印log,因为log很占用资源,并且用户看不懂log,如果程序处理发布阶段,会去除这个宏。
    难道在发布的时候要一个一个把NSlog都注释掉?然后在开发第二版,第三版的时候,又要把所有注释掉的NSlog都打开?
    对于这个问题,在.pch文件中自定义NSlog就可以很好的解决。)
     
     3)自定义NSlog
    在做开发的时候可以先打开pch文件,看看公司中有没有自定义NSlog。
    复制代码
     1 // __OBJC__这个宏,在所有的.m和.mm文件中默认就定义了这个宏
     2 #ifdef __OBJC__
     3 // 如果这个全局的头文件或者宏只需要在.m或者.mm文件中使用,
     4 // 请把该头文件或宏写到#ifdef __OBJC__ 中
     5     #import <UIKit/UIKit.h>
     6     #import <Foundation/Foundation.h>
     7 
     8 #ifdef DEBUG
     9 #define NJLog(...) NSLog(__VA_ARGS__)
    10 #else
    11 #define NJLog(...)
    12 #endif
    13 
    14 #endif
    复制代码

    说明:…指接收可变参数

    补充:
    _OBJC_这个宏,在所有的.m和.mm文件中,都默认包含了这个宏,就默认会编译下面那两句
    条件编译语句,如果有这个宏,就编译下面的语句。

        #import <UIKit/UIKit.h>

        #import <Foundation/Foundation.h>

    如果这个全局的头文件或者宏,只需要在.m或.mm文件中使用,请把该文件或宏写到#ifdef_ODBC_中用。
    注意点:建议写在条件编译里面(注意#endif)
     
    infoplist.strings的文件,跟info.plist文件的本地化相关

    展开全文
  • iOS开发 SQL语句封装

    2018-05-18 13:51:59
    有的项目中会用到数据的缓存,所以自己封装了一套使用的方法:下载地址:

    有的项目中会用到数据的缓存,所以自己封装了一套使用的方法:

    下载地址:

    展开全文
  • iOS项目集成cocoaPods

    2018-08-29 12:39:29
    Cocoa Pods是一个负责管理iOS项目中第三方资源的工具,它的项目源代码在Github上面管理,得益于活跃的Github开发者社区大神们的不断维护,从2011年8月该项目启动以来,它保持活跃更新。开发iOS项目不可避免地要使用...

    一、Cocoa Pods简介

     

    Cocoa Pods是一个负责管理iOS项目中第三方资源的工具,它的项目源代码在Github上面管理,得益于活跃的Github开发者社区大神们的不断维护,从2011年8月该项目启动以来,它保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

    在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行$pod install命令,CocoaPods就会自动将这些第三方资源库的源代码下载下来,并且为当前的工程设置好响应的系统依赖和编译参数。

    二、Cocoa Pods的安装

     

    (1)安装

    安装的方式非常简单,Mac下已经再带了ruby,只要使用ruby的gem命令就可以安装了。打开Mac终端工具,在终端运行下面的命令,

    
     
    1. [sudo] gem install cocoapods

    2. pod setup

    说明,上面的[sudo]可以省略,这两个步骤都是进行网络请求的过程,所以需要一定的等待时间。

    (2)更新

    如果我们修改了Podfile文件,那么就需要更新CocoaPods,使用下面的ruby的gem命令来更新,

    [sudo] gem update cocoapods

    (3)查找第三方库

    可以使用pod search + lib_name来搜索第三方库,查看版本,如下命令所示,

    sudo pod search sdwebImage

    说明:SDWebimage是一个用于图片缓存的开源库,是对UIImageView类的扩展。

    三、Cocoa Pods的使用

    现在我在Desktop/develop文件夹下面新建了一个项目,参考CocoaChina中的一个教程,就是一个完整的天气App,项目名称为SimpleWeather,那么接下来这样操作使用Cocoa Pods,

    (1)进入项目SimpleWeather.project所在的文件夹,在终端输入以下命令,

    cd Desktop/develop/SimpleWeather

    (2)在该目录中,通过Vim新建Podfile

    vim Podfile

    (3)通过i(insert模式),插入如下的语句,

    
     
    1. platform :ios, '7.0' 

    2.   

    3. pod 'Mantle' 

    4. pod 'LBBlurredImage' 

    5. pod 'TSMessages' 

    6. pod 'ReactiveCocoa'

    这样就指定了第三方资源的iOS版本、开源库主要包括:Mantle、LBBlurredImage、TSMessages、ReactiveCocoa,这些都不重要,这里只是示范而已。

    输入完成以后退出vim并保存,先Esc然后输入:wq,表示写入并退出。

    (4)在终端输入$pod install,

    pod install

    初始化pod也是一个网络请求下载的过程,稍等一段时间,如果输入的资源名称没有问题,那么过一段时间就会在终端得到初始化成功的提示。

    四、通过WorkSpace来进行项目代码的编写

    进入项目文件夹,可以看见一个后缀名未.workspace的文件,双击打开。从现在开始我们通过来SimpleWeather.xcworkspace管理项目、编写代码,而不是之前的SimpleWeather.xproj,打开workspace文件,Xcode项目的文件结构如下图所示,

    第一个箭头所指的就是SimpleWeather项目;第二个箭头就是Pods帮我们生成的项目,它来管理需要的资源库;第三个箭头指向的就是Podfile里面指定的第三方开源库。

    还有需要注意的是每当我们修改了Podfile这个文件之后,一定要在项目所在文件夹执行$pod install命令,还可以执行$pod update来更新类库。

     

    总结:

    这里是我在开发过程中简单总结的,有很多没有考虑到的细节,我会根据自己遇到的问题再不断地更新这个博客。在上家公司工作的时候就遇到一些CocoaPods更新时候需要最高权限的问题,我尽量在后面重现,帮助遇到该问题的朋友解决这个问题。

     

     

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     

    iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods

    可以用来方便的统一管理这些第三方库。

    一、安装 

    由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下: 

    注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境    

    1、Ruby环境搭建 

    当前安装环境为Mac mini 10.10.3 Mac  OS 本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。  

     

    1-1 查看下当前ruby版本:打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby)

    1-2 更新ruby

    终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)

    1、gem sources --remove https://rubygems.org/ (该地址被墙了)
    2、gem sources -a https://ruby.taobao.org/ 
    3、gem sources -l  (用来检查使用替换镜像位置成功)

    最新操作细则参照:RubyGems 镜像 - 淘宝网

     

    2、下载安装CocoaPods  

    终端输入:sudo gem install cocoapods 

     显示如上信息表示已经安装成功

     

    PS: 升级10.11后,运行pod命令出现:

    -bash: pod: command not found

    解决办法:

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

    之后pod命令可以使用了。


    如果pod update / pod install 卡在:

    Updating local specs repositories

    等待即可,或者

    可以使用 "pod install --verbose --no-repo-update" 进行下载,原因可能x被墙。

     (CocoaPods其他相关问题处理操作方法

    3、使用CocoaPods

     3-1  新建一个项目,名字PodTest

    3-2 在终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)

    例如: cd /Users/KingKong/Desktop/PodTest

    3-3 建立Podfile(配置文件)

    输入 touch Podfile

    接着上一步,终端输入 vim Podfile 

    键盘输入 i,进入编辑模式,输入

    platform :ios, '7.0' 
    pod 'MBProgressHUD', '~> 0.8' 

    然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq

    注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件

    激动人心的时刻到了:确定终端cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。

    查看项目根目录:

    注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace

     

    对于工程发生的变化,有几点需要说明:

    a、第三方库会以成静态库方式引入工程使用

    CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成

    一个名称为libPods.a的静态库提供给工程使用。

    b、xcworkspace(PodTest.xcworkspace)的作用是管理工程和第三方库

    PodTest工程和Pods工程被以workspace的形式组织和管理。 

    打开项目后看到项目结构并且测试一下:

    运行结果:

    4、补充:  

    1、CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当需要同时导入多个第三方时候怎么办 ?

    这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。

    例如: 

    platform :ios

    pod 'JSONKit',       '~> 1.4'

    pod 'AFNetworking',  '~> 2.0' 

    2、CocoaPods可以查找你想要的第三方库

    终端输入命令:pod search UI

    疯了!我怎么查找这么大众的关键字,好多库~~

    然后重新编辑Podfile文件,按照之前的步骤,把更多的库都导入项目!

    3、上文中“建立Podfile(配置文件)接着上一步,终端输入 vim Podfile”步骤,如果不习惯使用vim编辑器,也可以使用linux命令touch,

          生成一个空的Podfile文件,然后使用其他的文本编辑器都可以,例如:  

    1     KingKong-Pro:~ kingkong$ cd /Users/KingKong/Desktop/TestProject   
    2     KingKong-Pro:TestProject kingkong$ touch Podfile  

     

    编辑好Podfile文件后,就可以执行pod install第三方导入了(详见:补充第1条),CocoaPods就开始为我们做下载源码、配置依赖关系、

    引入需要的framework等一些列工作。

    4、如果已经生成了CocoaPods管理的工程,则可以在Xcode中编辑Podfile,编辑保存后,别忘记cd到根目录,调用pod install命令

     

    5、项目存在多个Target的时候,需要配置Podfile文件来支持新增加的Target,否则只支持项目默认建立时生成的Target:

    a、如果新建一个Target,命名为Second,并且Second与Test两个Target所需要的第三方支持相同,也就是使用相同的Pods依赖库,则可以使用

    link_with关键字:

    1 link_with 'Test', 'Second'  
    2 platform :ios  
    3 platform :ios, ‘9.0’    
    4 pod 'AFNetworking', '~> 2.0' 

    b、如果不同的Target需要不同的依赖库,则可以

    复制代码

     1     platform :ios  
     2     target :'Test' do  
     3     pod 'Reachability'  
     4     pod 'SBJson'     
     5     pod 'AFNetworking'   
     6     end    
     7         
     8     target :'Second' do  
     9     pod 'OpenUDID'   
    10     end   

    复制代码

    6、出现/Library/Ruby/Gems/2.0.0/gems/claide-0.8.1/lib/claide/command.rb:417:in `help!': [!] You cannot run CocoaPods as root. (CLAide::Help)

    重新打开一个终端,然后pod install,不要sudo pod install。

    7、如果$ pod install时候遇到:

    Analyzing dependencies  
    Fetching podspec for `UAAppReviewManager` from `..`  
    [!] Unable to satisfy the following requirements:  
    - `UAAppReviewManager (from `..`)` required by `Podfile`   

    8、如果要移除Cocoapods,则可以:  

    a. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹

    b. 删除xcworkspace文件

    c. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用

    d. 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources

    ps:如果将cocoapods集成到工程中后不小心修改或删除了其相关文件导致无法便以通过例如:不小心把

    Pods.xcconfig给删除了然后出现diff: /../Podfile.lock: No such file or directory,用上面的方法删除cocoapods后,

    再重新$sudo pod install一下就好了。

    如果编译的时候出现权限问题,对工程文件夹$sudo chmod 777 path-to-project-folder/*

    $sudo chown 777 path-to-project-folder/* 

    9、当库正常导入,但还是找不到相关头文件,则可以:

    在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCROOT}再将后面参数改为recursive:

      

    10、Xcode - ld: library not found for -lPods

    当新增加一个Target,并且pod install后,由于创建项目是默认创建的Target的Build Phases中引用了旧的.a,例如libPods.a,当新增加Targget后,

    libPods.a已经变成了libPods-Test.a,而新增加的Target名字为Second,依赖的.a为libPods-Second.a。所以libPods.a此时已经不再被引用,并且不会被生成,

    如果任何地方引用了就会报错,解决办法是出现问题的Target的Build Phases中删除无用的.a引用,例如libPods.a

     

    11、pod update  

    若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。 

    12、在引用第三方,如果想明确第三方版本号的时候,还有一些小细节:

     

    1     pod 'AFNetworking'      //不显式指定依赖库版本,表示每次都获取最新版本  
    2     pod 'AFNetworking', '2.0'     //只使用2.0版本    
    3     pod 'AFNetworking', '> 2.0'     //使用高于2.0的版本    
    4     pod 'AFNetworking', '>= 2.0'     //使用大于或等于2.0的版本    
    5     pod 'AFNetworking', '< 2.0'     //使用小于2.0的版本    
    6     pod 'AFNetworking', '<= 2.0'     //使用小于或等于2.0的版本    
    7     pod 'AFNetworking', '~> 0.1.2'     //使用大于等于0.1.2但小于0.2的版本    
    8     pod 'AFNetworking', '~>0.1'     //使用大于等于0.1但小于1.0的版本    
    9     pod 'AFNetworking', '~>0'     //使用最新版本,与不显示指定依赖库版本相同  

     

     唐巧大神这里有更多内容,其中介绍了pod制作及Podfile.lock的相关内容《用CocoaPods做iOS程序的依赖管理》 

    13、彻底 删除/卸载CocoaPods所有引用的方法 

     1)查询当前安装的cocoapod 的相关信息 gem list 如图

     2)删除所有的引用项

      1、sudo gem uninstall cocoapods -v 1.0.0
      2、sudo gem uninstall cocoapods-core -v 1.0.0
      3、sudo gem uninstall cocoapods-stats -v 1.0.0
      4、sudo gem uninstall cocoapods-search -v 1.0.0
      5、sudo gem uninstall cocoapods-plugins -v 1.0.0
      6、sudo gem uninstall cocoapods-deintegrate -v 1.0.0
      7、sudo gem uninstall cocoapods-downloader -v 1.0.1 
      8、sudo gem uninstall cocoapods-trunk -v 1.0.0
      9、sudo gem uninstall cocoapods-try -v 1.0.0

      注:-v 1.0.0 版本号对应我们第一步中查询到的版本号。

    3)删除.cocoapods目录,在终端输入以下命令: 

       1、cd ~/.cocoapods/ 

      2、sudo -rm -rf ~/.cocoapods/

    14、安装指定的cocoapod版本到 local 目录

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

    15、

    1. RPC failed; curl 56 SSLRead() return

    2. error -36

     问题处理 先说解决方案:
    1.访问 https://github.com/CocoaPods/Specs,然后将Specs项目fork到自己的github账户上
    2. 下载GitHub Desktop, 然后clone Specs项目。
    3. 将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下。
    4. 运行pod setup 

    PS:pod setup的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoa pods不使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。

     


    如果您觉得阅读完本文对您有帮助,请点一下“推荐”按钮,您的推荐将是我写作的最大动力;本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/ChinaKingKong/欢迎各位转载,但未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接否则保留追究法律责任的权利。

     

     

    ///////////////////////////////////////////////////////////////////////////////////////////

    1.首先我们要打开我们的终端:

    2.在终端输入 这条命令  gem sources -l

     

    2.1如果是和我是一样的显示,则镜像已添加,无需更改,如果不一样,则需要进行更改

    这里输出的如果是 https://rubygems.org/ 镜像的话,

    我们要删除这个镜像,然后添加镜像:https://ruby.taobao.org/ 具体操作命令如下:

    <1> 删除原始镜像:gem sources --remove https://rubygems.org/

    <2> 添加新的镜像:gem sources -a https://ruby.taobao.org/

    <3> 查看是否更改成功:再次输入以下命令: 如2中图所示,那么我们镜像更改成功了

     

    3.接下来我们要进行安装 cocoapods 的重要步骤了。。。

    输入:sudo gem install -n /usr/local/bin cocoapods

    大概10几分钟,就会安装成功了,成功后的样子

    3.1 查看是否安装成功  输入: pod search AFNetworking

    如果出现下图所示,表示安装成功。

     

     

     

     

    4. 接下来我们来使用cocoapods

      4.1 首先我们先创建项目,如果创建完之后,如果知道路径的直接cd 到你的项目中去,不知道的直接 在 Finder里,找到 项目文件夹,直接拖进 终端运行 

    (cd —> 项目文件根目录)

     4.2 上面就是我的项目的的根目录(切记一定要到项目的根目录),然后在这里我们要创建Podfile,

    命令如下:touch Podfile

    如下图所示: 我们创建Podfile 成功

     

    4.3 接下来我们就要操作Podfile 文件了,说到这里有二种方法来写我们的Podfile文件

    第一种使用vim

    第二种直接打开Podfile 来写入我们需要的东西 (然后在进行其他操作即可)

    4.3.1 先说第一种 vim 操作

    使用之前我们比如我们要加入 AFNetworking 这个第三方库,我们执行一下命令:pod search AFNetworking 

     命令:pod search AFNetworking  显而易见是进行搜索AFNetworking 这个第三方网络请求的库

    所有如果想要添加那个库的话,我们可以直接在终端打印 pod search ***库文件名 ,然后会显示出,这个库的所有版本,下图是我打印的的AFNetworking的所有版本,我画红色线条的哪里就是我们要写入到我们Podflie文件里面的内容

     

    4.3.1.1  我们来使用Vim 编辑器,终端打印  vim Podfile  如下图所示:

    里面写入的参数:platform  : iOS,'7.0'  (注:这个参数表示为最低支持的系统版本)

    第二个参数就是我们上一步执行搜索出来的内容,复制到这里就Ok了

    (注:如图所示,我们加入了我们需要的东西,写入完成了,然后我们要保存退出,这里要怎么退出来vim呢?,写入完成后,我们点击左上角的esc按钮,然后输入冒号(:英文的冒号),然后输入wq,(wq 的意思是保存退出的意思),然后回车) 如图所示:

    然后在终端中在输入 pod install   , cocoapods 即安装成功,进行使用

    4.3.1.2 这里我们介绍第二种方法,直接在我们的项目中使用Podfile 文件来写入上面的内容(注:这种方法简单粗暴,建议大家使用这种方法) 如图所示:

     

    打开我们的项目的文件夹 ,然后双击打开Podflie文件,在里面写入上面的两行:如图所示

    (我是添加了二个第三方的库)写入完成,保存commond + s退出,我们回到终端


     

    回到终端,接下来我们的操作就是一样了,我们要在我们的项目中导入AFNetworking 这个第三方库

    接下来的两个命令是我们经常使用的

    Note:

    【 pod install: 使用 :pod install --verbose --no-repo-update 】

    【 pod update: 使用: pod update --verbose --no-repo-update】

     

    4.4 接下来我们在终端输入命令: pod install --verbose --no-repo-update

     如果看到下面的字样,表示我们导入第三方库成功:(如图所示:)

    这里告诉我们再次打开项目,要用  单选和多选按钮.xcworkspae打开

     5 接下来们打开我们的项目,你会发现,多出来了一些东西,如图所示:

    所以我们再次打开项目的时候要打开 后缀为 xcworkspace 的项目 

     

     

    6 根据上面的目录可以看到,我们加入AFNetworking 的库已经成功添加进来了,到这里基本算是完成了

    7 如果我们不想要这个第三方库,该怎么删除呢??

     

     假如我现在不想添加这个AFNetworking 这个库了,我想把它从我们的项目中移除,怎么办:

     

     

    我们可以直接删除    pod 'AFNetworking', '~> 3.0.4'    这句话

    接下来我们回到终端,输入命令:pod update --verbose --no-repo-update(注 :更新命令)

    然后我们再看我们的Podfile文件,里面已经没有了AFN的库 

    cocoapods基本就这样,下载第三方库进行管理,删除第三方库更新

     

    cocoapods常用的命令整理:

    pod install --verbose --no-repo-update  插入第三方库

    pod update --verbose --no-repo-update 更新第三方库

    pod  install 更新所有第三方库 

    记得我们每次都要先更新在插入 ^@^ Big_Xin

    展开全文
  • 在日常开发工作中,您经常需要判断用户的输入是否正确,以进行不同的处理逻辑。例如当用户输入非15位或18位身份证时,需要提醒用户输入错误:


    3.3.4  if条件判断语句

    在日常开发工作中,您经常需要判断用户的输入是否正确,以进行不同的处理逻辑。例如当用户输入非15位或18位身份证时,需要提醒用户输入错误:

    1     let IDCard ="35021119810618000"
    2     let count = IDCard.lengthOfBytes(using:String.Encoding.utf8)
    3     if (count != 18 &&count != 15)
    4     {
    5         print("错误的身份证号码。")
    6     }
     

    由于用户输入的身份证号码为17位,所以您将在控制台得到这样的输出:

    错误的身份证号码。

     

    Swift的if语句不需要使用小括号,所以将上面的代码修改为这样也是正确的:

    1     if count != 18 && count!= 15

     

    在Object-C环境中使用if语句,如果代码段只有一行,可以不使用大括号{},但是在Swift中,为了提高代码的规范性,大括号是强制使用的。

    通过配合使用else语句,可以进行更多的条件判断:

    1     let IDCard ="35021119810618000"
    2     let count = IDCard.lengthOfBytes(using:String.Encoding.utf8)
    3     if count == 18
    4     {
    5         print("正确的身份证号码")
    6     }
    7     else if count == 15
    8     {
    9         print("正确的身份证号码")
    10   }
    11   else
    12   {
    13       print("错误的身份证号码")
    14   }




    3.3.5  switch条件判断语句

    switch语句会尝试把某个值,与若干个条件进行匹配。根据第一个匹配成功的条件,switch语句会执行对应的代码。当条件判断的情况比较多时,通常用switch语句替换if语句。

    switch语句都由多个case构成。每一个 case 都是代码执行的一条分支,这与if语句比较类似。与之不同的是,switch语句会决定哪一条分支应该被执行。与Obejct-C不同的地方是,在Swift中,您不需要为case分支添加break语句:

    1     let time = 12
    2     switch time
    3     {
    4         case 7:
    5             print("It's time to get up.")
    6         case 8, 12, 18:
    7             print("It's time foreating.")
    8         case let x where x>18 &&x<=24:
    9             print("Happy time.")
    10       case 1...6:
    11           print("It's time for rest.")
    12       default:
    13           print("Keep busy.")
    14   }

     

    为了匹配某些更特定的值,Swift 提供了几种更复杂的匹配模式。在第8行代码中,使用了let(或var)语句来绑定常量,从而判断在18点与24点之间的时间范围的情况。

    而在第10行代码中,使用了...范围符创建了一个1点至6点之间的条件范围。

    switch语句必须是完整的,即每一个可能的值,都必须至少有一个case分支与之对应。在某些不可能涵盖所有值的情况下,你可以使用默认default分支满足该要求。在第12行代码中,添加了一个default语句,以判断其它未覆盖的条件。这个默认分支,必须放置在语句的最后面。




    3.3.6  continue语句和forthrough语句

    continue语句

    Swift的continue语句,用来告诉一个循环体停止本次的循环,并立即进入下次的循环。

    在下面的代码中,使用了continue语句,用来统计男生的数量:

    1     let studentGender = ["男", "女", "男", "女", "男", "男", "女"]
    2     var boysAmount = 0;
    3     for gender in studentGender
    4     {
    5         if(gender == "女")
    6         {
    7             continue
    8         }
    9         boysAmount += 1
    10   }
    11   print(boysAmount)

       

    由于在第5至8行代码中,使用了continue语句,所以在遍历studentGender数组的过程中,当遇到值为"女"的字符串时,程序跳过了当前的循环,并进入下一个循环,从而没有将女生统计在内,而只汇总男生的数量。

     



    fallthrough语句

    在Swift语言中,switch语句并不会从一个case分支,跳转到下一个case分支。而是只要匹配到一个case分支,就完成整条switch语句。相比之下,在Object-C语言中,您必须通过在case分支的末尾插入break语句,来阻止自动跳入下一个case分支中。

    Swift的这种特性,可以使程序代码更加清晰和可预测,从而避免无意识地执行了多个case分支。

    尽管如此,Swift仍然为您提供了fallthrough语句,通过使用该语句,可以允许swift代码在执行完一个case分支后,跳转到下一个case分支中:

    1     let time = 6
    2     var message = "It'snow"
    3     switch time
    4     {
    5         case 2, 3, 6, 7, 9, 10, 16:
    6             message += " \(time) o'clock"
    7             fallthrough
    8         default:
    9             message += "."
    10   }

     

    在第7行代码中,由于使用了fallthrough语句,所以当执行完第一个case分支后,跳转到default语句中,从而为message变量添加了句号。


    酷课堂最新互动教程:《iOS开发中的神兵利器》

    苹果商店免费下载:https://itunes.apple.com/cn/app/id1209739676

    ~ 共140节课程,讲解GitHub中近百个过千star的iOS热门开源项目
    ~ 市面上唯一大规模讲解GitHub中热门的iOS开源项目的教程
    ~ 快速、优雅地解决iOS开发工作中遇到的各种棘手问题








    展开全文
  • 其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。 下面就来为大家介绍如何使用GitHub!($ 后面跟的都是mac终端命令行语句) 1.git的安装 1.1 安装 $ sudo apt...

    GitHub学习及使用教程(命令行版)

    GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

    下面就来为大家介绍如何使用GitHub!($ 后面跟的都是mac终端命令行语句)

    1.git的安装

    1.1 安装

    $ sudo apt-get install git

    1.2 查看git的版本

    $ git --version

    1.3 查看git的所有操作语句

    $ git

    2.git的全局配置(便于提交代码时,知道是谁提交的代码)

    2.1 用户名

    $ git config --global user.name BigBig //  BigBig为用户名

    2.2 邮箱

    $ git config --global user.email BigBig@163.com // BigBig@163.com为你的邮箱

    2.3 终端打印颜色 // 可以不设置

    $ git config --global color.ui true 

    2.4 列出所有配置

    $ git config --list

    创建&查看状态

    在本地新建一个空仓库

    $ git init

    查看仓库状态

    $ git status //可以查看仓库里文件状态,打印的信息中Untracked files表示一下文件未保存到仓库(没有上户口);如果显示nothing to commit, working directory clean表示表示本地仓库和工作区的代码是一样的

    显示文件的扼要信息: $ git status -s

    添加&提交

    将文件添加到代码库

    $ git add 文件名 // 向仓库登记(上户口)

    将当前文件夹下的所有新建或修改的文件一次性添加到代码库

    $ git add .

    将修改提交到代码库

    $ git commit -m '本次提交的备注信息'

    提示:
    * 在此一定要使用 -m 参数指定修改的备注信息
    * 否则会进入 vim 编辑器,如果对vim不熟悉,会是很糟糕的事情

    日志

    查看所有版本库日志
    $ git log
    查看指定文件的版本库日志
    $ git log 文件名
    提示:在git中,版本号是一个由SHA1生成的哈希值

    版本号

    回到当前版本,放弃所有没有提交的修改
    $ git reset --hard HEAD
    回到上一个版本
    $ git reset --hard HEAD^
    回到之前第3个修订版本
    $ git reset --hard HEAD~(3)
    回到指定版本号的版本
    $ git reset e695b67

    查看分支引用记录
    $ git reflog

    单个文件的修改管理

    查看文件变化
    $ git diff
    撤销对文件做的修改
    $ git checkout 文件名


    忽略文件

    $ echo '文件名' > .gitignore

    查看文件差别 : $ git diff --staged

                             $ git diff HEAD

    撤销误操作: $ git reset 文件名// 从本地仓库中取出文件覆盖,相当于取消commit

    删除文件: $ git rm 文件名

    修改文件名: $ git mv 旧文件名 新文件名

    缓存工作区: $ git stash

    展开缓存: $ git stash pop


    分支

    新建分支:

    $ git branch 新分支名

    查看当前所有分支 :

    $ git branch

    查看远程分支

    $ git branch -r

    删除分支:

    $ git branch -d 分支名

    删除远程分支

    $ git branch -r -d origin/bugfix1.0

    切换分支:

    $ git checkout 分支名

    新建分支并切换到该分支:

    $ git checkout -b 分支名

    在目的分支上合并来源分支(先切换到目的分支上): $ git merge 来源分支名

    从GitHub上克隆(大家可以打开团队在getHub上的项目)

    打开团队在getHub上的项目,复制项目链接

    终端进入到存放项目的空文件夹后

    $ git clone +链接

    从服务器拉项目
    git pull -u origin master
    将项目内容推送到服务器
    git push -u origin master










    展开全文
  • 这里说到检查项目中是否包含IDFA,那如何来对iOS项目(包括第三方SDK)检查是否包含IDFA呢? 2)检查IDFA的方法: 步骤: 1、打开终端cd到要检查的文件的根目录。 2、执行下列语句:grep -r ...
  • 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在NSURLConnection、NSOperation等类库...
  • 常用第三方今天就给大家总结一下,我们在项目中用到最多的第三方,免去了大家花时间去搜索,在这里大家进行了全面的总结.1. 编程框架1:基于响应式编程思想的oc 地址:...
  • 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目。AFNetworking是一个轻量级的iOS、Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库。它建立在NSURLConnection、NSOper
  • 3.3 循环语句和条件判断语句3.3.1 for循环Swift 的for循环语句,可以用来重复执行一系列语句,直到达成特定的条件。Swift提供了两种for循环语句,一种是C语言风格的for循环:条件递增(for-condition-increment),...
  • 创建数据库管理类SQLiteManager 设置类方法创建单例对象 Swift 中单例对象可以直接输出定义的自身类内的成员变量. ... class SQLiteManager: NSObject { //MARK: - 创建类的静态实例变量即为单例对象 l
  • iOS程序启动流程 完整启动流程 UIApplicationMain方法 UIApplication AppDelegate代理生命周期回调 控制器View的加载 iOS工程常见文件 xxx-Infoplist文件 InfoPliststrings xxx-Prefixpch Defaultpng Iconpng iOS...
  • ios APP项目架构心得

    2018-07-13 16:25:32
    ios项目架构 ,如图所示
  • 项目经过需求的变更,产品本身的迭代,会经过多次的改版,有...在Android项目中使用Lint可以轻松的完成这个任务,在iOS上没有找到比较好的工具,因此借助网上的例子,写了一个python清除Xcode不用的图片资源的脚本。
  • 在chrome和Android上面都是正常的,但是项目打包到iOS上面,其他的都正常,但是iframe内容为空,出现了白屏,出现这个的原因是iOS不让我们访问外部链接,所以我们要给app授权,在config.xml中配置下面的语句: ...
  • 这里说到检查项目中是否包含IDFA,那如何来对iOS项目(包括第三方SDK)检查是否包含IDFA呢? (2)检查IDFA的方法: 步骤: 1、打开终端cd到要检查的文件的根目录。 2、执行下列语句:grep -r ...
1 2 3 4 5 ... 20
收藏数 22,825
精华内容 9,130
关键字:

ios 项目目录语句