Cocoapods使用教程

本文轉(zhuǎn)自最新的CocoaPods的使用教程(一)

一. CocoaPods的介紹

什么是CocoaPods餐济?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開(kāi)源庫(kù)的工具人弓,CocoaPods的項(xiàng)目源碼在https://github.com/CocoaPods/Specs上管理。

經(jīng)過(guò)CocoaPods團(tuán)隊(duì)的不懈努力京郑,2016年5月10號(hào),CocoaPods終于在其官方博客上宣布正式發(fā)布CocoaPods 1.0。與此同時(shí)氛改,公開(kāi)了相應(yīng)的Mac版App——CocoaPods App 1.0

CocoaPods App 1.0 的下載地址:https://cocoapods.org/app

二. CocoaPods的安裝

1. 替換ruby源

CocoaPods是基于ruby ecosystem的比伏,需要ruby環(huán)境胜卤,使用ruby的gem命令。所以我們的系統(tǒng)要有ruby環(huán)境赁项。然而Mac系統(tǒng)默認(rèn)會(huì)安裝好ruby環(huán)境葛躏。可在終端ruby -v查看ruby版本:

//查看ruby版本
ruby -v
//輸出信息
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

查看ruby源

gem sources -l

默認(rèn)情況下悠菜,終端會(huì)顯示下面:

*** CURRENT SOURCES ***
https://rubygems.org/

當(dāng)然這個(gè)源在墻內(nèi)是訪問(wèn)不到的,所以要更換到ruby-china的鏡像

// 1.移除掉原有的源
gem sources --remove https://rubygems.org/
//2.淘寶的源已經(jīng)不更新維護(hù)了舰攒,現(xiàn)在使用ruby-china的源哦
gem source -a https://gems.ruby-china.org
以下命令添加淘寶的源:(不建議繼續(xù)使用)
gem sources -a https://ruby.taobao.org/
// 3.驗(yàn)證是否替換成功
gem sources -l

如果顯示下面輸出就說(shuō)明正確:

*** CURRENT SOURCES ***
https://gems.ruby-china.org

2. 更新升級(jí) Gem 版本

Gem是管理Ruby庫(kù)和程序的標(biāo)準(zhǔn)包,如果它的版本過(guò)低也可能導(dǎo)致安裝失敗悔醋,解決方案自然是升級(jí)Gem摩窃,執(zhí)行下述命令即可:

// 更新升級(jí)gem,國(guó)內(nèi)需要切換源
sudo gem update --system

查看gem版本

gem -v
2.6.6

3. 安裝CocoaPods

OS X 10.11 以前安裝命令為:

sudo gem install cocoapods// 安裝cocoapods

Mac系統(tǒng)為OS X EL Capitan安裝命令為:

//安裝最新版本
sudo gem install -n /usr/local/bin cocoapods

//安裝指定版本
sudo gem install -n /usr/local/bin cocoapods -v 1.0.0 

//安裝最新的release beta版本
sudo gem install -n /usr/local/bin cocoapods --pre 

如果你想卸載CocoaPods怎么辦芬骄?看下面:

//卸載CocoaPods
sudo gem uninstall cocoapods

4. 更新Podspec索引文件

如果按照上面3個(gè)步驟沒(méi)問(wèn)題猾愿,用命令pod --version查看是否安裝成功,如果成功會(huì)顯示pod的版本账阻。

pod setup作用:將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下

pod安裝成功之后一個(gè)首先的操作就是執(zhí)行命令(不是必須的):

pod setup

所有的第三方開(kāi)源庫(kù)的Podspec文件都托管在https://github.com/CocoaPods/Specs

我們需要把這個(gè)Podspec文件保存到本地蒂秘,這樣才能讓我們使用命令pod search 開(kāi)源庫(kù)搜索一個(gè)開(kāi)源庫(kù),怎樣才能把github上的Podspec文件保存本地呢淘太?那就是 pod setup

執(zhí)行pod setup時(shí)姻僧,CocoaPods 會(huì)將第三方的podspec索引文件更新到本地的~/.cocoapods/repos目錄下

  • 如果沒(méi)有執(zhí)行過(guò) pod setup,那用戶根目錄下~找不到.cocoapods/repos目錄的琴儿,沒(méi)有創(chuàng)建這個(gè)目錄段化。

  • 如果執(zhí)行 pod setup,并且命令沒(méi)有執(zhí)行成功造成,那么會(huì)創(chuàng)建~/.cocoapods/repos目錄显熏,只不過(guò)目錄是空的。

  • 如果執(zhí)行 pod setup晒屎,并且命令執(zhí)行成功喘蟆,說(shuō)明把github上的Podsepc文件更新到本地缓升,那么會(huì)創(chuàng)建~/.cocoapods/repos目錄,并且repos目錄里有一個(gè)master目錄蕴轨,這個(gè)master目錄保存的就是github上所有第三方開(kāi)源庫(kù)的Podspec索引文件港谊。

但是第一次執(zhí)行pod setup時(shí),這個(gè)github的Podspec索引文件比較大橙弱,有 300M 左右(以后會(huì)越來(lái)越大的)歧寺,所以第一次更新時(shí)非常慢.要耐心等待......可以進(jìn)去目錄~/.cocoapods/repos使用命令du -sh *來(lái)查看下載文件的大小了

怎么才能快點(diǎn)呢?網(wǎng)上好多給出都是更換索引庫(kù)的鏡像棘脐,gitcafe
和oschina斜筐, gitcafe已經(jīng)被coding收購(gòu)了(2016年3月份左右收購(gòu))。這兩個(gè)我親測(cè)蛀缝,現(xiàn)在都不行了(可能是我網(wǎng)速不好顷链,基本上就是連接失敗,有空網(wǎng)速好點(diǎn)的時(shí)候我在測(cè)試一下)屈梁。所以還是別更換 CocoaPods 索引庫(kù)的鏡像了嗤练。

三. CocoaPods的使用

1. 新建 Podfile文件

使用時(shí)需要在你的項(xiàng)目根目錄下新建一個(gè)名為Podfile的文件(文件名一定為Podfile,不能更改)在讶,將依賴的庫(kù)名字依次列在文件中即可.

//進(jìn)入項(xiàng)目的根目錄
cd ~/Desktop/Projects/JYCocoaPodsTest
//新建一個(gè)名為Podfile的文件
touch Podfile

2. 編輯 Podfile文件

CococaPods升級(jí)到1.0.0版本之后煞抬,Podfile文件的格式也發(fā)生了很大改變
我來(lái)帶領(lǐng)大家寫一個(gè)完整的Podfile文件 ,各個(gè)選項(xiàng)的解釋在文件后面一起解釋。

假設(shè)我們的項(xiàng)目名稱為JYCocoaPodsTest, 為JYCocoaPodsTest新建了一個(gè)UITarget真朗。打開(kāi)JYCocoaPodsTest.xcodeproj結(jié)構(gòu)如下:

[圖片上傳失敗...(image-286769-1521437748273)]

1. 簡(jiǎn)單的Podfile:

platform :ios, '7.0'
inhibit_all_warnings!

xcodeproj 'JYCocoaPodsTest'

workspace 'JYCocoaPodsTest'
use_frameworks!

target 'JYCocoaPodsTest' do
  pod 'AFNetworking',
  pod 'JYCarousel', '0.0.1'
end

2. 稍微復(fù)雜的Podfile:

source 'ssh://git@gitlab.9ijx.com:9830/iOS/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '7.0'
use_frameworks!
inhibit_all_warnings!

workspace 'JYCocoaPodsTest'

target 'JYCocoaPodsTest' do

pod 'AFNetworking'

pod 'JYCarousel', '0.0.1'

pod 'WCJCache', :git => "http://gitlab.9ijx.com/iOS/WCJCache.git"

target :JYCocoaPodsTestUITests do
    inherit! :search_paths
    pod 'YYText'

end

end

3. Podfile的語(yǔ)法解釋:

1. platform :iOS, '7.0'

  • 指定了開(kāi)源庫(kù)應(yīng)該被編譯在哪個(gè)平臺(tái)以及平臺(tái)的最低版本此疹。
  • 若不指定平臺(tái)版本,官方文檔里寫明各平臺(tái)默認(rèn)值為iOS:4.3,OS X:10.6,tvOS:9.0,watchOS:2.0

2. inhibit_all_warnings!

  • 屏蔽cocoapods庫(kù)里面的所有警告
  • 這個(gè)特性也能在子target里面定義,如果你想屏蔽某pod里面的警告也是可以的:
pod 'JYCarousel', :inhibit_warnings => true

3. xcodeproj,現(xiàn)在被project代替遮婶,這個(gè)變量就別使用了

  • 允許你指定需要鏈接的工程

4. use_frameworks!
使用frameworks動(dòng)態(tài)庫(kù)替換靜態(tài)庫(kù)鏈接
(1)swift項(xiàng)目cocoapods 默認(rèn) use_frameworks!
(2)OC項(xiàng)目cocoapods 默認(rèn) #use_frameworks!

**5. workspace **

  • 指定應(yīng)該包含所有projects的Xcode workspace.
  • 如果沒(méi)有顯示指定workspace并且在Podfile所在目錄只有一個(gè)project蝗碎,那么project的名稱會(huì)被用作于workspace的名稱

6. project

  • 默認(rèn)情況下是沒(méi)有指定的,當(dāng)沒(méi)有指定時(shí)旗扑,會(huì)使用Podfile目錄下與target同名的工程:(我們只有一個(gè)工程JYCocoaPodsTest)

    JYCocoaPodsTest這個(gè)Target只有在JYCocoaPodsTest工程中才會(huì)鏈接

    target 'JYCocoaPodsTest' do
    project 'JYCocoaPodsTest'
    ...
    end

5. target 'xxxx' do
** end**

  • 指定特定Target的依賴庫(kù)
  • 可以嵌套子Target的依賴庫(kù)

6. inherit! :search_paths

  • 明確指定繼承于父層的所有pod蹦骑,默認(rèn)就是繼承的

7. source

  • 指定specs的位置,自定義添加自己的podspec。公司內(nèi)部使用
    cocoapods 官方source是隱式的需要的臀防,一旦你指定了其他source 你就需要也把官方的指定上
    例如:
source 'ssh://git@gitlab.9ijx.com:9830/iOS/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'

  • 當(dāng)我們使用pod install或者pod setup時(shí)眠菇,會(huì)自動(dòng)在~/.cocoapods/repo目錄下更新項(xiàng)目需要的podspec索引文件如下:

    [圖片上傳失敗...(image-749b21-1521437748272)]

4. 依賴庫(kù)的基本寫法:

pod 'JYCarousel', //不顯式指定依賴庫(kù)版本,表示每次都獲取最新版本
pod 'JYCarousel', '0.01'//只使用0.0.1版本
pod 'JYCarousel', '>0.0.1' //使用高于0.0.1的版本
pod 'JYCarousel', '>=0.0.1' //使用大于或等于0.0.1的版本
pod 'JYCarousel', '<0.0.2' //使用小于0.0.2的版本
pod 'JYCarousel', '<=0.0.2' //使用小于或等于0.0.2的版本
pod 'JYCarousel', '~>0.0.1' //使用大于等于0.0.1但小于0.1的版本袱衷,相當(dāng)于>=0.0.1&&<0.1
pod 'JYCarousel', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'JYCarousel', '~>0' //高于0的版本捎废,寫這個(gè)限制和什么都不寫是一個(gè)效果,都表示使用最新版本

5. 依賴庫(kù)的自定義寫法
下面都會(huì)用到podspec文件致燥,所以要熟悉這個(gè)文件的構(gòu)成才可以.
我會(huì)在下一篇博客編輯這個(gè)文件

  • Using the files from a local path (使用本地文件)
pod 'JYCarousel', :path => '/Users/Dely/Desktop/JYCarousel'

我新建一個(gè)工程PodTest來(lái)演示
1.在podfile寫好依賴路徑

platform :ios, '7.0'
inhibit_all_warnings!
workspace 'PodTest'
target 'PodTest' do
 pod 'JYCarousel', :path => '/Users/Dely/Desktop/JYCarousel'
end

2.在你的本地pod庫(kù)添加xxx.podspec文件登疗,(一定要注意是根目錄添加

[圖片上傳失敗...(image-bc1eb8-1521437748272)]


3.編輯xxx.podspec文件
主要下面紅框點(diǎn),修改成你的本地路徑:

[圖片上傳失敗...(image-2b2c5b-1521437748272)]

4.進(jìn)入項(xiàng)目根目錄進(jìn)行安裝pod install

[圖片上傳失敗...(image-c4b2a1-1521437748272)]

  • From a podspec in the root of a library repository (引用倉(cāng)庫(kù)根目錄的podspec)
    在倉(cāng)庫(kù)根目錄下加入podsepc文件上傳到git上就可以了(比較簡(jiǎn)單)
使用倉(cāng)庫(kù)中的master分支:
pod 'JYCarousel', :git => 'https://github.com/Delyer/JYCarousel.git'

使用倉(cāng)庫(kù)的其他分支:
pod 'JYCarousel', :git => 'https://github.com/Delyer/JYCarousel.git' :branch => 'release'

使用倉(cāng)庫(kù)的某個(gè)tag:
pod 'JYCarousel', :git => 'https://github.com/Delyer/JYCarousel.git', :tag => '0.0.1'

或者指定一個(gè)提交記錄:
pod 'JYCarousel', :git => 'https://github.com/Delyer/JYCarousel.git', :commit => '5e473f1e0530bb3799f2f0d70554b292570bd8f0'

需要特別注意的是,雖然這樣將會(huì)滿足任何在Pod中的依賴項(xiàng)通過(guò)其他Pods
但是 podspec必須存在于倉(cāng)庫(kù)的根目錄 中辐益,如果根目錄中沒(méi)有存在這個(gè)podspec文件断傲,你將不得不使用下面提到的幾種方式之一

  • From a podspec outside a spec repository, for a library without podspec(在一個(gè)不帶podsepec的庫(kù)里引用外部的spec)

    如果一個(gè)podspec能夠從外部的倉(cāng)庫(kù)源的獲取,設(shè)想一下智政,也通過(guò)HTTP來(lái)獲取podspec:

  pod 'JSONKit', :podspec => 'https://example.com/JSONKit.podspec'

  • pod spec
    使用一個(gè)在給定podspec中聲明的Pod的依賴項(xiàng)认罩。如果如果沒(méi)有參數(shù)被傳遞,那么在Podfile根部的第一個(gè)podspec會(huì)被使用续捂。它將會(huì)被庫(kù)所在的工程所使用
    注意:這個(gè)不會(huì)包含哪些來(lái)自于podspec的資源而僅僅是來(lái)自于CocoaPods基礎(chǔ)架構(gòu)

    例子:

podspec
podspec :name => 'QuickDialog'
podspec :path => '/Documents/PrettyKit/PrettyKit.podspec'

上面的基本夠我們?nèi)粘J褂每汛埂H绻氵€想了解更多。請(qǐng)到CocoaPods官方博客學(xué)習(xí):https://guides.cocoapods.org

3. 安裝依賴開(kāi)源庫(kù)

第二步中我們編輯好的Podfile文件保存好疾忍,進(jìn)入項(xiàng)目根目錄執(zhí)行命令

//進(jìn)入項(xiàng)目的根目錄
cd ~/Desktop/Projects/JYCocoaPodsTest
//安裝依賴庫(kù)
pod install

[圖片上傳失敗...(image-396a06-1521437748272)]

pod install命令執(zhí)行成功后乔外,會(huì)看到項(xiàng)目根目錄下多出xxx.xcworkspace床三、Podfile.lock文件Pods目錄一罩。再看看剛才執(zhí)行完pod install命令打印出來(lái)的內(nèi)容的最后一行:From now on use CocoaPodsDemo.xcworkspace.提示我們從現(xiàn)在起,我們需要使用JYCocoaPodsTest.xcworkspace文件來(lái)開(kāi)發(fā)撇簿。

4. 第三方庫(kù)更新

pod install相似的一個(gè)命令就是pod update.
如果未指定特定版本的話,pod update將所有第三方框架更新到最新版本聂渊。

5. pod文件和命令說(shuō)明

-----------------------------新增文件------------------------------
1. Podfile文件
項(xiàng)目的第三方庫(kù)的依賴以及項(xiàng)目的基本配置

2. Podfile.lock文件
最后一次更新Pods時(shí), 保存所有第三方框架的版本號(hào)

3. pods目錄
保存通過(guò)pod install或者pod update下載下來(lái)的第三方開(kāi)源庫(kù)的源代碼

4. xxx.xcworkspace文件
重新生成一個(gè)工作空間,打開(kāi)這個(gè)工程文件來(lái)進(jìn)行開(kāi)發(fā)

-----------------------------常用指令------------------------------
1. pod setup
將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下,更新本地倉(cāng)庫(kù)四瘫。

2. pod repo update
執(zhí)行 pod repo update更新本地倉(cāng)庫(kù)汉嗽,本地倉(cāng)庫(kù)完成后,即可搜索到指定的第三方庫(kù)找蜜,作用類似pod setup饼暑。不過(guò)這個(gè)命令經(jīng)常不單獨(dú)調(diào)用。比如執(zhí)行pod setup洗做、pod search弓叛、pod installpod update會(huì)默認(rèn)執(zhí)行pod repo update

3. pod search xxx
查找某一個(gè)開(kāi)源庫(kù)姆蘸。查找開(kāi)源庫(kù)之前丈钙,默認(rèn)會(huì)執(zhí)行pod repo update指令

4. pod list
列出所有可用的第三方庫(kù).現(xiàn)在已經(jīng)2.4W+了.還在不斷地增長(zhǎng)

5. pod install

  • 會(huì)根據(jù)Podfile.lock文件中列舉的版本號(hào)來(lái)安裝第三方框架
  • 如果一開(kāi)始Podfile.lock文件不存在, 就會(huì)按照Podfile文件列舉的版本號(hào)來(lái)安裝第三方框架
  • 安裝開(kāi)源庫(kù)之前, 默認(rèn)會(huì)執(zhí)行pod repo update指令

6. pod update

  • 將所有第三方框架更新到最新版本, 并且創(chuàng)建一個(gè)新的Podfile.lock文件
  • 安裝開(kāi)源庫(kù)之前, 默認(rèn)會(huì)執(zhí)行pod repo update指令

7. pod install --no-repo-update
8. pod update --no-repo-update
安裝開(kāi)源庫(kù)之前, 不會(huì)執(zhí)行pod repo update指令

四. CocoaPods相關(guān)的兩個(gè)目錄

  • 目錄~/.cocoapods/repos/這個(gè)目錄存儲(chǔ)遠(yuǎn)端的podspec文件到本地遥赚。master是所有第三方的pod spec索引文件。其他的使我們自定義的podspec索引文件毕籽。

[圖片上傳失敗...(image-d0d318-1521437748272)]

  • 目錄~/Library/Caches/CocoaPods/這個(gè)目錄就是緩存文件的存儲(chǔ)目錄。

    [圖片上傳失敗...(image-16b975-1521437748272)]

如果我們使用pod search xxx 提示沒(méi)有找到,但是我們這個(gè)第三方確實(shí)存在井辆。
1.我們可以使用pod setup更新本地pod spec索引文件关筒。然后pod search xxx
2.按照1的方法如果還是pod search xxx找不到,那我們就把~/Library/Caches/CocoaPods/的緩存文件刪除杯缺。然后pod setup蒸播。最后pod search xxx這樣應(yīng)該就可以了

CocoaPods的常見(jiàn)錯(cuò)誤:http://blog.csdn.net/wangyanchang21/article/details/51437934

五. CocoaPods的說(shuō)明

1、第三方庫(kù)會(huì)被編譯成.a靜態(tài)庫(kù)或者.framwork的動(dòng)態(tài)鏈接庫(kù)供我們真正的工程使用夺谁。
CocoaPods會(huì)將所有的第三方庫(kù)以target的方式組成一個(gè)名為Pods的工程廉赔,該工程就放在剛才新生成的Pods目錄下肉微。整個(gè)第三方庫(kù)工程會(huì)生成一個(gè)名稱為libPods.a的靜態(tài)庫(kù)提供給我們自己的CocoaPodsTest工程使用。
對(duì)于資源文件蜡塌,CocoaPods提供了一個(gè)名為Pods-resources.sh的bash腳本碉纳,該腳本在每次項(xiàng)目編譯的時(shí)候都會(huì)執(zhí)行,將第三方庫(kù)的各種資源文件復(fù)制到目標(biāo)目錄中馏艾。

2劳曹、我們的工程和第三方庫(kù)所在的工程會(huì)由一個(gè)新生成的workspace管理
為了方便我們直觀的管理工程和第三方庫(kù),CocoaPodsTest工程和Pods工程會(huì)被以workspace的形式組織和管理琅摩,也就是我們剛才看到的JYCocoaPodsTest.xcworkspace文件铁孵。

3、原來(lái)的工程設(shè)置已經(jīng)被更改了房资,這時(shí)候我們直接打開(kāi)原來(lái)的工程文件去編譯就會(huì)報(bào)錯(cuò)蜕劝,只能使用新生成的workspace來(lái)進(jìn)行項(xiàng)目管理。

4轰异、CocoaPods通過(guò)一個(gè)名為Pods.xcconfig的文件來(lái)在編譯時(shí)設(shè)置所有的依賴和參數(shù)岖沛。

小問(wèn)題

使用第三方
你會(huì)發(fā)現(xiàn)當(dāng)引入MJExtension的頭文件時(shí),可以#import <MJExtension.h>或者#import <MJExtension/MJExtension.h>搭独,但是卻不能在輸入#import "MJExtension.h"的時(shí)候出現(xiàn)提示婴削。雖然強(qiáng)制輸入也可以編譯通過(guò),但是感覺(jué)很不爽牙肝。
解決這個(gè)問(wèn)題的辦法是在工程的Build Settings搜索Search唉俗,然后在User header search paths中添加$(SRCROOT)并選擇recursive。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末配椭,一起剝皮案震驚了整個(gè)濱河市虫溜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颂郎,老刑警劉巖吼渡,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異乓序,居然都是意外死亡寺酪,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門替劈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寄雀,“玉大人,你說(shuō)我怎么就攤上這事陨献『杏蹋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)急膀。 經(jīng)常有香客問(wèn)我沮协,道長(zhǎng),這世上最難降的妖魔是什么卓嫂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任慷暂,我火速辦了婚禮,結(jié)果婚禮上晨雳,老公的妹妹穿的比我還像新娘行瑞。我一直安慰自己,他們只是感情好餐禁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布血久。 她就那樣靜靜地躺著,像睡著了一般帮非。 火紅的嫁衣襯著肌膚如雪氧吐。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天喜鼓,我揣著相機(jī)與錄音副砍,去河邊找鬼。 笑死庄岖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的角骤。 我是一名探鬼主播隅忿,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邦尊!你這毒婦竟也來(lái)了背桐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蝉揍,失蹤者是張志新(化名)和其女友劉穎链峭,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體又沾,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡弊仪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杖刷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片励饵。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滑燃,靈堂內(nèi)的尸體忽然破棺而出役听,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布典予,位于F島的核電站甜滨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瘤袖。R本人自食惡果不足惜艳吠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孽椰。 院中可真熱鬧昭娩,春花似錦、人聲如沸黍匾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锐涯。三九已至磕诊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纹腌,已是汗流浹背霎终。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留升薯,地道東北人莱褒。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像涎劈,于是被迫代替她去往敵國(guó)和親广凸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 一. CocoaPods的介紹 什么是CocoaPods蛛枚?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開(kāi)源庫(kù)...
    輝712閱讀 3,922評(píng)論 0 7
  • 前言 前幾天發(fā)布我的開(kāi)源庫(kù)<最簡(jiǎn)單方便的iOS輪播開(kāi)源庫(kù):JYCarousel>到CocoaPods的時(shí)候谅海。對(duì)Co...
    Dely閱讀 17,178評(píng)論 12 82
  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo)蹦浦,越來(lái)越多的技術(shù)公司推崇使用pod管理第三方庫(kù)以及私有組件扭吁,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,727評(píng)論 0 39
  • 原文使用鏈接 --- 報(bào)錯(cuò)鏈接 因?yàn)镾wift中命名空間的存在侥袜,CocoaPods成為導(dǎo)入第三方的首選,本文詳細(xì)介...
    逾期的誓言閱讀 1,531評(píng)論 0 3
  • 一徒河、完成的事:上課系馆,看書(shū),練車顽照,練舞由蘑,跑步 二闽寡、反思總結(jié): 1.上課的時(shí)候狀態(tài)很好,但是腦子轉(zhuǎn)的慢了尼酿,平時(shí)沒(méi)怎么思...
    媚兒大人閱讀 169評(píng)論 0 0