├── BaiduFM WatchKit App
├── Base.lproj
│ └── Interface.storyboard
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ ├── btn_next.imageset
│ │ ├── Contents.json
│ │ └── player_btn_next_normal@2x.png
│ ├── btn_pause.imageset
│ │ ├── Contents.json
│ │ └── player_btn_pause_normal@2x.png
│ ├── btn_play.imageset
│ │ ├── Contents.json
│ │ └── player_btn_play_normal@2x.png
│ ├── btn_pre.imageset
│ │ ├── Contents.json
│ │ └── player_btn_pre_normal@2x.png
│ ├── channel_list.imageset
│ │ ├── Contents.json
│ │ └── musiccircle_myfollow_icon@2x.png
│ └── music_list.imageset
│ │ ├── Contents.json
│ │ └── discover_icon_music_circle@2x.png
└── Info.plist
├── BaiduFM WatchKit Extension
├── ChannelListInterfaceController.swift
├── ChannelTableRow.swift
├── DataManager.swift
├── GlanceController.swift
├── Images.xcassets
│ ├── README__ignoredByTemplate__
│ ├── btn_pause.imageset
│ │ ├── Contents.json
│ │ └── player_btn_pause_normal@2x.png
│ └── btn_play.imageset
│ │ ├── Contents.json
│ │ └── player_btn_play_normal@2x.png
├── Info.plist
├── InterfaceController.swift
├── MusicTableRow.swift
├── NotificationController.swift
├── PushNotificationPayload.apns
└── SongListInterfaceController.swift
├── BaiduFM.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── BaiduFM.xccheckout
│ └── xcuserdata
│ │ └── lumeng.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcuserdata
│ └── lumeng.xcuserdatad
│ ├── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes
│ ├── BaiduFM WatchKit App.xcscheme
│ ├── BaiduFM.xcscheme
│ ├── Glance - BaiduFM WatchKit App.xcscheme
│ ├── Notification - BaiduFM WatchKit App.xcscheme
│ └── xcschememanagement.plist
├── BaiduFM.xcworkspace
├── contents.xcworkspacedata
├── xcshareddata
│ └── BaiduFM.xccheckout
└── xcuserdata
│ └── lumeng.xcuserdatad
│ ├── UserInterfaceState.xcuserstate
│ └── xcdebugger
│ └── Breakpoints_v2.xcbkptlist
├── BaiduFM
├── AppDelegate.swift
├── BaiduFM-Bridging-Header.h
├── Base.lproj
│ ├── LaunchScreen.xib
│ └── Main.storyboard
├── Common
│ ├── Common.swift
│ ├── Const.swift
│ ├── HttpRequest.swift
│ └── Utils.swift
├── DataBase
│ ├── BaseDb.swift
│ └── SongList.swift
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ ├── AppIcon29x29.png
│ │ ├── AppIcon29x29@2x-1.png
│ │ ├── AppIcon29x29@2x.png
│ │ ├── AppIcon29x29@3x.png
│ │ ├── AppIcon40x40@2x-1.png
│ │ ├── AppIcon40x40@2x.png
│ │ ├── AppIcon40x40@3x.png
│ │ ├── AppIcon60x60@2x.png
│ │ ├── AppIcon60x60@3x.png
│ │ ├── Contents.json
│ │ └── Icon-152.png
│ ├── Download.imageset
│ │ ├── Contents.json
│ │ └── actionIconDownload@2x.png
│ ├── Downloaded.imageset
│ │ ├── Contents.json
│ │ └── actionIconDownloaded@2x.png
│ ├── Like.imageset
│ │ ├── Contents.json
│ │ └── actionIconLike@2x.png
│ ├── Unlike.imageset
│ │ ├── Contents.json
│ │ └── actionIconUnlike@2x.png
│ ├── mymusic_icon_download_normal.imageset
│ │ ├── Contents.json
│ │ └── mymusic_icon_download_normal@2x.png
│ ├── player_btn_next_normal.imageset
│ │ ├── Contents.json
│ │ └── player_btn_next_normal@2x.png
│ ├── player_btn_pause_normal.imageset
│ │ ├── Contents.json
│ │ └── player_btn_pause_normal@2x.png
│ ├── player_btn_play_normal.imageset
│ │ ├── Contents.json
│ │ └── player_btn_play_normal@2x.png
│ └── player_btn_pre_normal.imageset
│ │ ├── Contents.json
│ │ └── player_btn_pre_normal@2x.png
├── Info.plist
├── Libs
│ └── fmdb
│ │ ├── FMDB.h
│ │ ├── FMDatabase.h
│ │ ├── FMDatabase.m
│ │ ├── FMDatabaseAdditions.h
│ │ ├── FMDatabaseAdditions.m
│ │ ├── FMDatabasePool.h
│ │ ├── FMDatabasePool.m
│ │ ├── FMDatabaseQueue.h
│ │ ├── FMDatabaseQueue.m
│ │ ├── FMResultSet.h
│ │ └── FMResultSet.m
├── Model
│ ├── Channel.swift
│ ├── DataCenter.swift
│ └── Song.swift
├── MyPlayground.playground
│ ├── Contents.swift
│ ├── Sources
│ │ └── SupportCode.swift
│ ├── contents.xcplayground
│ └── timeline.xctimeline
└── Views
│ ├── ChannelTableViewController.swift
│ ├── DownloadTableViewController.swift
│ ├── LikeTableViewController.swift
│ ├── MusicListTableViewController.swift
│ ├── RecentTableViewController.swift
│ ├── RoundImageView.swift
│ └── ViewController.swift
├── BaiduFMTests
├── BaiduFMTests.swift
└── Info.plist
├── LICENSE.txt
├── Podfile
├── Podfile.lock
├── Pods
├── Alamofire
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ └── Alamofire.swift
├── Async
│ ├── Async.swift
│ ├── LICENSE.txt
│ └── README.md
├── Headers
│ ├── Private
│ │ ├── LTMorphingLabel
│ │ │ └── LTMorphingLabel.h
│ │ └── MJRefresh
│ │ │ ├── MJRefresh.h
│ │ │ ├── MJRefreshComponent.h
│ │ │ ├── MJRefreshConst.h
│ │ │ ├── MJRefreshFooter.h
│ │ │ ├── MJRefreshGifFooter.h
│ │ │ ├── MJRefreshGifHeader.h
│ │ │ ├── MJRefreshHeader.h
│ │ │ ├── MJRefreshLegendFooter.h
│ │ │ ├── MJRefreshLegendHeader.h
│ │ │ ├── UIScrollView+MJExtension.h
│ │ │ ├── UIScrollView+MJRefresh.h
│ │ │ └── UIView+MJExtension.h
│ └── Public
│ │ ├── LTMorphingLabel
│ │ └── LTMorphingLabel.h
│ │ └── MJRefresh
│ │ ├── MJRefresh.h
│ │ ├── MJRefreshComponent.h
│ │ ├── MJRefreshConst.h
│ │ ├── MJRefreshFooter.h
│ │ ├── MJRefreshGifFooter.h
│ │ ├── MJRefreshGifHeader.h
│ │ ├── MJRefreshHeader.h
│ │ ├── MJRefreshLegendFooter.h
│ │ ├── MJRefreshLegendHeader.h
│ │ ├── UIScrollView+MJExtension.h
│ │ ├── UIScrollView+MJRefresh.h
│ │ └── UIView+MJExtension.h
├── Kingfisher
│ ├── Kingfisher
│ │ ├── ImageCache.swift
│ │ ├── ImageDownloader.swift
│ │ ├── KingfisherManager.swift
│ │ ├── KingfisherOptions.swift
│ │ ├── KingfisherOptionsInfo.swift
│ │ ├── String+MD5.swift
│ │ ├── UIButton+Kingfisher.swift
│ │ ├── UIImage+Decode.swift
│ │ └── UIImageView+Kingfisher.swift
│ ├── LICENSE
│ └── README.md
├── LTMorphingLabel
│ ├── LICENSE
│ ├── LTMorphingLabel
│ │ ├── LTCharacterLimbo.swift
│ │ ├── LTEasing.swift
│ │ ├── LTEmitterView.swift
│ │ ├── LTMorphingEffect.swift
│ │ ├── LTMorphingLabel+Anvil.swift
│ │ ├── LTMorphingLabel+Burn.swift
│ │ ├── LTMorphingLabel+Evaporate.swift
│ │ ├── LTMorphingLabel+Fall.swift
│ │ ├── LTMorphingLabel+Pixelate.swift
│ │ ├── LTMorphingLabel+Sparkle.swift
│ │ ├── LTMorphingLabel.h
│ │ ├── LTMorphingLabel.swift
│ │ ├── NSString+LTMorphingLabel.swift
│ │ └── Particles
│ │ │ ├── Fire.png
│ │ │ ├── Fragment.png
│ │ │ ├── Smoke.png
│ │ │ └── Sparkle.png
│ └── README.md
├── Local Podspecs
│ └── Async.podspec.json
├── MJRefresh
│ ├── LICENSE
│ ├── MJRefreshExample
│ │ └── MJRefreshExample
│ │ │ └── MJRefresh
│ │ │ ├── MJRefresh.bundle
│ │ │ └── arrow@2x.png
│ │ │ ├── MJRefresh.h
│ │ │ ├── MJRefreshComponent.h
│ │ │ ├── MJRefreshComponent.m
│ │ │ ├── MJRefreshConst.h
│ │ │ ├── MJRefreshConst.m
│ │ │ ├── MJRefreshFooter.h
│ │ │ ├── MJRefreshFooter.m
│ │ │ ├── MJRefreshGifFooter.h
│ │ │ ├── MJRefreshGifFooter.m
│ │ │ ├── MJRefreshGifHeader.h
│ │ │ ├── MJRefreshGifHeader.m
│ │ │ ├── MJRefreshHeader.h
│ │ │ ├── MJRefreshHeader.m
│ │ │ ├── MJRefreshLegendFooter.h
│ │ │ ├── MJRefreshLegendFooter.m
│ │ │ ├── MJRefreshLegendHeader.h
│ │ │ ├── MJRefreshLegendHeader.m
│ │ │ ├── UIScrollView+MJExtension.h
│ │ │ ├── UIScrollView+MJExtension.m
│ │ │ ├── UIScrollView+MJRefresh.h
│ │ │ ├── UIScrollView+MJRefresh.m
│ │ │ ├── UIView+MJExtension.h
│ │ │ └── UIView+MJExtension.m
│ └── README.md
├── Manifest.lock
├── Pods.xcodeproj
│ ├── project.pbxproj
│ └── xcuserdata
│ │ └── lumeng.xcuserdatad
│ │ └── xcschemes
│ │ ├── Pods-BaiduFM WatchKit Extension-Alamofire.xcscheme
│ │ ├── Pods-BaiduFM WatchKit Extension-Async.xcscheme
│ │ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcscheme
│ │ ├── Pods-BaiduFM WatchKit Extension.xcscheme
│ │ ├── Pods-BaiduFM-Alamofire.xcscheme
│ │ ├── Pods-BaiduFM-Async.xcscheme
│ │ ├── Pods-BaiduFM-Kingfisher.xcscheme
│ │ ├── Pods-BaiduFM-LTMorphingLabel.xcscheme
│ │ ├── Pods-BaiduFM-MJRefresh.xcscheme
│ │ ├── Pods-BaiduFM-SwiftyJSON.xcscheme
│ │ ├── Pods-BaiduFM.xcscheme
│ │ └── xcschememanagement.plist
├── SwiftyJSON
│ ├── LICENSE
│ ├── README.md
│ └── Source
│ │ └── SwiftyJSON.swift
└── Target Support Files
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire
│ ├── Info.plist
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire-Private.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire-dummy.m
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire-prefix.pch
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire-umbrella.h
│ ├── Pods-BaiduFM WatchKit Extension-Alamofire.modulemap
│ └── Pods-BaiduFM WatchKit Extension-Alamofire.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension-Async
│ ├── Info.plist
│ ├── Pods-BaiduFM WatchKit Extension-Async-Private.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension-Async-dummy.m
│ ├── Pods-BaiduFM WatchKit Extension-Async-prefix.pch
│ ├── Pods-BaiduFM WatchKit Extension-Async-umbrella.h
│ ├── Pods-BaiduFM WatchKit Extension-Async.modulemap
│ └── Pods-BaiduFM WatchKit Extension-Async.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON
│ ├── Info.plist
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON-Private.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON-dummy.m
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON-prefix.pch
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON-umbrella.h
│ ├── Pods-BaiduFM WatchKit Extension-SwiftyJSON.modulemap
│ └── Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension
│ ├── Info.plist
│ ├── Pods-BaiduFM WatchKit Extension-acknowledgements.markdown
│ ├── Pods-BaiduFM WatchKit Extension-acknowledgements.plist
│ ├── Pods-BaiduFM WatchKit Extension-dummy.m
│ ├── Pods-BaiduFM WatchKit Extension-environment.h
│ ├── Pods-BaiduFM WatchKit Extension-frameworks.sh
│ ├── Pods-BaiduFM WatchKit Extension-resources.sh
│ ├── Pods-BaiduFM WatchKit Extension-umbrella.h
│ ├── Pods-BaiduFM WatchKit Extension.debug.xcconfig
│ ├── Pods-BaiduFM WatchKit Extension.modulemap
│ └── Pods-BaiduFM WatchKit Extension.release.xcconfig
│ ├── Pods-BaiduFM-Alamofire
│ ├── Info.plist
│ ├── Pods-BaiduFM-Alamofire-Private.xcconfig
│ ├── Pods-BaiduFM-Alamofire-dummy.m
│ ├── Pods-BaiduFM-Alamofire-prefix.pch
│ ├── Pods-BaiduFM-Alamofire-umbrella.h
│ ├── Pods-BaiduFM-Alamofire.modulemap
│ └── Pods-BaiduFM-Alamofire.xcconfig
│ ├── Pods-BaiduFM-Async
│ ├── Info.plist
│ ├── Pods-BaiduFM-Async-Private.xcconfig
│ ├── Pods-BaiduFM-Async-dummy.m
│ ├── Pods-BaiduFM-Async-prefix.pch
│ ├── Pods-BaiduFM-Async-umbrella.h
│ ├── Pods-BaiduFM-Async.modulemap
│ └── Pods-BaiduFM-Async.xcconfig
│ ├── Pods-BaiduFM-Kingfisher
│ ├── Info.plist
│ ├── Pods-BaiduFM-Kingfisher-Private.xcconfig
│ ├── Pods-BaiduFM-Kingfisher-dummy.m
│ ├── Pods-BaiduFM-Kingfisher-prefix.pch
│ ├── Pods-BaiduFM-Kingfisher-umbrella.h
│ ├── Pods-BaiduFM-Kingfisher.modulemap
│ └── Pods-BaiduFM-Kingfisher.xcconfig
│ ├── Pods-BaiduFM-LTMorphingLabel
│ ├── Info.plist
│ ├── Pods-BaiduFM-LTMorphingLabel-Private.xcconfig
│ ├── Pods-BaiduFM-LTMorphingLabel-dummy.m
│ ├── Pods-BaiduFM-LTMorphingLabel-prefix.pch
│ ├── Pods-BaiduFM-LTMorphingLabel-umbrella.h
│ ├── Pods-BaiduFM-LTMorphingLabel.modulemap
│ └── Pods-BaiduFM-LTMorphingLabel.xcconfig
│ ├── Pods-BaiduFM-MJRefresh
│ ├── Info.plist
│ ├── Pods-BaiduFM-MJRefresh-Private.xcconfig
│ ├── Pods-BaiduFM-MJRefresh-dummy.m
│ ├── Pods-BaiduFM-MJRefresh-prefix.pch
│ ├── Pods-BaiduFM-MJRefresh-umbrella.h
│ ├── Pods-BaiduFM-MJRefresh.modulemap
│ └── Pods-BaiduFM-MJRefresh.xcconfig
│ ├── Pods-BaiduFM-SwiftyJSON
│ ├── Info.plist
│ ├── Pods-BaiduFM-SwiftyJSON-Private.xcconfig
│ ├── Pods-BaiduFM-SwiftyJSON-dummy.m
│ ├── Pods-BaiduFM-SwiftyJSON-prefix.pch
│ ├── Pods-BaiduFM-SwiftyJSON-umbrella.h
│ ├── Pods-BaiduFM-SwiftyJSON.modulemap
│ └── Pods-BaiduFM-SwiftyJSON.xcconfig
│ └── Pods-BaiduFM
│ ├── Info.plist
│ ├── Pods-BaiduFM-acknowledgements.markdown
│ ├── Pods-BaiduFM-acknowledgements.plist
│ ├── Pods-BaiduFM-dummy.m
│ ├── Pods-BaiduFM-environment.h
│ ├── Pods-BaiduFM-frameworks.sh
│ ├── Pods-BaiduFM-resources.sh
│ ├── Pods-BaiduFM-umbrella.h
│ ├── Pods-BaiduFM.debug.xcconfig
│ ├── Pods-BaiduFM.modulemap
│ └── Pods-BaiduFM.release.xcconfig
├── README.md
└── ScreenShot
├── BaiduFM-Swift_00.png
├── BaiduFM-Swift_01.png
├── BaiduFM-Swift_02.png
├── BaiduFM-Swift_03.png
├── BaiduFM-Swift_AppleWatch_00.png
├── BaiduFM-Swift_AppleWatch_01.png
├── BaiduFM-Swift_AppleWatch_02.png
└── BaiduFM-Swift_AppleWatch_03.png
/BaiduFM WatchKit App/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "24x24",
5 | "idiom" : "watch",
6 | "scale" : "2x",
7 | "role" : "notificationCenter",
8 | "subtype" : "38mm"
9 | },
10 | {
11 | "size" : "27.5x27.5",
12 | "idiom" : "watch",
13 | "scale" : "2x",
14 | "role" : "notificationCenter",
15 | "subtype" : "42mm"
16 | },
17 | {
18 | "size" : "29x29",
19 | "idiom" : "watch",
20 | "role" : "companionSettings",
21 | "scale" : "2x"
22 | },
23 | {
24 | "size" : "29x29",
25 | "idiom" : "watch",
26 | "role" : "companionSettings",
27 | "scale" : "3x"
28 | },
29 | {
30 | "size" : "40x40",
31 | "idiom" : "watch",
32 | "scale" : "2x",
33 | "role" : "appLauncher",
34 | "subtype" : "38mm"
35 | },
36 | {
37 | "size" : "44x44",
38 | "idiom" : "watch",
39 | "scale" : "2x",
40 | "role" : "longLook",
41 | "subtype" : "42mm"
42 | },
43 | {
44 | "size" : "86x86",
45 | "idiom" : "watch",
46 | "scale" : "2x",
47 | "role" : "quickLook",
48 | "subtype" : "38mm"
49 | },
50 | {
51 | "size" : "98x98",
52 | "idiom" : "watch",
53 | "scale" : "2x",
54 | "role" : "quickLook",
55 | "subtype" : "42mm"
56 | }
57 | ],
58 | "info" : {
59 | "version" : 1,
60 | "author" : "xcode"
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_next.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_next_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_next.imageset/player_btn_next_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/btn_next.imageset/player_btn_next_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_pause.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_pause_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_pause.imageset/player_btn_pause_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/btn_pause.imageset/player_btn_pause_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_play.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_play_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_play.imageset/player_btn_play_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/btn_play.imageset/player_btn_play_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_pre.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_pre_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/btn_pre.imageset/player_btn_pre_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/btn_pre.imageset/player_btn_pre_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/channel_list.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "musiccircle_myfollow_icon@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/channel_list.imageset/musiccircle_myfollow_icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/channel_list.imageset/musiccircle_myfollow_icon@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/music_list.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "discover_icon_music_circle@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Images.xcassets/music_list.imageset/discover_icon_music_circle@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit App/Images.xcassets/music_list.imageset/discover_icon_music_circle@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit App/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | BaiduFM
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | com.belmeng.BaiduFM.watchkitapp
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | UISupportedInterfaceOrientations
26 |
27 | UIInterfaceOrientationPortrait
28 | UIInterfaceOrientationPortraitUpsideDown
29 |
30 | WKCompanionAppBundleIdentifier
31 | com.belmeng.BaiduFM
32 | WKWatchKitApp
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/ChannelListInterfaceController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelListInterfaceController.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import WatchKit
10 | import Foundation
11 |
12 |
13 | class ChannelListInterfaceController: WKInterfaceController {
14 |
15 | @IBOutlet weak var table: WKInterfaceTable!
16 |
17 | override func awakeWithContext(context: AnyObject?) {
18 | super.awakeWithContext(context)
19 |
20 | if DataManager.shareDataManager.chList.count == 0 {
21 | HttpRequest.getChannelList({(list:[Channel]?) -> Void in
22 | if let chlist = list {
23 | DataManager.shareDataManager.chList = chlist
24 | self.loadTable()
25 | }
26 | })
27 | }else{
28 | self.loadTable()
29 | }
30 |
31 | // Configure interface objects here.
32 | }
33 |
34 | func loadTable(){
35 |
36 | self.table.setNumberOfRows(DataManager.shareDataManager.chList.count, withRowType: "tableRow")
37 |
38 | for i:Int in 0.. Void in
22 | Static.instance = DataManager()
23 | }
24 | return Static.instance!
25 | }
26 |
27 | var mp:MPMoviePlayerController = MPMoviePlayerController()
28 | var curPlayStatus = 0 //0初始 1播放 2暂时 3停止
29 |
30 | var chid = "public_tuijian_rege"{
31 | didSet{
32 | NSUserDefaults.standardUserDefaults().setValue(self.chid, forKey: "LAST_PLAY_CHANNEL_ID")
33 | NSUserDefaults.standardUserDefaults().synchronize()
34 | }
35 | }
36 | var chList:[Channel] = [] //类型列表
37 | var allSongIdList:[String] = [] //当前类别所有歌曲ID,包括没加载 info信息的
38 | var songInfoList:[SongInfo] = []//当前类别加载info信息的歌曲列表
39 |
40 | var curIndex = 0 {
41 | didSet{
42 |
43 | if curIndex >= self.songInfoList.count {
44 | curIndex = self.songInfoList.count-1
45 | }
46 |
47 | if curIndex < 0 {
48 | curIndex = 0
49 | }
50 |
51 | self.curSongInfo = self.songInfoList[self.curIndex]
52 | }
53 | }
54 | var curSongInfo:SongInfo? = nil
55 | var curSongLink:SongLink? = nil
56 |
57 | var curLrcInfo:[(lrc:String,time:Int)] = []
58 |
59 | //当前分类最新20首歌曲
60 | class func getTop20SongInfoList(finish:()->Void){
61 | HttpRequest.getSongList(DataManager.shareDataManager.chid, callback: {(list:[String]?) -> Void in
62 | if let songIdList = list {
63 | DataManager.shareDataManager.allSongIdList = songIdList
64 | //获取歌曲info信息
65 | var songlist20 = [] + songIdList[0..<20]
66 | HttpRequest.getSongInfoList(songlist20, callback:{ (infolist:[SongInfo]?) -> Void in
67 | if let sInfoList = infolist {
68 | println("getTop20SongInfoList")
69 | DataManager.shareDataManager.songInfoList = sInfoList
70 | DataManager.shareDataManager.curIndex = 0
71 | finish()
72 | }
73 | })
74 | }
75 | })
76 | }
77 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/GlanceController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // GlanceController.swift
3 | // BaiduFM WatchKit Extension
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import WatchKit
10 | import Foundation
11 |
12 |
13 | class GlanceController: WKInterfaceController {
14 |
15 | override func awakeWithContext(context: AnyObject?) {
16 | super.awakeWithContext(context)
17 |
18 | // Configure interface objects here.
19 | }
20 |
21 | override func willActivate() {
22 | // This method is called when watch view controller is about to be visible to user
23 | super.willActivate()
24 | }
25 |
26 | override func didDeactivate() {
27 | // This method is called when watch view controller is no longer visible
28 | super.didDeactivate()
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Images.xcassets/README__ignoredByTemplate__:
--------------------------------------------------------------------------------
1 | Did you know that git does not support storing empty directories?
2 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Images.xcassets/btn_pause.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_pause_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Images.xcassets/btn_pause.imageset/player_btn_pause_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit Extension/Images.xcassets/btn_pause.imageset/player_btn_pause_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Images.xcassets/btn_play.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_play_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Images.xcassets/btn_play.imageset/player_btn_play_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM WatchKit Extension/Images.xcassets/btn_play.imageset/player_btn_play_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | BaiduFM WatchKit Extension
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | com.belmeng.BaiduFM.watchkitextension
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | NSExtension
26 |
27 | NSExtensionAttributes
28 |
29 | WKAppBundleIdentifier
30 | com.belmeng.BaiduFM.watchkitapp
31 |
32 | NSExtensionPointIdentifier
33 | com.apple.watchkit
34 |
35 | RemoteInterfacePrincipalClass
36 | $(PRODUCT_MODULE_NAME).InterfaceController
37 |
38 |
39 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/MusicTableRow.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TableRow.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import WatchKit
11 |
12 | class MusicTableRow: NSObject {
13 |
14 | @IBOutlet weak var image: WKInterfaceImage!
15 |
16 | @IBOutlet weak var nameLabel: WKInterfaceLabel!
17 |
18 | @IBOutlet weak var artistLabel: WKInterfaceLabel!
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/NotificationController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NotificationController.swift
3 | // BaiduFM WatchKit Extension
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import WatchKit
10 | import Foundation
11 |
12 |
13 | class NotificationController: WKUserNotificationInterfaceController {
14 |
15 | override init() {
16 | // Initialize variables here.
17 | super.init()
18 |
19 | // Configure interface objects here.
20 | }
21 |
22 | override func willActivate() {
23 | // This method is called when watch view controller is about to be visible to user
24 | super.willActivate()
25 | }
26 |
27 | override func didDeactivate() {
28 | // This method is called when watch view controller is no longer visible
29 | super.didDeactivate()
30 | }
31 |
32 | /*
33 | override func didReceiveLocalNotification(localNotification: UILocalNotification, withCompletion completionHandler: ((WKUserNotificationInterfaceType) -> Void)) {
34 | // This method is called when a local notification needs to be presented.
35 | // Implement it if you use a dynamic notification interface.
36 | // Populate your dynamic notification interface as quickly as possible.
37 | //
38 | // After populating your dynamic notification interface call the completion block.
39 | completionHandler(.Custom)
40 | }
41 | */
42 |
43 | /*
44 | override func didReceiveRemoteNotification(remoteNotification: [NSObject : AnyObject], withCompletion completionHandler: ((WKUserNotificationInterfaceType) -> Void)) {
45 | // This method is called when a remote notification needs to be presented.
46 | // Implement it if you use a dynamic notification interface.
47 | // Populate your dynamic notification interface as quickly as possible.
48 | //
49 | // After populating your dynamic notification interface call the completion block.
50 | completionHandler(.Custom)
51 | }
52 | */
53 | }
54 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/PushNotificationPayload.apns:
--------------------------------------------------------------------------------
1 | {
2 | "aps": {
3 | "alert": {
4 | "body": "Test message",
5 | "title": "Optional title"
6 | },
7 | "category": "myCategory"
8 | },
9 |
10 | "WatchKit Simulator Actions": [
11 | {
12 | "title": "First Button",
13 | "identifier": "firstButtonAction"
14 | }
15 | ],
16 |
17 | "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App."
18 | }
19 |
--------------------------------------------------------------------------------
/BaiduFM WatchKit Extension/SongListInterfaceController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SongListInterfaceController.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import WatchKit
10 | import Foundation
11 |
12 |
13 | class SongListInterfaceController: WKInterfaceController {
14 |
15 | @IBOutlet weak var table: WKInterfaceTable!
16 |
17 | override func awakeWithContext(context: AnyObject?) {
18 | super.awakeWithContext(context)
19 |
20 | if context != nil {
21 | //分类列表点击过来
22 | DataManager.getTop20SongInfoList { () -> Void in
23 | self.loadTable()
24 | }
25 | }else{
26 | //首页菜单点击过来
27 | self.loadTable()
28 | }
29 | }
30 |
31 | func loadTable(){
32 |
33 | self.table.setNumberOfRows(DataManager.shareDataManager.songInfoList.count, withRowType: "tableRow")
34 |
35 | for i:Int in 0..
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BaiduFM.xcodeproj/project.xcworkspace/xcshareddata/BaiduFM.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | E8E99C13-91D9-408B-A954-40F395F7A403
9 | IDESourceControlProjectName
10 | BaiduFM
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | E377873BE7F2CED237EF08505F12BD14670B444A
14 | github.com:belm/BaiduFM-Swift.git
15 |
16 | IDESourceControlProjectPath
17 | BaiduFM.xcodeproj
18 | IDESourceControlProjectRelativeInstallPathDictionary
19 |
20 | E377873BE7F2CED237EF08505F12BD14670B444A
21 | ../..
22 |
23 | IDESourceControlProjectURL
24 | github.com:belm/BaiduFM-Swift.git
25 | IDESourceControlProjectVersion
26 | 111
27 | IDESourceControlProjectWCCIdentifier
28 | E377873BE7F2CED237EF08505F12BD14670B444A
29 | IDESourceControlProjectWCConfigurations
30 |
31 |
32 | IDESourceControlRepositoryExtensionIdentifierKey
33 | public.vcs.git
34 | IDESourceControlWCCIdentifierKey
35 | E377873BE7F2CED237EF08505F12BD14670B444A
36 | IDESourceControlWCCName
37 | BaiduFM-Swift
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/BaiduFM.xcodeproj/project.xcworkspace/xcuserdata/lumeng.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM.xcodeproj/project.xcworkspace/xcuserdata/lumeng.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/BaiduFM.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/BaiduFM.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | BaiduFM WatchKit App.xcscheme
8 |
9 | orderHint
10 | 12
11 |
12 | BaiduFM.xcscheme
13 |
14 | orderHint
15 | 0
16 |
17 | BaiduFm.xcscheme
18 |
19 | orderHint
20 | 11
21 |
22 | BaiduFmKit.xcscheme
23 |
24 | orderHint
25 | 4
26 |
27 | Glance - BaiduFM WatchKit App.xcscheme
28 |
29 | orderHint
30 | 14
31 |
32 | Notification - BaiduFM WatchKit App.xcscheme
33 |
34 | orderHint
35 | 13
36 |
37 |
38 | SuppressBuildableAutocreation
39 |
40 | 67806C871AEA8C70002D94D1
41 |
42 | primary
43 |
44 |
45 | 6780CE9D1AEC66C1000BAA67
46 |
47 | primary
48 |
49 |
50 | 6797967F1AEC542700FF780F
51 |
52 | primary
53 |
54 |
55 | 679796891AEC542800FF780F
56 |
57 | primary
58 |
59 |
60 | 679796E01AEC59AF00FF780F
61 |
62 | primary
63 |
64 |
65 | 679797271AEC5AA200FF780F
66 |
67 | primary
68 |
69 |
70 | 67B9C2BD1AEBF18900107696
71 |
72 | primary
73 |
74 |
75 | 67B9C2C71AEBF18900107696
76 |
77 | primary
78 |
79 |
80 | 67B9C2E51AEBF43300107696
81 |
82 | primary
83 |
84 |
85 | 67B9C2EF1AEBF43300107696
86 |
87 | primary
88 |
89 |
90 | 67F0AEB81AD9FF8C000CB588
91 |
92 | primary
93 |
94 |
95 | 67F0AECD1AD9FF8C000CB588
96 |
97 | primary
98 |
99 |
100 | 67F0C85D1AEC5B8D00937970
101 |
102 | primary
103 |
104 |
105 |
106 |
107 |
108 |
--------------------------------------------------------------------------------
/BaiduFM.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/BaiduFM.xcworkspace/xcshareddata/BaiduFM.xccheckout:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDESourceControlProjectFavoriteDictionaryKey
6 |
7 | IDESourceControlProjectIdentifier
8 | 8D593AB7-0CCB-4967-B9B1-B6D7733566F0
9 | IDESourceControlProjectName
10 | BaiduFM
11 | IDESourceControlProjectOriginsDictionary
12 |
13 | E377873BE7F2CED237EF08505F12BD14670B444A
14 | github.com:belm/BaiduFM-Swift.git
15 |
16 | IDESourceControlProjectPath
17 | BaiduFM.xcworkspace
18 | IDESourceControlProjectRelativeInstallPathDictionary
19 |
20 | E377873BE7F2CED237EF08505F12BD14670B444A
21 | ..
22 |
23 | IDESourceControlProjectURL
24 | github.com:belm/BaiduFM-Swift.git
25 | IDESourceControlProjectVersion
26 | 111
27 | IDESourceControlProjectWCCIdentifier
28 | E377873BE7F2CED237EF08505F12BD14670B444A
29 | IDESourceControlProjectWCConfigurations
30 |
31 |
32 | IDESourceControlRepositoryExtensionIdentifierKey
33 | public.vcs.git
34 | IDESourceControlWCCIdentifierKey
35 | E377873BE7F2CED237EF08505F12BD14670B444A
36 | IDESourceControlWCCName
37 | BaiduFM-Swift
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/BaiduFM.xcworkspace/xcuserdata/lumeng.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM.xcworkspace/xcuserdata/lumeng.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/BaiduFM.xcworkspace/xcuserdata/lumeng.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/BaiduFM/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/12.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import AVFoundation
11 | import Kingfisher
12 |
13 | @UIApplicationMain
14 | class AppDelegate: UIResponder, UIApplicationDelegate {
15 |
16 | var window: UIWindow?
17 |
18 |
19 | func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
20 | // Override point for customization after application launch.
21 |
22 | //后台播放音乐
23 | AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
24 | AVAudioSession.sharedInstance().setActive(true, error: nil)
25 | UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
26 |
27 | var db = BaseDb()
28 |
29 | //初始化图片缓存库配置 Kingfisher
30 | let downloader = KingfisherManager.sharedManager.downloader
31 | downloader.downloadTimeout = 5
32 |
33 | let cache = KingfisherManager.sharedManager.cache
34 | cache.maxDiskCacheSize = 100 * 1024 * 1024 //defalut is no limit
35 | cache.maxCachePeriodInSecond = 60 * 60 * 24 * 10 //default is 7days
36 |
37 | return true
38 | }
39 |
40 | func applicationWillResignActive(application: UIApplication) {
41 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
42 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
43 | }
44 |
45 | func applicationDidEnterBackground(application: UIApplication) {
46 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
47 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
48 | }
49 |
50 | func applicationWillEnterForeground(application: UIApplication) {
51 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
52 | }
53 |
54 | func applicationDidBecomeActive(application: UIApplication) {
55 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
56 | }
57 |
58 | func applicationWillTerminate(application: UIApplication) {
59 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
60 | }
61 |
62 |
63 | }
64 |
65 |
--------------------------------------------------------------------------------
/BaiduFM/BaiduFM-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // Use this file to import your target's public headers that you would like to expose to Swift.
3 | //
4 |
5 | #import "FMDB.h"
--------------------------------------------------------------------------------
/BaiduFM/Common/Const.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Const.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/23.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | // MARK: - 通知
12 | let CHANNEL_MUSIC_LIST_CLICK_NOTIFICATION = "CHANNEL_MUSIC_LIST_CLICK_NOTIFICATION" //某类别歌曲列表点击通知
13 |
14 | let OTHER_MUSIC_LIST_CLICK_NOTIFICATION = "OTHER_MUSIC_LIST_CLICK_NOTIFICATION" //下载,喜欢,最近播放列表点击通知
15 |
16 | // MARK: - 常量
17 |
18 | //获取歌曲分类列表
19 | let http_channel_list_url = "http://fm.baidu.com/dev/api/?tn=channellist&hashcode=310d03041bffd10803bc3ee8913e2726&_=1428801468750"
20 |
21 | //获取某个分类歌曲类别 http_song_list_url + "分类名"
22 | let http_song_list_url = "http://fm.baidu.com/dev/api/?tn=playlist&hashcode=310d03041bffd10803bc3ee8913e2726&_=1428917601565&id="
23 |
24 | //获取歌曲info信息
25 | let http_song_info = "http://fm.baidu.com/data/music/songinfo"
26 |
27 | //获取歌曲link信息
28 | let http_song_link = "http://fm.baidu.com/data/music/songlink"
29 |
30 | //获取歌词 http://fm.baidu.com/data2/lrc/14881153/14881153.lrc
31 | let http_song_lrc = "http://fm.baidu.com"
32 |
33 |
--------------------------------------------------------------------------------
/BaiduFM/Common/Utils.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Utils.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/18.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class Utils {
12 |
13 | /**
14 | 获取文档路径
15 |
16 | :returns: 文档路径
17 | */
18 | class func documentPath() -> String{
19 |
20 | return NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as! String
21 | }
22 | }
--------------------------------------------------------------------------------
/BaiduFM/DataBase/BaseDb.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BaseDb.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/18.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class BaseDb {
12 |
13 | var dbPath: String
14 | var db:FMDatabase
15 |
16 | init(){
17 |
18 | println("basedb init")
19 | var dbDirectory = Utils.documentPath().stringByAppendingPathComponent("database")
20 |
21 | if !NSFileManager.defaultManager().fileExistsAtPath(dbDirectory){
22 | NSFileManager.defaultManager().createDirectoryAtPath(dbDirectory, withIntermediateDirectories: false, attributes: nil, error: nil)
23 | }
24 |
25 | self.dbPath = dbDirectory.stringByAppendingPathComponent("baidufm.sqlite")
26 |
27 | self.db = FMDatabase(path: self.dbPath)
28 | //println(dbPath)
29 |
30 | //db文件不存在则创建
31 | if !NSFileManager.defaultManager().fileExistsAtPath(self.dbPath){
32 | if self.open() {
33 | var sql = "CREATE TABLE tbl_song_list (id INTEGER PRIMARY KEY AUTOINCREMENT,sid TEXT UNIQUE,name TEXT,artist TEXT,album TEXT,song_url TEXT,pic_url TEXT,lrc_url TEXT,time INTEGER,is_dl INTEGER DEFAULT 0,dl_file TEXT,is_like INTEGER DEFAULT 0,is_recent INTEGER DEFAULT 1,format TEXT)"
34 | if !self.db.executeUpdate(sql, withArgumentsInArray: nil){
35 | println("db创建失败")
36 | }else{
37 | println("db创建成功")
38 | }
39 | }else{
40 | println("open error")
41 | }
42 | }
43 | }
44 |
45 | deinit{
46 | self.close()
47 | }
48 |
49 | func open()->Bool{
50 | return self.db.open()
51 | }
52 |
53 | func close()->Bool{
54 | return self.db.close()
55 | }
56 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x-1.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x-1.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "29x29",
5 | "idiom" : "iphone",
6 | "filename" : "AppIcon29x29@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "29x29",
11 | "idiom" : "iphone",
12 | "filename" : "AppIcon29x29@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "40x40",
17 | "idiom" : "iphone",
18 | "filename" : "AppIcon40x40@2x.png",
19 | "scale" : "2x"
20 | },
21 | {
22 | "size" : "40x40",
23 | "idiom" : "iphone",
24 | "filename" : "AppIcon40x40@3x.png",
25 | "scale" : "3x"
26 | },
27 | {
28 | "size" : "60x60",
29 | "idiom" : "iphone",
30 | "filename" : "AppIcon60x60@2x.png",
31 | "scale" : "2x"
32 | },
33 | {
34 | "size" : "60x60",
35 | "idiom" : "iphone",
36 | "filename" : "AppIcon60x60@3x.png",
37 | "scale" : "3x"
38 | },
39 | {
40 | "size" : "29x29",
41 | "idiom" : "ipad",
42 | "filename" : "AppIcon29x29.png",
43 | "scale" : "1x"
44 | },
45 | {
46 | "size" : "29x29",
47 | "idiom" : "ipad",
48 | "filename" : "AppIcon29x29@2x-1.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "idiom" : "ipad",
53 | "size" : "40x40",
54 | "scale" : "1x"
55 | },
56 | {
57 | "size" : "40x40",
58 | "idiom" : "ipad",
59 | "filename" : "AppIcon40x40@2x-1.png",
60 | "scale" : "2x"
61 | },
62 | {
63 | "idiom" : "ipad",
64 | "size" : "76x76",
65 | "scale" : "1x"
66 | },
67 | {
68 | "size" : "76x76",
69 | "idiom" : "ipad",
70 | "filename" : "Icon-152.png",
71 | "scale" : "2x"
72 | }
73 | ],
74 | "info" : {
75 | "version" : 1,
76 | "author" : "xcode"
77 | }
78 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/AppIcon.appiconset/Icon-152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/AppIcon.appiconset/Icon-152.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Download.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "actionIconDownload@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Download.imageset/actionIconDownload@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/Download.imageset/actionIconDownload@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Downloaded.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "actionIconDownloaded@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Downloaded.imageset/actionIconDownloaded@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/Downloaded.imageset/actionIconDownloaded@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Like.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "actionIconLike@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Like.imageset/actionIconLike@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/Like.imageset/actionIconLike@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Unlike.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "actionIconUnlike@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/Unlike.imageset/actionIconUnlike@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/Unlike.imageset/actionIconUnlike@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/mymusic_icon_download_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "mymusic_icon_download_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/mymusic_icon_download_normal.imageset/mymusic_icon_download_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/mymusic_icon_download_normal.imageset/mymusic_icon_download_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_next_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_next_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_next_normal.imageset/player_btn_next_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/player_btn_next_normal.imageset/player_btn_next_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_pause_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_pause_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_pause_normal.imageset/player_btn_pause_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/player_btn_pause_normal.imageset/player_btn_pause_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_play_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_play_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_play_normal.imageset/player_btn_play_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/player_btn_play_normal.imageset/player_btn_play_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_pre_normal.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "2x",
10 | "filename" : "player_btn_pre_normal@2x.png"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/BaiduFM/Images.xcassets/player_btn_pre_normal.imageset/player_btn_pre_normal@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/BaiduFM/Images.xcassets/player_btn_pre_normal.imageset/player_btn_pre_normal@2x.png
--------------------------------------------------------------------------------
/BaiduFM/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.belmeng.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | BaiduFM
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UIBackgroundModes
26 |
27 | audio
28 |
29 | UILaunchStoryboardName
30 | LaunchScreen
31 | UIMainStoryboardFile
32 | Main
33 | UIRequiredDeviceCapabilities
34 |
35 | armv7
36 |
37 | UIStatusBarHidden
38 |
39 | UIStatusBarStyle
40 | UIStatusBarStyleDefault
41 | UISupportedInterfaceOrientations
42 |
43 | UIInterfaceOrientationPortrait
44 |
45 | UISupportedInterfaceOrientations~ipad
46 |
47 | UIInterfaceOrientationPortrait
48 | UIInterfaceOrientationPortraitUpsideDown
49 | UIInterfaceOrientationLandscapeLeft
50 | UIInterfaceOrientationLandscapeRight
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/BaiduFM/Libs/fmdb/FMDB.h:
--------------------------------------------------------------------------------
1 | #import "FMDatabase.h"
2 | #import "FMResultSet.h"
3 | #import "FMDatabaseAdditions.h"
4 | #import "FMDatabaseQueue.h"
5 | #import "FMDatabasePool.h"
6 |
--------------------------------------------------------------------------------
/BaiduFM/Model/Channel.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Channel.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/12.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct Channel {
12 | var id:String
13 | var name:String
14 | var order:Int
15 | var cate_id:String
16 | var cate:String
17 | var cate_order:Int
18 | var pv_order:Int
19 | }
--------------------------------------------------------------------------------
/BaiduFM/Model/DataCenter.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DataCenter.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/14.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import MediaPlayer
11 |
12 | class DataCenter {
13 |
14 | //单例
15 | class var shareDataCenter:DataCenter{
16 | struct Static {
17 | static var onceToken : dispatch_once_t = 0
18 | static var instance: DataCenter? = nil
19 | }
20 |
21 | dispatch_once(&Static.onceToken) { () -> Void in
22 | Static.instance = DataCenter()
23 | }
24 | return Static.instance!
25 | }
26 |
27 | var mp:MPMoviePlayerController = MPMoviePlayerController()
28 |
29 | //歌曲分类列表信息
30 | var channelListInfo:[Channel] = []
31 |
32 | //当前分类
33 | var currentChannel: String = "public_tuijian_zhongguohaoshengyin" {
34 | didSet{
35 | NSUserDefaults.standardUserDefaults().setValue(self.currentChannel, forKey: "LAST_PLAY_CHANNEL_ID")
36 | NSUserDefaults.standardUserDefaults().synchronize()
37 | }
38 | }
39 |
40 | var currentChannelName: String = "中国好声音" {
41 | didSet{
42 | NSUserDefaults.standardUserDefaults().setValue(self.currentChannelName, forKey: "LAST_PLAY_CHANNEL_NAME")
43 | NSUserDefaults.standardUserDefaults().synchronize()
44 | }
45 | }
46 |
47 | //当前分类所有歌曲ID
48 | var currentAllSongId:[String] = []
49 |
50 | var curShowStartIndex = 0
51 |
52 | var curShowEndIndex = 20
53 |
54 | //当前显示歌曲列表
55 | var curShowAllSongId:[String]{
56 | get {
57 | if curShowEndIndex > self.currentAllSongId.count {
58 | curShowEndIndex = self.currentAllSongId.count
59 | curShowStartIndex = curShowEndIndex - 20
60 | }
61 |
62 | curShowStartIndex = curShowStartIndex < 0 ? 0 :curShowStartIndex
63 |
64 |
65 | return [] + currentAllSongId[curShowStartIndex ..< curShowEndIndex]
66 | }
67 | }
68 |
69 | //当前显示歌曲列表info信息
70 | var curShowAllSongInfo:[SongInfo] = []
71 |
72 | //当前显示歌曲列表link信息
73 | var curShowAllSongLink:[SongLink] = []
74 |
75 | //当前播放的歌曲index
76 | var curPlayIndex:Int = 0{
77 | didSet{
78 | if curPlayIndex < curShowAllSongInfo.count {
79 | curPlaySongInfo = curShowAllSongInfo[curPlayIndex]
80 | }
81 |
82 | if curPlayIndex < curShowAllSongLink.count{
83 | curPlaySongLink = curShowAllSongLink[curPlayIndex]
84 | }
85 | }
86 | }
87 |
88 | //当前播放歌曲的info信息
89 | var curPlaySongInfo:SongInfo? = nil
90 |
91 | //当前播放歌曲的info信息
92 | var curPlaySongLink:SongLink? = nil
93 |
94 | var curSong:Song? = nil
95 |
96 | var curPlayStatus = 0 //0初始 1播放 2暂时 3停止
97 |
98 | //db操作
99 | var dbSongList:SongList = SongList()
100 | }
--------------------------------------------------------------------------------
/BaiduFM/Model/Song.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Song.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/12.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class Song:NSObject{
12 | var sid:String
13 | var name:String
14 | var artist:String
15 | var album:String
16 | var song_url:String
17 | var pic_url:String
18 | var lrc_url:String
19 | var time:Int
20 | var is_dl:Int
21 | var dl_file:String
22 | var is_like:Int
23 | var is_recent:Int
24 | var format:String
25 |
26 | init(sid:String,name:String,artist:String,album:String,song_url:String,pic_url:String,lrc_url:String,time:Int,is_dl:Int,dl_file:String,is_like:Int,is_recent:Int,format:String) {
27 |
28 | self.sid = sid
29 | self.name = name
30 | self.artist = artist
31 | self.album = album
32 | self.song_url = song_url
33 | self.pic_url = pic_url
34 | self.lrc_url = lrc_url
35 | self.time = time
36 | self.is_dl = is_dl
37 | self.dl_file = dl_file
38 | self.is_like = is_like
39 | self.is_recent = is_recent
40 | self.format = format
41 |
42 | super.init()
43 | }
44 | }
45 |
46 | struct SongInfo {
47 | var id:String
48 | var name:String
49 | var artistId:String
50 | var artistName:String
51 | var albumId:Int
52 | var albumName:String
53 | var songPicSmall:String
54 | var songPicBig:String
55 | var songPicRadio:String
56 | var allRate:String
57 | }
58 |
59 | struct SongLink {
60 | var id:String
61 | var name:String
62 | var lrcLink:String
63 | var linkCode:Int
64 | var songLink:String
65 | var format:String
66 | var time:Int
67 | var size:Int
68 | var rate:Int
69 | }
--------------------------------------------------------------------------------
/BaiduFM/MyPlayground.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | //: Playground - noun: a place where people can play
2 |
3 | import UIKit
4 | var str:String = "Hello, playground"
5 |
6 | //xcode6.3 & swift1.2
7 |
8 | //1. 可选绑定if let的语法优化
9 | //2. 类型转化as用法的变化
10 | //3. 新增原生set(集合)类型
11 | //4. 常量延迟初始化
12 | //5. 与OC的互动和桥接
13 | //6. 迁移助手 Edit=>Convert=>To Latest Swift Syntax
14 |
15 | //1.可选绑定if let的语法优化
16 | var wea:String? = "rain"
17 | var sh:String? = "sun"
18 | var tmp:Int? = 20
19 |
20 | if let weather = wea where "rain".isEmpty, let shanghai = sh, let temp=tmp{
21 | //update ui
22 | println("update UI")
23 | }
24 |
25 | //2. 类型转化as用法的变化 NSObject=>UIView=>UITableView
26 |
27 | // 向上转换 UITableView=> NSObject 直接as
28 | // 向下转换 NSObject=>UITableView 确定 as!(强制转换) 不确定as?(安全转换)
29 |
30 | //3. 新增原生set(集合)类型
31 |
32 | var people:Set = ["头发","鼻子","耳朵","头发"]
33 | var dog:Set = ["鼻子","耳朵","尾巴"]
34 |
35 | //插入元素
36 | people.insert("脚")
37 |
38 | //删除元素
39 | people.remove("脚")
40 |
41 | people
42 |
43 | //交集
44 | people.intersect(dog)
45 |
46 | //差集
47 | people.subtract(dog)
48 |
49 | //并集
50 | people.union(dog)
51 |
52 | //补集
53 | people.exclusiveOr(dog)
54 |
55 | //4. 常量延迟初始化 only for class or struct
56 | struct Point{
57 | var x:Int
58 | var y:Int
59 | }
60 | //lazy var players:Point = Point(x: 10, y: 5)
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/BaiduFM/MyPlayground.playground/Sources/SupportCode.swift:
--------------------------------------------------------------------------------
1 | //
2 | // This file (and all other Swift source files in the Sources directory of this playground) will be precompiled into a framework which is automatically made available to MyPlayground.playground.
3 | //
4 |
--------------------------------------------------------------------------------
/BaiduFM/MyPlayground.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/BaiduFM/MyPlayground.playground/timeline.xctimeline:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/BaiduFM/Views/ChannelTableViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelTableViewController.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/13.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ChannelTableViewController: UITableViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 |
16 | if DataCenter.shareDataCenter.channelListInfo.count == 0 {
17 | HttpRequest.getChannelList { (list) -> Void in
18 | if list == nil {
19 | return
20 | }
21 | DataCenter.shareDataCenter.channelListInfo = list!
22 | self.tableView.reloadData()
23 | }
24 | }
25 | }
26 |
27 | override func didReceiveMemoryWarning() {
28 | super.didReceiveMemoryWarning()
29 | // Dispose of any resources that can be recreated.
30 | }
31 |
32 | // MARK: - Table view data source
33 |
34 | override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
35 | // #warning Potentially incomplete method implementation.
36 | // Return the number of sections.
37 | return 1
38 | }
39 |
40 | override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
41 | // #warning Incomplete method implementation.
42 | // Return the number of rows in the section.
43 | return DataCenter.shareDataCenter.channelListInfo.count
44 | }
45 |
46 | override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
47 | let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
48 |
49 | // Configure the cell...
50 | cell.textLabel?.text = DataCenter.shareDataCenter.channelListInfo[indexPath.row].name
51 |
52 | return cell
53 | }
54 |
55 | override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
56 |
57 | var channel = DataCenter.shareDataCenter.channelListInfo[indexPath.row]
58 | DataCenter.shareDataCenter.currentChannel = channel.id
59 | DataCenter.shareDataCenter.currentChannelName = channel.name
60 | DataCenter.shareDataCenter.curShowStartIndex = 0
61 | DataCenter.shareDataCenter.curShowEndIndex = 20
62 | }
63 |
64 | override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
65 | cell.layer.transform = CATransform3DMakeScale(0.1, 0.1, 1)
66 | UIView.animateWithDuration(0.25, animations: { () -> Void in
67 | cell.layer.transform = CATransform3DMakeScale(1, 1, 1)
68 | })
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/BaiduFM/Views/RoundImageView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RoundImageView.swift
3 | // BaiduFM
4 | //
5 | // Created by lumeng on 15/4/21.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class RoundImageView: UIImageView {
12 |
13 | /*
14 | // Only override drawRect: if you perform custom drawing.
15 | // An empty implementation adversely affects performance during animation.
16 | override func drawRect(rect: CGRect) {
17 | // Drawing code
18 | }
19 | */
20 |
21 | required init(coder aDecoder: NSCoder) {
22 | super.init(coder: aDecoder)
23 |
24 | //设置圆角
25 | self.clipsToBounds = true
26 | self.layer.cornerRadius = self.frame.size.width/2
27 |
28 | //边框
29 | self.layer.borderWidth = 4
30 | self.layer.borderColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.7).CGColor
31 | }
32 |
33 | func rotation(){
34 |
35 | var animation = CABasicAnimation(keyPath: "transform.rotation")
36 | animation.fromValue = 0.0
37 | animation.toValue = M_PI*2.0
38 | animation.duration = 20
39 | animation.repeatCount = 1000
40 | self.layer.addAnimation(animation, forKey: nil)
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/BaiduFMTests/BaiduFMTests.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BaiduFmTests.swift
3 | // BaiduFmTests
4 | //
5 | // Created by lumeng on 15/4/26.
6 | // Copyright (c) 2015年 lumeng. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import XCTest
11 |
12 | class BaiduFmTests: XCTestCase {
13 |
14 | override func setUp() {
15 | super.setUp()
16 | // Put setup code here. This method is called before the invocation of each test method in the class.
17 | }
18 |
19 | override func tearDown() {
20 | // Put teardown code here. This method is called after the invocation of each test method in the class.
21 | super.tearDown()
22 | }
23 |
24 | func testExample() {
25 | // This is an example of a functional test case.
26 | XCTAssert(true, "Pass")
27 | }
28 |
29 | func testPerformanceExample() {
30 | // This is an example of a performance test case.
31 | self.measureBlock() {
32 | // Put the code you want to measure the time of here.
33 | }
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/BaiduFMTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | com.belmeng.$(PRODUCT_NAME:rfc1034identifier)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | # Uncomment this line to define a global platform for your project
2 | source 'https://github.com/CocoaPods/Specs.git'
3 | platform :ios, '8.0'
4 | use_frameworks!
5 |
6 | target 'BaiduFM' do
7 | pod 'Alamofire', '~> 1.2'
8 | pod "SwiftyJSON", '>= 2.2'
9 | pod 'Async', :git => 'https://github.com/duemunk/Async.git'
10 | pod 'MJRefresh'
11 | pod 'LTMorphingLabel', '~> 0.0.6'
12 | pod 'Kingfisher', '~> 1.2'
13 | end
14 |
15 | target 'BaiduFM WatchKit Extension' do
16 | pod 'Alamofire', '~> 1.2'
17 | pod "SwiftyJSON", '>= 2.2'
18 | pod 'Async', :git => 'https://github.com/duemunk/Async.git'
19 | end
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Alamofire (1.2.1)
3 | - Async (1.2.0)
4 | - Kingfisher (1.2.0)
5 | - LTMorphingLabel (0.0.7)
6 | - MJRefresh (1.4.5)
7 | - SwiftyJSON (2.2.0)
8 |
9 | DEPENDENCIES:
10 | - Alamofire (~> 1.2)
11 | - Async (from `https://github.com/duemunk/Async.git`)
12 | - Kingfisher (~> 1.2)
13 | - LTMorphingLabel (~> 0.0.6)
14 | - MJRefresh
15 | - SwiftyJSON (>= 2.2)
16 |
17 | EXTERNAL SOURCES:
18 | Async:
19 | :git: https://github.com/duemunk/Async.git
20 |
21 | CHECKOUT OPTIONS:
22 | Async:
23 | :commit: ceb4051b248787cc860dd0e7169b1386e29345cf
24 | :git: https://github.com/duemunk/Async.git
25 |
26 | SPEC CHECKSUMS:
27 | Alamofire: 1acfdf179aff68b41a48dff70c1ac7fa263e2bcb
28 | Async: aba7b48a4cd05dae27d1affce2f48f2ed61e75f9
29 | Kingfisher: 17f76083d055d1f15f36cfe2cf8b7b39a3893e05
30 | LTMorphingLabel: aef64d2adb1c659869a8fe22cf2dc7bbad2e28e5
31 | MJRefresh: 4b24394e577ea399fbc926e5b6072317aae2c152
32 | SwiftyJSON: 0b3e6c07af17ff745e77e8e9984097b55c956e5c
33 |
34 | COCOAPODS: 0.37.0.rc.1
35 |
--------------------------------------------------------------------------------
/Pods/Alamofire/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014 Alamofire (http://alamofire.org/)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Pods/Async/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Tobias Due Munk
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/Pods/Headers/Private/LTMorphingLabel/LTMorphingLabel.h:
--------------------------------------------------------------------------------
1 | ../../../LTMorphingLabel/LTMorphingLabel/LTMorphingLabel.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefresh.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshComponent.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshConst.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshGifFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshGifHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshLegendFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/MJRefreshLegendHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/UIScrollView+MJExtension.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/UIScrollView+MJRefresh.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.h
--------------------------------------------------------------------------------
/Pods/Headers/Private/MJRefresh/UIView+MJExtension.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/LTMorphingLabel/LTMorphingLabel.h:
--------------------------------------------------------------------------------
1 | ../../../LTMorphingLabel/LTMorphingLabel/LTMorphingLabel.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefresh.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshComponent.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshConst.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshGifFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshGifHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshLegendFooter.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/MJRefreshLegendHeader.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/UIScrollView+MJExtension.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/UIScrollView+MJRefresh.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.h
--------------------------------------------------------------------------------
/Pods/Headers/Public/MJRefresh/UIView+MJExtension.h:
--------------------------------------------------------------------------------
1 | ../../../MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.h
--------------------------------------------------------------------------------
/Pods/Kingfisher/Kingfisher/KingfisherOptions.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KingfisherOptions.swift
3 | // Kingfisher
4 | //
5 | // Created by Wei Wang on 15/4/6.
6 | //
7 | // Copyright (c) 2015 Wei Wang
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | // THE SOFTWARE.
26 |
27 | import Foundation
28 |
29 | /**
30 | * Options to control Kingfisher behaviors.
31 | */
32 | public struct KingfisherOptions : RawOptionSetType {
33 | typealias RawValue = UInt
34 | private var value: UInt = 0
35 | init(_ value: UInt) { self.value = value }
36 | public init(rawValue value: UInt) { self.value = value }
37 | public init(nilLiteral: ()) { self.value = 0 }
38 | public static var allZeros: KingfisherOptions { return self(0) }
39 | static func fromMask(raw: UInt) -> KingfisherOptions { return self(raw) }
40 | public var rawValue: UInt { return self.value }
41 |
42 | /// None options. Kingfisher will keep its default behavior.
43 | public static var None: KingfisherOptions { return self(0) }
44 |
45 | /// Download in a low priority.
46 | public static var LowPriority: KingfisherOptions { return KingfisherOptions(1 << 0) }
47 |
48 | /// Ignore cache. Always download the image and cache it again.
49 | public static var ForceRefresh: KingfisherOptions { return KingfisherOptions(1 << 1) }
50 |
51 | /// Only cache downloaded image to memory, not cache in disk.
52 | public static var CacheMemoryOnly: KingfisherOptions { return KingfisherOptions(1 << 2) }
53 |
54 | /// Decode the image in background thread before using.
55 | public static var BackgroundDecode: KingfisherOptions { return KingfisherOptions(1 << 3) }
56 | }
57 |
--------------------------------------------------------------------------------
/Pods/Kingfisher/Kingfisher/KingfisherOptionsInfo.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KingfisherOptionsInfo.swift
3 | // Kingfisher
4 | //
5 | // Created by Wei Wang on 15/4/23.
6 | //
7 | // Copyright (c) 2015 Wei Wang
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | // THE SOFTWARE.
26 |
27 | import Foundation
28 |
29 | /**
30 | * KingfisherOptionsInfo is a typealias for [KingfisherOptionsInfoKey: Any]. You can use the key-value pairs to control some behaviors of Kingfisher.
31 | */
32 | public typealias KingfisherOptionsInfo = [KingfisherOptionsInfoKey: Any]
33 |
34 | /**
35 | Key for KingfisherOptionsInfo
36 |
37 | - Options: Key for options. The value for this key should be a KingfisherOptions.
38 | - TargetCache: Key for target cache. The value for this key should be an ImageCache object.Kingfisher will use this cache when handling the related operation, including trying to retrieve the cached images and store the downloaded image to it.
39 | - Downloader: Key for downloader to use. The value for this key should be an ImageDownloader object. Kingfisher will use this downloader to download the images.
40 | */
41 | public enum KingfisherOptionsInfoKey {
42 | case Options
43 | case TargetCache
44 | case Downloader
45 | }
46 |
--------------------------------------------------------------------------------
/Pods/Kingfisher/Kingfisher/UIImage+Decode.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UIImage+Decode.swift
3 | // Kingfisher
4 | //
5 | // Created by Wei Wang on 15/4/7.
6 | //
7 | // Copyright (c) 2015 Wei Wang
8 | //
9 | // Permission is hereby granted, free of charge, to any person obtaining a copy
10 | // of this software and associated documentation files (the "Software"), to deal
11 | // in the Software without restriction, including without limitation the rights
12 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 | // copies of the Software, and to permit persons to whom the Software is
14 | // furnished to do so, subject to the following conditions:
15 | //
16 | // The above copyright notice and this permission notice shall be included in
17 | // all copies or substantial portions of the Software.
18 | //
19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 | // THE SOFTWARE.
26 |
27 | import Foundation
28 |
29 | extension UIImage {
30 | func kf_decodedImage() -> UIImage? {
31 | let imageRef = self.CGImage
32 | let colorSpace = CGColorSpaceCreateDeviceRGB()
33 | let bitmapInfo = CGBitmapInfo(CGImageAlphaInfo.PremultipliedLast.rawValue)
34 | let context = CGBitmapContextCreate(nil, CGImageGetWidth(imageRef), CGImageGetHeight(imageRef), 8, 0, colorSpace, bitmapInfo)
35 | if let context = context {
36 | let rect = CGRectMake(0, 0, CGFloat(CGImageGetWidth(imageRef)), CGFloat(CGImageGetHeight(imageRef)))
37 | CGContextDrawImage(context, rect, imageRef)
38 | let decompressedImageRef = CGBitmapContextCreateImage(context)
39 | return UIImage(CGImage: decompressedImageRef)
40 | } else {
41 | return nil
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/Pods/Kingfisher/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Wei Wang
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 | Copyright © 2015 Lex Tang, http://LexTang.com
3 |
4 | Permission is hereby granted, free of charge, to any person obtaining a copy
5 | of this software and associated documentation files (the “Software”), to deal
6 | in the Software without restriction, including without limitation the rights
7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 | copies of the Software, and to permit persons to whom the Software is
9 | furnished to do so, subject to the following conditions:
10 |
11 | The above copyright notice and this permission notice shall be included in
12 | all copies or substantial portions of the Software.
13 |
14 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 | THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/LTCharacterLimbo.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LTCharacterLimbo.swift
3 | // LTMorphingLabelDemo
4 | //
5 | // Created by Lex on 3/15/15.
6 | // Copyright (c) 2015 LexTang.com. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 |
12 | public struct LTCharacterLimbo: DebugPrintable {
13 |
14 | public let char: Character
15 | public var rect: CGRect
16 | public var alpha: CGFloat
17 | public var size: CGFloat
18 | public var drawingProgress: CGFloat = 0.0
19 |
20 | public var debugDescription: String {
21 | get {
22 | return "Character: '\(char)'"
23 | + "drawIn (\(rect.origin.x), \(rect.origin.y), "
24 | + "\(rect.size.width)x\(rect.size.height) "
25 | + "with alpha \(alpha) "
26 | + "and \(size)pt font."
27 | }
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/LTEasing.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LTEasing.swift
3 | // LTMorphingLabelDemo
4 | //
5 | // Created by Lex on 7/1/14.
6 | // Copyright (c) 2015 LexTang.com. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | // http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js
12 | // t = currentTime
13 | // b = beginning
14 | // c = change
15 | // d = duration
16 |
17 | public class LTEasing {
18 |
19 | public class func easeOutQuint(t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
20 | return {
21 | return c * ($0 * $0 * $0 * $0 * $0 + 1.0) + b
22 | }(t / d - 1.0)
23 | }
24 |
25 | public class func easeInQuint(t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
26 | return {
27 | return c * $0 * $0 * $0 * $0 * $0 + b
28 | }(t / d)
29 | }
30 |
31 | public class func easeOutBack(t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
32 | let s: Float = 2.70158
33 | let t2: Float = t / d - 1.0
34 | return Float(c * (t2 * t2 * ((s + 1.0) * t2 + s) + 1.0)) + b
35 | }
36 |
37 | public class func easeOutBounce(t: Float, _ b: Float, _ c: Float, _ d: Float = 1.0) -> Float {
38 | return {
39 | if $0 < 1 / 2.75 {
40 | return c * 7.5625 * $0 * $0 + b
41 | } else if $0 < 2 / 2.75 {
42 | let t = $0 - 1.5 / 2.75
43 | return c * (7.5625 * t * t + 0.75) + b
44 | } else if $0 < 2.5 / 2.75 {
45 | let t = $0 - 2.25 / 2.75
46 | return c * (7.5625 * t * t + 0.9375) + b
47 | } else {
48 | let t = $0 - 2.625 / 2.75
49 | return c * (7.5625 * t * t + 0.984375) + b
50 | }
51 | }(t / d)
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/LTMorphingEffect.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LTMorphingEffect.swift
3 | // LTMorphingLabelDemo
4 | //
5 | // Created by Lex on 3/15/15.
6 | // Copyright (c) 2015 LexTang.com. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 |
12 | @objc public enum LTMorphingEffect: Int, Printable {
13 | case Scale = 0
14 | case Evaporate
15 | case Fall
16 | case Pixelate
17 | case Sparkle
18 | case Burn
19 | case Anvil
20 |
21 | static let allValues = ["Scale", "Evaporate", "Fall", "Pixelate", "Sparkle", "Burn", "Anvil"]
22 |
23 | public var description: String {
24 | get {
25 | switch self {
26 | case .Evaporate:
27 | return "Evaporate"
28 | case .Fall:
29 | return "Fall"
30 | case .Pixelate:
31 | return "Pixelate"
32 | case .Sparkle:
33 | return "Sparkle"
34 | case .Burn:
35 | return "Burn"
36 | case .Anvil:
37 | return "Anvil"
38 | default:
39 | return "Scale"
40 | }
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/LTMorphingLabel+Evaporate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // LTMorphingLabel+Evaporate.swift
3 | // https://github.com/lexrus/LTMorphingLabel
4 | //
5 | // The MIT License (MIT)
6 | // Copyright (c) 2015 Lex Tang, http://LexTang.com
7 | //
8 | // Permission is hereby granted, free of charge, to any person obtaining a copy
9 | // of this software and associated documentation files (the “Software”), to deal
10 | // in the Software without restriction, including without limitation the rights
11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | // copies of the Software, and to permit persons to whom the Software is
13 | // furnished to do so, subject to the following conditions:
14 | //
15 | // The above copyright notice and this permission notice shall be included in
16 | // all copies or substantial portions of the Software.
17 | //
18 | // THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | // THE SOFTWARE.
25 | //
26 |
27 | import UIKit
28 |
29 |
30 | extension LTMorphingLabel {
31 |
32 | func EvaporateLoad() {
33 |
34 | progressClosures["Evaporate\(LTMorphingPhaseManipulateProgress)"] = {
35 | (index: Int, progress: Float, isNewChar: Bool) in
36 | let j: Int = Int(round(cos(Double(index)) * 1.2))
37 | let delay = isNewChar ? self.morphingCharacterDelay * -1.0 : self.morphingCharacterDelay
38 | return min(1.0, max(0.0, self.morphingProgress + delay * Float(j)))
39 | }
40 |
41 | effectClosures["Evaporate\(LTMorphingPhaseDisappear)"] = {
42 | (char:Character, index: Int, progress: Float) in
43 |
44 | let newProgress = LTEasing.easeOutQuint(progress, 0.0, 1.0, 1.0)
45 | let yOffset: CGFloat = -0.8 * CGFloat(self.font.pointSize) * CGFloat(newProgress)
46 | let currentRect = CGRectOffset(self.previousRects[index], 0, yOffset)
47 | let currentAlpha = CGFloat(1.0 - newProgress)
48 |
49 | return LTCharacterLimbo(
50 | char: char,
51 | rect: currentRect,
52 | alpha: currentAlpha,
53 | size: self.font.pointSize,
54 | drawingProgress: 0.0)
55 | }
56 |
57 | effectClosures["Evaporate\(LTMorphingPhaseAppear)"] = {
58 | (char:Character, index: Int, progress: Float) in
59 |
60 | let newProgress = 1.0 - LTEasing.easeOutQuint(progress, 0.0, 1.0)
61 | let yOffset = CGFloat(self.font.pointSize) * CGFloat(newProgress) * 1.2
62 |
63 | return LTCharacterLimbo(
64 | char: char,
65 | rect: CGRectOffset(self.newRects[index], 0.0, yOffset),
66 | alpha: CGFloat(self.morphingProgress),
67 | size: self.font.pointSize,
68 | drawingProgress: 0.0
69 | )
70 | }
71 | }
72 |
73 | }
74 |
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/LTMorphingLabel.h:
--------------------------------------------------------------------------------
1 | //
2 | // LTMorphingLabel.h
3 | // LTMorphingLabel
4 | //
5 | // Created by Lex Tang on 1/8/15.
6 | // Copyright (c) 2015 LexTang.com. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | //! Project version number for LTMorphingLabel.
12 | FOUNDATION_EXPORT double LTMorphingLabelVersionNumber;
13 |
14 | //! Project version string for LTMorphingLabel.
15 | FOUNDATION_EXPORT const unsigned char LTMorphingLabelVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Fire.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Fire.png
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Fragment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Fragment.png
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Smoke.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Smoke.png
--------------------------------------------------------------------------------
/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Sparkle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/LTMorphingLabel/LTMorphingLabel/Particles/Sparkle.png
--------------------------------------------------------------------------------
/Pods/Local Podspecs/Async.podspec.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Async",
3 | "version": "1.2.0",
4 | "summary": "Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch",
5 | "homepage": "https://github.com/duemunk/Async",
6 | "license": {
7 | "type": "MIT"
8 | },
9 | "authors": {
10 | "Tobias Due Munk": "tobias@developmunk.dk"
11 | },
12 | "platforms": {
13 | "osx": "10.10",
14 | "ios": "8.0"
15 | },
16 | "source": {
17 | "git": "https://github.com/duemunk/Async.git",
18 | "tag": "1.2.0"
19 | },
20 | "source_files": "Async.{h,swift}",
21 | "requires_arc": true
22 | }
23 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013-2015 MJRefresh (https://github.com/CoderMJLee/MJRefresh)
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle/arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle/arrow@2x.png
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 |
4 | #import "UIScrollView+MJRefresh.h"
5 | #import "MJRefreshGifHeader.h"
6 | #import "MJRefreshLegendHeader.h"
7 | #import "MJRefreshGifFooter.h"
8 | #import "MJRefreshLegendFooter.h"
9 | #import "MJRefreshConst.h"
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshComponent.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/4.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | // 刷新组件:基本的开始刷新和结束刷新行为
9 |
10 | #import
11 |
12 | @interface MJRefreshComponent : UIView
13 | {
14 | UIEdgeInsets _scrollViewOriginalInset;
15 | __weak UIScrollView *_scrollView;
16 | }
17 |
18 | #pragma mark - 文字处理
19 | /** 文字颜色 */
20 | @property (strong, nonatomic) UIColor *textColor;
21 | /** 字体大小 */
22 | @property (strong, nonatomic) UIFont *font;
23 |
24 | #pragma mark - 刷新处理
25 | /** 正在刷新的回调 */
26 | @property (copy, nonatomic) void (^refreshingBlock)();
27 | /** 设置回调对象和回调方法 */
28 | - (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action;
29 | @property (weak, nonatomic) id refreshingTarget;
30 | @property (assign, nonatomic) SEL refreshingAction;
31 | /** 进入刷新状态 */
32 | - (void)beginRefreshing;
33 | /** 结束刷新状态 */
34 | - (void)endRefreshing;
35 | /** 是否正在刷新 */
36 | - (BOOL)isRefreshing;
37 | @end
38 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshComponent.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/4.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshComponent.h"
11 | #import "MJRefreshConst.h"
12 | #import "UIView+MJExtension.h"
13 |
14 | @interface MJRefreshComponent()
15 | /** 记录scrollView刚开始的inset */
16 | @property (assign, nonatomic) UIEdgeInsets scrollViewOriginalInset;
17 | /** 父控件 */
18 | @property (weak, nonatomic) UIScrollView *scrollView;
19 | @end
20 |
21 | @implementation MJRefreshComponent
22 | #pragma mark - 初始化
23 | - (instancetype)initWithFrame:(CGRect)frame
24 | {
25 | if (self = [super initWithFrame:frame]) {
26 | // 基本属性
27 | self.autoresizingMask = UIViewAutoresizingFlexibleWidth;
28 | self.backgroundColor = [UIColor clearColor];
29 |
30 | // 默认文字颜色和字体大小
31 | self.textColor = MJRefreshLabelTextColor;
32 | self.font = MJRefreshLabelFont;
33 | }
34 | return self;
35 | }
36 |
37 | - (void)willMoveToSuperview:(UIView *)newSuperview
38 | {
39 | [super willMoveToSuperview:newSuperview];
40 |
41 | // 旧的父控件
42 | [self.superview removeObserver:self forKeyPath:MJRefreshContentOffset context:nil];
43 |
44 | if (newSuperview) { // 新的父控件
45 | [newSuperview addObserver:self forKeyPath:MJRefreshContentOffset options:NSKeyValueObservingOptionNew context:nil];
46 |
47 | // 设置宽度
48 | self.mj_w = newSuperview.mj_w;
49 | // 设置位置
50 | self.mj_x = 0;
51 |
52 | // 记录UIScrollView
53 | self.scrollView = (UIScrollView *)newSuperview;
54 | // 设置永远支持垂直弹簧效果
55 | self.scrollView.alwaysBounceVertical = YES;
56 | // 记录UIScrollView最开始的contentInset
57 | self.scrollViewOriginalInset = self.scrollView.contentInset;
58 | }
59 | }
60 |
61 | #pragma mark - 公共方法
62 | - (void)setRefreshingTarget:(id)target refreshingAction:(SEL)action
63 | {
64 | self.refreshingTarget = target;
65 | self.refreshingAction = action;
66 | }
67 |
68 | - (void)beginRefreshing
69 | {
70 |
71 | }
72 |
73 | - (void)endRefreshing
74 | {
75 |
76 | }
77 |
78 | - (BOOL)isRefreshing {
79 | return NO;
80 | }
81 | @end
82 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | #import
4 |
5 | // 日志输出
6 | #ifdef DEBUG
7 | #define MJLog(...) NSLog(__VA_ARGS__)
8 | #else
9 | #define MJLog(...)
10 | #endif
11 |
12 | // 过期提醒
13 | #define MJDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)
14 |
15 | // 运行时objc_msgSend
16 | #define msgSend(...) ((void (*)(void *, SEL, UIView *))objc_msgSend)(__VA_ARGS__)
17 | #define msgTarget(target) (__bridge void *)(target)
18 |
19 | // RGB颜色
20 | #define MJColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
21 |
22 | // 文字颜色
23 | #define MJRefreshLabelTextColor MJColor(100, 100, 100)
24 |
25 | // 字体大小
26 | #define MJRefreshLabelFont [UIFont boldSystemFontOfSize:13]
27 |
28 | // 图片路径
29 | #define MJRefreshSrcName(file) [@"MJRefresh.bundle" stringByAppendingPathComponent:file]
30 |
31 | // 常量
32 | UIKIT_EXTERN const CGFloat MJRefreshHeaderHeight;
33 | UIKIT_EXTERN const CGFloat MJRefreshFooterHeight;
34 | UIKIT_EXTERN const CGFloat MJRefreshFastAnimationDuration;
35 | UIKIT_EXTERN const CGFloat MJRefreshSlowAnimationDuration;
36 |
37 | UIKIT_EXTERN NSString *const MJRefreshHeaderUpdatedTimeKey;
38 | UIKIT_EXTERN NSString *const MJRefreshContentOffset;
39 | UIKIT_EXTERN NSString *const MJRefreshContentSize;
40 | UIKIT_EXTERN NSString *const MJRefreshPanState;
41 |
42 | UIKIT_EXTERN NSString *const MJRefreshHeaderStateIdleText;
43 | UIKIT_EXTERN NSString *const MJRefreshHeaderStatePullingText;
44 | UIKIT_EXTERN NSString *const MJRefreshHeaderStateRefreshingText;
45 |
46 | UIKIT_EXTERN NSString *const MJRefreshFooterStateIdleText;
47 | UIKIT_EXTERN NSString *const MJRefreshFooterStateRefreshingText;
48 | UIKIT_EXTERN NSString *const MJRefreshFooterStateNoMoreDataText;
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | #import
4 |
5 | const CGFloat MJRefreshHeaderHeight = 54.0;
6 | const CGFloat MJRefreshFooterHeight = 44.0;
7 | const CGFloat MJRefreshFastAnimationDuration = 0.25;
8 | const CGFloat MJRefreshSlowAnimationDuration = 0.4;
9 |
10 | NSString *const MJRefreshHeaderUpdatedTimeKey = @"MJRefreshHeaderUpdatedTimeKey";
11 | NSString *const MJRefreshContentOffset = @"contentOffset";
12 | NSString *const MJRefreshContentSize = @"contentSize";
13 | NSString *const MJRefreshPanState = @"pan.state";
14 |
15 | NSString *const MJRefreshHeaderStateIdleText = @"下拉可以刷新";
16 | NSString *const MJRefreshHeaderStatePullingText = @"松开立即刷新";
17 | NSString *const MJRefreshHeaderStateRefreshingText = @"正在刷新数据中...";
18 |
19 | NSString *const MJRefreshFooterStateIdleText = @"点击加载更多";
20 | NSString *const MJRefreshFooterStateRefreshingText = @"正在加载更多的数据...";
21 | NSString *const MJRefreshFooterStateNoMoreDataText = @"已经全部加载完毕";
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshFooter.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshComponent.h"
11 |
12 | typedef enum {
13 | MJRefreshFooterStateIdle = 1, // 普通闲置状态
14 | MJRefreshFooterStateRefreshing, // 正在刷新中的状态
15 | MJRefreshFooterStateNoMoreData // 所有数据加载完毕,没有更多的数据了
16 | } MJRefreshFooterState;
17 |
18 | @interface MJRefreshFooter : MJRefreshComponent
19 | /** 提示没有更多的数据 */
20 | - (void)noticeNoMoreData;
21 | /** 重置没有更多的数据(消除没有更多数据的状态) */
22 | - (void)resetNoMoreData;
23 |
24 | /** 刷新控件的状态(交给子类重写) */
25 | @property (assign, nonatomic) MJRefreshFooterState state;
26 |
27 | /** 是否隐藏状态标签 */
28 | @property (assign, nonatomic, getter=isStateHidden) BOOL stateHidden;
29 |
30 | /**
31 | * 设置state状态下的状态文字内容title
32 | */
33 | - (void)setTitle:(NSString *)title forState:(MJRefreshFooterState)state;
34 |
35 | /** 是否自动刷新(默认为YES) */
36 | @property (assign, nonatomic, getter=isAutomaticallyRefresh) BOOL automaticallyRefresh;
37 |
38 | /** 当底部控件出现多少时就自动刷新(默认为1.0,也就是底部控件完全出现时,才会自动刷新) */
39 | @property (assign, nonatomic) CGFloat appearencePercentTriggerAutoRefresh;
40 | @end
41 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshGifFooter.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshFooter.h"
11 |
12 | @interface MJRefreshGifFooter : MJRefreshFooter
13 | /** 正在刷新时的动画图片 */
14 | @property (strong, nonatomic) NSArray *refreshingImages;
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshGifFooter.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshGifFooter.h"
11 | #import "MJRefreshConst.h"
12 | #import "UIView+MJExtension.h"
13 | #import "UIScrollView+MJExtension.h"
14 |
15 | @interface MJRefreshGifFooter()
16 | /** 播放动画图片的控件 */
17 | @property (weak, nonatomic) UIImageView *gifView;
18 | @end
19 |
20 | @implementation MJRefreshGifFooter
21 | #pragma mark - 懒加载
22 | - (UIImageView *)gifView
23 | {
24 | if (!_gifView) {
25 | UIImageView *gifView = [[UIImageView alloc] init];
26 | [self addSubview:_gifView = gifView];
27 | }
28 | return _gifView;
29 | }
30 |
31 | #pragma mark - 初始化方法
32 | - (void)layoutSubviews
33 | {
34 | [super layoutSubviews];
35 |
36 | // 指示器
37 | self.gifView.frame = self.bounds;
38 | if (self.stateHidden) {
39 | self.gifView.contentMode = UIViewContentModeCenter;
40 | } else {
41 | self.gifView.contentMode = UIViewContentModeRight;
42 | self.gifView.mj_w = self.mj_w * 0.5 - 90;
43 | }
44 | }
45 |
46 | #pragma mark - 公共方法
47 | - (void)setState:(MJRefreshFooterState)state
48 | {
49 | if (self.state == state) return;
50 |
51 | switch (state) {
52 | case MJRefreshFooterStateIdle:
53 | self.gifView.hidden = YES;
54 | [self.gifView stopAnimating];
55 | break;
56 |
57 | case MJRefreshFooterStateRefreshing:
58 | self.gifView.hidden = NO;
59 | [self.gifView startAnimating];
60 | break;
61 |
62 | case MJRefreshFooterStateNoMoreData:
63 | self.gifView.hidden = YES;
64 | [self.gifView stopAnimating];
65 | break;
66 |
67 | default:
68 | break;
69 | }
70 |
71 | // super里面有回调,应该在最后面调用
72 | [super setState:state];
73 | }
74 |
75 | - (void)setRefreshingImages:(NSArray *)refreshingImages
76 | {
77 | _refreshingImages = refreshingImages;
78 |
79 | self.gifView.animationImages = refreshingImages;
80 | self.gifView.animationDuration = refreshingImages.count * 0.1;
81 |
82 | // 根据图片设置控件的高度
83 | UIImage *image = [refreshingImages firstObject];
84 | if (image.size.height > self.mj_h) {
85 | _scrollView.mj_insetB -= self.mj_h;
86 | self.mj_h = image.size.height;
87 | _scrollView.mj_insetB += self.mj_h;
88 | }
89 | }
90 | @end
91 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshGifHeader.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/4.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | // 带有gif图片功能的下拉刷新控件
9 |
10 | #import "MJRefreshHeader.h"
11 |
12 | @interface MJRefreshGifHeader : MJRefreshHeader
13 | /** 设置state状态下的动画图片images */
14 | - (void)setImages:(NSArray *)images forState:(MJRefreshHeaderState)state;
15 | @end
16 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshHeader.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/4.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | // 下拉刷新控件:负责监控用户下拉的状态
9 |
10 | #import "MJRefreshComponent.h"
11 |
12 | // 下拉刷新控件的状态
13 | typedef enum {
14 | /** 普通闲置状态 */
15 | MJRefreshHeaderStateIdle = 1,
16 | /** 松开就可以进行刷新的状态 */
17 | MJRefreshHeaderStatePulling,
18 | /** 正在刷新中的状态 */
19 | MJRefreshHeaderStateRefreshing,
20 | /** 即将刷新的状态 */
21 | MJRefreshHeaderStateWillRefresh
22 | } MJRefreshHeaderState;
23 |
24 | @interface MJRefreshHeader : MJRefreshComponent
25 | /** 利用这个key来保存上次的刷新时间(不同界面的刷新控件应该用不同的dateKey,以区分不同界面的刷新时间) */
26 | @property (copy, nonatomic) NSString *dateKey;
27 |
28 | /** 利用这个block来决定显示的更新时间 */
29 | @property (copy, nonatomic) NSString *(^updatedTimeTitle)(NSDate *updatedTime);
30 |
31 | /**
32 | * 设置state状态下的状态文字内容title(别直接拿stateLabel修改文字)
33 | */
34 | - (void)setTitle:(NSString *)title forState:(MJRefreshHeaderState)state;
35 | /** 刷新控件的状态 */
36 | @property (assign, nonatomic) MJRefreshHeaderState state;
37 |
38 | #pragma mark - 文字控件的可见性处理
39 | /** 是否隐藏状态标签 */
40 | @property (assign, nonatomic, getter=isStateHidden) BOOL stateHidden;
41 | /** 是否隐藏刷新时间标签 */
42 | @property (assign, nonatomic, getter=isUpdatedTimeHidden) BOOL updatedTimeHidden;
43 |
44 | #pragma mark - 交给子类重写
45 | /** 下拉的百分比(交给子类重写) */
46 | @property (assign, nonatomic) CGFloat pullingPercent;
47 | @end
48 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshLegendFooter.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshFooter.h"
11 |
12 | @interface MJRefreshLegendFooter : MJRefreshFooter
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshLegendFooter.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/5.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | //
9 |
10 | #import "MJRefreshLegendFooter.h"
11 | #import "MJRefreshConst.h"
12 | #import "UIView+MJExtension.h"
13 | #import "UIScrollView+MJExtension.h"
14 |
15 | @interface MJRefreshLegendFooter()
16 | @property (nonatomic, weak) UIActivityIndicatorView *activityView;
17 | @end
18 |
19 | @implementation MJRefreshLegendFooter
20 | #pragma mark - 懒加载
21 | - (UIActivityIndicatorView *)activityView
22 | {
23 | if (!_activityView) {
24 | UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
25 | [self addSubview:_activityView = activityView];
26 | }
27 | return _activityView;
28 | }
29 |
30 | #pragma mark - 初始化方法
31 | - (void)layoutSubviews
32 | {
33 | [super layoutSubviews];
34 |
35 | // 指示器
36 | if (self.stateHidden) {
37 | self.activityView.center = CGPointMake(self.mj_w * 0.5, self.mj_h * 0.5);
38 | } else {
39 | self.activityView.center = CGPointMake(self.mj_w * 0.5 - 100, self.mj_h * 0.5);
40 | }
41 | }
42 |
43 | #pragma mark - 公共方法
44 | - (void)setState:(MJRefreshFooterState)state
45 | {
46 | if (self.state == state) return;
47 |
48 | switch (state) {
49 | case MJRefreshFooterStateIdle:
50 | [self.activityView stopAnimating];
51 | break;
52 |
53 | case MJRefreshFooterStateRefreshing:
54 | [self.activityView startAnimating];
55 | break;
56 |
57 | case MJRefreshFooterStateNoMoreData:
58 | [self.activityView stopAnimating];
59 | break;
60 |
61 | default:
62 | break;
63 | }
64 |
65 | // super里面有回调,应该在最后面调用
66 | [super setState:state];
67 | }
68 | @end
69 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // MJRefreshLegendHeader.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 15/3/4.
7 | // Copyright (c) 2015年 itcast. All rights reserved.
8 | // 传统的下拉刷新控件:箭头 + 圈圈
9 |
10 | #import "MJRefreshHeader.h"
11 |
12 | @interface MJRefreshLegendHeader : MJRefreshHeader
13 |
14 | @end
15 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIScrollView+Extension.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 itcast. All rights reserved.
8 | //
9 |
10 | #import
11 |
12 | @interface UIScrollView (MJExtension)
13 | @property (assign, nonatomic) CGFloat mj_insetT;
14 | @property (assign, nonatomic) CGFloat mj_insetB;
15 | @property (assign, nonatomic) CGFloat mj_insetL;
16 | @property (assign, nonatomic) CGFloat mj_insetR;
17 |
18 | @property (assign, nonatomic) CGFloat mj_offsetX;
19 | @property (assign, nonatomic) CGFloat mj_offsetY;
20 |
21 | @property (assign, nonatomic) CGFloat mj_contentSizeW;
22 | @property (assign, nonatomic) CGFloat mj_contentSizeH;
23 | @end
24 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIScrollView+Extension.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 itcast. All rights reserved.
8 | //
9 |
10 | #import "UIScrollView+MJExtension.h"
11 |
12 | @implementation UIScrollView (MJExtension)
13 | - (void)setMj_insetT:(CGFloat)mj_insetT
14 | {
15 | UIEdgeInsets inset = self.contentInset;
16 | inset.top = mj_insetT;
17 | self.contentInset = inset;
18 | }
19 |
20 | - (CGFloat)mj_insetT
21 | {
22 | return self.contentInset.top;
23 | }
24 |
25 | - (void)setMj_insetB:(CGFloat)mj_insetB
26 | {
27 | UIEdgeInsets inset = self.contentInset;
28 | inset.bottom = mj_insetB;
29 | self.contentInset = inset;
30 | }
31 |
32 | - (CGFloat)mj_insetB
33 | {
34 | return self.contentInset.bottom;
35 | }
36 |
37 | - (void)setMj_insetL:(CGFloat)mj_insetL
38 | {
39 | UIEdgeInsets inset = self.contentInset;
40 | inset.left = mj_insetL;
41 | self.contentInset = inset;
42 | }
43 |
44 | - (CGFloat)mj_insetL
45 | {
46 | return self.contentInset.left;
47 | }
48 |
49 | - (void)setMj_insetR:(CGFloat)mj_insetR
50 | {
51 | UIEdgeInsets inset = self.contentInset;
52 | inset.right = mj_insetR;
53 | self.contentInset = inset;
54 | }
55 |
56 | - (CGFloat)mj_insetR
57 | {
58 | return self.contentInset.right;
59 | }
60 |
61 | - (void)setMj_offsetX:(CGFloat)mj_offsetX
62 | {
63 | CGPoint offset = self.contentOffset;
64 | offset.x = mj_offsetX;
65 | self.contentOffset = offset;
66 | }
67 |
68 | - (CGFloat)mj_offsetX
69 | {
70 | return self.contentOffset.x;
71 | }
72 |
73 | - (void)setMj_offsetY:(CGFloat)mj_offsetY
74 | {
75 | CGPoint offset = self.contentOffset;
76 | offset.y = mj_offsetY;
77 | self.contentOffset = offset;
78 | }
79 |
80 | - (CGFloat)mj_offsetY
81 | {
82 | return self.contentOffset.y;
83 | }
84 |
85 | - (void)setMj_contentSizeW:(CGFloat)mj_contentSizeW
86 | {
87 | CGSize size = self.contentSize;
88 | size.width = mj_contentSizeW;
89 | self.contentSize = size;
90 | }
91 |
92 | - (CGFloat)mj_contentSizeW
93 | {
94 | return self.contentSize.width;
95 | }
96 |
97 | - (void)setMj_contentSizeH:(CGFloat)mj_contentSizeH
98 | {
99 | CGSize size = self.contentSize;
100 | size.height = mj_contentSizeH;
101 | self.contentSize = size;
102 | }
103 |
104 | - (CGFloat)mj_contentSizeH
105 | {
106 | return self.contentSize.height;
107 | }
108 | @end
109 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.h:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIView+Extension.h
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 itcast. All rights reserved.
8 | //
9 |
10 | #import
11 |
12 | @interface UIView (MJExtension)
13 | @property (assign, nonatomic) CGFloat mj_x;
14 | @property (assign, nonatomic) CGFloat mj_y;
15 | @property (assign, nonatomic) CGFloat mj_w;
16 | @property (assign, nonatomic) CGFloat mj_h;
17 | @property (assign, nonatomic) CGSize mj_size;
18 | @property (assign, nonatomic) CGPoint mj_origin;
19 | @end
20 |
--------------------------------------------------------------------------------
/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.m:
--------------------------------------------------------------------------------
1 | // 代码地址: https://github.com/CoderMJLee/MJRefresh
2 | // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000
3 | // UIView+Extension.m
4 | // MJRefreshExample
5 | //
6 | // Created by MJ Lee on 14-5-28.
7 | // Copyright (c) 2014年 itcast. All rights reserved.
8 | //
9 |
10 | #import "UIView+MJExtension.h"
11 |
12 | @implementation UIView (MJExtension)
13 | - (void)setMj_x:(CGFloat)mj_x
14 | {
15 | CGRect frame = self.frame;
16 | frame.origin.x = mj_x;
17 | self.frame = frame;
18 | }
19 |
20 | - (CGFloat)mj_x
21 | {
22 | return self.frame.origin.x;
23 | }
24 |
25 | - (void)setMj_y:(CGFloat)mj_y
26 | {
27 | CGRect frame = self.frame;
28 | frame.origin.y = mj_y;
29 | self.frame = frame;
30 | }
31 |
32 | - (CGFloat)mj_y
33 | {
34 | return self.frame.origin.y;
35 | }
36 |
37 | - (void)setMj_w:(CGFloat)mj_w
38 | {
39 | CGRect frame = self.frame;
40 | frame.size.width = mj_w;
41 | self.frame = frame;
42 | }
43 |
44 | - (CGFloat)mj_w
45 | {
46 | return self.frame.size.width;
47 | }
48 |
49 | - (void)setMj_h:(CGFloat)mj_h
50 | {
51 | CGRect frame = self.frame;
52 | frame.size.height = mj_h;
53 | self.frame = frame;
54 | }
55 |
56 | - (CGFloat)mj_h
57 | {
58 | return self.frame.size.height;
59 | }
60 |
61 | - (void)setMj_size:(CGSize)mj_size
62 | {
63 | CGRect frame = self.frame;
64 | frame.size = mj_size;
65 | self.frame = frame;
66 | }
67 |
68 | - (CGSize)mj_size
69 | {
70 | return self.frame.size;
71 | }
72 |
73 | - (void)setMj_origin:(CGPoint)mj_origin
74 | {
75 | CGRect frame = self.frame;
76 | frame.origin = mj_origin;
77 | self.frame = frame;
78 | }
79 |
80 | - (CGPoint)mj_origin
81 | {
82 | return self.frame.origin;
83 | }
84 | @end
85 |
--------------------------------------------------------------------------------
/Pods/Manifest.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Alamofire (1.2.1)
3 | - Async (1.2.0)
4 | - Kingfisher (1.2.0)
5 | - LTMorphingLabel (0.0.7)
6 | - MJRefresh (1.4.5)
7 | - SwiftyJSON (2.2.0)
8 |
9 | DEPENDENCIES:
10 | - Alamofire (~> 1.2)
11 | - Async (from `https://github.com/duemunk/Async.git`)
12 | - Kingfisher (~> 1.2)
13 | - LTMorphingLabel (~> 0.0.6)
14 | - MJRefresh
15 | - SwiftyJSON (>= 2.2)
16 |
17 | EXTERNAL SOURCES:
18 | Async:
19 | :git: https://github.com/duemunk/Async.git
20 |
21 | CHECKOUT OPTIONS:
22 | Async:
23 | :commit: ceb4051b248787cc860dd0e7169b1386e29345cf
24 | :git: https://github.com/duemunk/Async.git
25 |
26 | SPEC CHECKSUMS:
27 | Alamofire: 1acfdf179aff68b41a48dff70c1ac7fa263e2bcb
28 | Async: aba7b48a4cd05dae27d1affce2f48f2ed61e75f9
29 | Kingfisher: 17f76083d055d1f15f36cfe2cf8b7b39a3893e05
30 | LTMorphingLabel: aef64d2adb1c659869a8fe22cf2dc7bbad2e28e5
31 | MJRefresh: 4b24394e577ea399fbc926e5b6072317aae2c152
32 | SwiftyJSON: 0b3e6c07af17ff745e77e8e9984097b55c956e5c
33 |
34 | COCOAPODS: 0.37.0.rc.1
35 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM WatchKit Extension-Alamofire.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM WatchKit Extension-Async.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM WatchKit Extension.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-Alamofire.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-Async.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-Kingfisher.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-LTMorphingLabel.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-MJRefresh.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM-SwiftyJSON.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/Pods-BaiduFM.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/Pods/Pods.xcodeproj/xcuserdata/lumeng.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Pods-BaiduFM WatchKit Extension-Alamofire.xcscheme
8 |
9 | isShown
10 |
11 |
12 | Pods-BaiduFM WatchKit Extension-Async.xcscheme
13 |
14 | isShown
15 |
16 |
17 | Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcscheme
18 |
19 | isShown
20 |
21 |
22 | Pods-BaiduFM WatchKit Extension.xcscheme
23 |
24 | isShown
25 |
26 |
27 | Pods-BaiduFM-Alamofire.xcscheme
28 |
29 | isShown
30 |
31 |
32 | Pods-BaiduFM-Async.xcscheme
33 |
34 | isShown
35 |
36 |
37 | Pods-BaiduFM-Kingfisher.xcscheme
38 |
39 | isShown
40 |
41 |
42 | Pods-BaiduFM-LTMorphingLabel.xcscheme
43 |
44 | isShown
45 |
46 |
47 | Pods-BaiduFM-MJRefresh.xcscheme
48 |
49 | isShown
50 |
51 |
52 | Pods-BaiduFM-SwiftyJSON.xcscheme
53 |
54 | isShown
55 |
56 |
57 | Pods-BaiduFM.xcscheme
58 |
59 | isShown
60 |
61 |
62 |
63 | SuppressBuildableAutocreation
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/Pods/SwiftyJSON/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014 Ruoyu Fu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.2.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM WatchKit Extension-Alamofire.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Alamofire" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM WatchKit Extension
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_WatchKit_Extension_Alamofire : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_WatchKit_Extension_Alamofire
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM WatchKit Extension-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double AlamofireVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire.modulemap:
--------------------------------------------------------------------------------
1 | framework module Alamofire {
2 | umbrella header "Pods-BaiduFM WatchKit Extension-Alamofire-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Alamofire/Pods-BaiduFM WatchKit Extension-Alamofire.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM WatchKit Extension-Async.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Async" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM WatchKit Extension
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_WatchKit_Extension_Async : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_WatchKit_Extension_Async
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM WatchKit Extension-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double AsyncVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char AsyncVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async.modulemap:
--------------------------------------------------------------------------------
1 | framework module Async {
2 | umbrella header "Pods-BaiduFM WatchKit Extension-Async-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-Async/Pods-BaiduFM WatchKit Extension-Async.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SwiftyJSON" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM WatchKit Extension
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_WatchKit_Extension_SwiftyJSON : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_WatchKit_Extension_SwiftyJSON
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM WatchKit Extension-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double SwiftyJSONVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON.modulemap:
--------------------------------------------------------------------------------
1 | framework module SwiftyJSON {
2 | umbrella header "Pods-BaiduFM WatchKit Extension-SwiftyJSON-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension-SwiftyJSON/Pods-BaiduFM WatchKit Extension-SwiftyJSON.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension-acknowledgements.markdown:
--------------------------------------------------------------------------------
1 | # Acknowledgements
2 | This application makes use of the following third party libraries:
3 |
4 | ## Alamofire
5 |
6 | Copyright (c) 2014 Alamofire (http://alamofire.org/)
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy
9 | of this software and associated documentation files (the "Software"), to deal
10 | in the Software without restriction, including without limitation the rights
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12 | copies of the Software, and to permit persons to whom the Software is
13 | furnished to do so, subject to the following conditions:
14 |
15 | The above copyright notice and this permission notice shall be included in
16 | all copies or substantial portions of the Software.
17 |
18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 | THE SOFTWARE.
25 |
26 |
27 | ## Async
28 |
29 | The MIT License (MIT)
30 |
31 | Copyright (c) 2014 Tobias Due Munk
32 |
33 | Permission is hereby granted, free of charge, to any person obtaining a copy of
34 | this software and associated documentation files (the "Software"), to deal in
35 | the Software without restriction, including without limitation the rights to
36 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
37 | the Software, and to permit persons to whom the Software is furnished to do so,
38 | subject to the following conditions:
39 |
40 | The above copyright notice and this permission notice shall be included in all
41 | copies or substantial portions of the Software.
42 |
43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
45 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
46 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
47 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
48 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
49 |
50 |
51 | ## SwiftyJSON
52 |
53 | The MIT License (MIT)
54 |
55 | Copyright (c) 2014 Ruoyu Fu
56 |
57 | Permission is hereby granted, free of charge, to any person obtaining a copy
58 | of this software and associated documentation files (the "Software"), to deal
59 | in the Software without restriction, including without limitation the rights
60 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
61 | copies of the Software, and to permit persons to whom the Software is
62 | furnished to do so, subject to the following conditions:
63 |
64 | The above copyright notice and this permission notice shall be included in
65 | all copies or substantial portions of the Software.
66 |
67 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
68 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
69 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
70 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
71 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
72 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
73 | THE SOFTWARE.
74 |
75 | Generated by CocoaPods - http://cocoapods.org
76 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_WatchKit_Extension : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_WatchKit_Extension
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension-environment.h:
--------------------------------------------------------------------------------
1 |
2 | // To check if a library is compiled with CocoaPods you
3 | // can use the `COCOAPODS` macro definition which is
4 | // defined in the xcconfigs so it is available in
5 | // headers also when they are imported in the client
6 | // project.
7 |
8 |
9 | // Alamofire
10 | #define COCOAPODS_POD_AVAILABLE_Alamofire
11 | #define COCOAPODS_VERSION_MAJOR_Alamofire 1
12 | #define COCOAPODS_VERSION_MINOR_Alamofire 2
13 | #define COCOAPODS_VERSION_PATCH_Alamofire 1
14 |
15 | // Async
16 | #define COCOAPODS_POD_AVAILABLE_Async
17 | #define COCOAPODS_VERSION_MAJOR_Async 1
18 | #define COCOAPODS_VERSION_MINOR_Async 2
19 | #define COCOAPODS_VERSION_PATCH_Async 0
20 |
21 | // SwiftyJSON
22 | #define COCOAPODS_POD_AVAILABLE_SwiftyJSON
23 | #define COCOAPODS_VERSION_MAJOR_SwiftyJSON 2
24 | #define COCOAPODS_VERSION_MINOR_SwiftyJSON 2
25 | #define COCOAPODS_VERSION_PATCH_SwiftyJSON 0
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension-frameworks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
6 |
7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
8 |
9 | install_framework()
10 | {
11 | local source="${BUILT_PRODUCTS_DIR}/Pods-BaiduFM WatchKit Extension/$1"
12 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
13 |
14 | if [ -L "${source}" ]; then
15 | echo "Symlinked..."
16 | source=$(readlink "${source}")
17 | fi
18 |
19 | # use filter instead of exclude so missing patterns dont' throw errors
20 | echo "rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" --filter "- Modules/" ${source} ${destination}"
21 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" --filter "- Modules/" "${source}" "${destination}"
22 | # Resign the code if required by the build settings to avoid unstable apps
23 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
24 | code_sign "${destination}/$1"
25 | fi
26 |
27 | # Embed linked Swift runtime libraries
28 | local basename
29 | basename=$(echo $1 | sed -E s/\\..+// && exit ${PIPESTATUS[0]})
30 | local swift_runtime_libs
31 | swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
32 | for lib in $swift_runtime_libs; do
33 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
34 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
35 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
36 | code_sign "${destination}/${lib}"
37 | fi
38 | done
39 | }
40 |
41 | # Signs a framework with the provided identity
42 | code_sign() {
43 | # Use the current code_sign_identitiy
44 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
45 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1"
46 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
47 | }
48 |
49 |
50 | if [[ "$CONFIGURATION" == "Debug" ]]; then
51 | install_framework 'Alamofire.framework'
52 | install_framework 'Async.framework'
53 | install_framework 'SwiftyJSON.framework'
54 | fi
55 | if [[ "$CONFIGURATION" == "Release" ]]; then
56 | install_framework 'Alamofire.framework'
57 | install_framework 'Async.framework'
58 | install_framework 'SwiftyJSON.framework'
59 | fi
60 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double Pods_BaiduFM_WatchKit_ExtensionVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char Pods_BaiduFM_WatchKit_ExtensionVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/Alamofire.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Async.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/SwiftyJSON.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Alamofire" -framework "Async" -framework "SwiftyJSON"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM WatchKit Extension
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_BaiduFM_WatchKit_Extension {
2 | umbrella header "Pods-BaiduFM WatchKit Extension-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM WatchKit Extension/Pods-BaiduFM WatchKit Extension.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/Alamofire.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Async.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/SwiftyJSON.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Alamofire" -framework "Async" -framework "SwiftyJSON"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM WatchKit Extension
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.2.1
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-Alamofire.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Alamofire" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_Alamofire : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_Alamofire
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double AlamofireVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire.modulemap:
--------------------------------------------------------------------------------
1 | framework module Alamofire {
2 | umbrella header "Pods-BaiduFM-Alamofire-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM-Alamofire/Pods-BaiduFM-Alamofire.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-Async.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Async" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_Async : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_Async
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double AsyncVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char AsyncVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async.modulemap:
--------------------------------------------------------------------------------
1 | framework module Async {
2 | umbrella header "Pods-BaiduFM-Async-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM-Async/Pods-BaiduFM-Async.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-Kingfisher.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Kingfisher" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_Kingfisher : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_Kingfisher
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double KingfisherVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher.modulemap:
--------------------------------------------------------------------------------
1 | framework module Kingfisher {
2 | umbrella header "Pods-BaiduFM-Kingfisher-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM-Kingfisher/Pods-BaiduFM-Kingfisher.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 0.0.7
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-LTMorphingLabel.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LTMorphingLabel" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = ${PODS_BAIDUFM_LTMORPHINGLABEL_OTHER_LDFLAGS} -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_LTMorphingLabel : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_LTMorphingLabel
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "LTMorphingLabel.h"
4 |
5 | FOUNDATION_EXPORT double LTMorphingLabelVersionNumber;
6 | FOUNDATION_EXPORT const unsigned char LTMorphingLabelVersionString[];
7 |
8 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel.modulemap:
--------------------------------------------------------------------------------
1 | framework module LTMorphingLabel {
2 | umbrella header "Pods-BaiduFM-LTMorphingLabel-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-LTMorphingLabel/Pods-BaiduFM-LTMorphingLabel.xcconfig:
--------------------------------------------------------------------------------
1 | PODS_BAIDUFM_LTMORPHINGLABEL_OTHER_LDFLAGS = -framework "Foundation" -framework "QuartzCore" -framework "UIKit"
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.4.5
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-MJRefresh.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
8 | PODS_ROOT = ${SRCROOT}
9 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_MJRefresh : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_MJRefresh
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "MJRefresh.h"
4 | #import "MJRefreshComponent.h"
5 | #import "MJRefreshConst.h"
6 | #import "MJRefreshFooter.h"
7 | #import "MJRefreshGifFooter.h"
8 | #import "MJRefreshGifHeader.h"
9 | #import "MJRefreshHeader.h"
10 | #import "MJRefreshLegendFooter.h"
11 | #import "MJRefreshLegendHeader.h"
12 | #import "UIScrollView+MJExtension.h"
13 | #import "UIScrollView+MJRefresh.h"
14 | #import "UIView+MJExtension.h"
15 |
16 | FOUNDATION_EXPORT double MJRefreshVersionNumber;
17 | FOUNDATION_EXPORT const unsigned char MJRefreshVersionString[];
18 |
19 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh.modulemap:
--------------------------------------------------------------------------------
1 | framework module MJRefresh {
2 | umbrella header "Pods-BaiduFM-MJRefresh-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM-MJRefresh/Pods-BaiduFM-MJRefresh.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 2.2.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON-Private.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods-BaiduFM-SwiftyJSON.xcconfig"
2 | CONFIGURATION_BUILD_DIR = $PODS_FRAMEWORK_BUILD_PATH
3 | FRAMEWORK_SEARCH_PATHS = "$PODS_FRAMEWORK_BUILD_PATH"
4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SwiftyJSON" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Alamofire" "${PODS_ROOT}/Headers/Public/Async" "${PODS_ROOT}/Headers/Public/Kingfisher" "${PODS_ROOT}/Headers/Public/LTMorphingLabel" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/SwiftyJSON"
6 | OTHER_LDFLAGS = -ObjC
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}
10 | SKIP_INSTALL = YES
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM_SwiftyJSON : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM_SwiftyJSON
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON-prefix.pch:
--------------------------------------------------------------------------------
1 | #ifdef __OBJC__
2 | #import
3 | #endif
4 |
5 | #import "Pods-BaiduFM-environment.h"
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double SwiftyJSONVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON.modulemap:
--------------------------------------------------------------------------------
1 | framework module SwiftyJSON {
2 | umbrella header "Pods-BaiduFM-SwiftyJSON-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON.xcconfig:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/Pods/Target Support Files/Pods-BaiduFM-SwiftyJSON/Pods-BaiduFM-SwiftyJSON.xcconfig
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | ${CURRENT_PROJECT_VERSION}
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM-dummy.m:
--------------------------------------------------------------------------------
1 | #import
2 | @interface PodsDummy_Pods_BaiduFM : NSObject
3 | @end
4 | @implementation PodsDummy_Pods_BaiduFM
5 | @end
6 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM-environment.h:
--------------------------------------------------------------------------------
1 |
2 | // To check if a library is compiled with CocoaPods you
3 | // can use the `COCOAPODS` macro definition which is
4 | // defined in the xcconfigs so it is available in
5 | // headers also when they are imported in the client
6 | // project.
7 |
8 |
9 | // Alamofire
10 | #define COCOAPODS_POD_AVAILABLE_Alamofire
11 | #define COCOAPODS_VERSION_MAJOR_Alamofire 1
12 | #define COCOAPODS_VERSION_MINOR_Alamofire 2
13 | #define COCOAPODS_VERSION_PATCH_Alamofire 1
14 |
15 | // Async
16 | #define COCOAPODS_POD_AVAILABLE_Async
17 | #define COCOAPODS_VERSION_MAJOR_Async 1
18 | #define COCOAPODS_VERSION_MINOR_Async 2
19 | #define COCOAPODS_VERSION_PATCH_Async 0
20 |
21 | // Kingfisher
22 | #define COCOAPODS_POD_AVAILABLE_Kingfisher
23 | #define COCOAPODS_VERSION_MAJOR_Kingfisher 1
24 | #define COCOAPODS_VERSION_MINOR_Kingfisher 2
25 | #define COCOAPODS_VERSION_PATCH_Kingfisher 0
26 |
27 | // LTMorphingLabel
28 | #define COCOAPODS_POD_AVAILABLE_LTMorphingLabel
29 | #define COCOAPODS_VERSION_MAJOR_LTMorphingLabel 0
30 | #define COCOAPODS_VERSION_MINOR_LTMorphingLabel 0
31 | #define COCOAPODS_VERSION_PATCH_LTMorphingLabel 7
32 |
33 | // MJRefresh
34 | #define COCOAPODS_POD_AVAILABLE_MJRefresh
35 | #define COCOAPODS_VERSION_MAJOR_MJRefresh 1
36 | #define COCOAPODS_VERSION_MINOR_MJRefresh 4
37 | #define COCOAPODS_VERSION_PATCH_MJRefresh 5
38 |
39 | // SwiftyJSON
40 | #define COCOAPODS_POD_AVAILABLE_SwiftyJSON
41 | #define COCOAPODS_VERSION_MAJOR_SwiftyJSON 2
42 | #define COCOAPODS_VERSION_MINOR_SwiftyJSON 2
43 | #define COCOAPODS_VERSION_PATCH_SwiftyJSON 0
44 |
45 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM-frameworks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -e
3 |
4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
6 |
7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
8 |
9 | install_framework()
10 | {
11 | local source="${BUILT_PRODUCTS_DIR}/Pods-BaiduFM/$1"
12 | local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
13 |
14 | if [ -L "${source}" ]; then
15 | echo "Symlinked..."
16 | source=$(readlink "${source}")
17 | fi
18 |
19 | # use filter instead of exclude so missing patterns dont' throw errors
20 | echo "rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" --filter "- Modules/" ${source} ${destination}"
21 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers/" --filter "- PrivateHeaders/" --filter "- Modules/" "${source}" "${destination}"
22 | # Resign the code if required by the build settings to avoid unstable apps
23 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
24 | code_sign "${destination}/$1"
25 | fi
26 |
27 | # Embed linked Swift runtime libraries
28 | local basename
29 | basename=$(echo $1 | sed -E s/\\..+// && exit ${PIPESTATUS[0]})
30 | local swift_runtime_libs
31 | swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/$1/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]})
32 | for lib in $swift_runtime_libs; do
33 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
34 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
35 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then
36 | code_sign "${destination}/${lib}"
37 | fi
38 | done
39 | }
40 |
41 | # Signs a framework with the provided identity
42 | code_sign() {
43 | # Use the current code_sign_identitiy
44 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
45 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1"
46 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
47 | }
48 |
49 |
50 | if [[ "$CONFIGURATION" == "Debug" ]]; then
51 | install_framework 'Alamofire.framework'
52 | install_framework 'Async.framework'
53 | install_framework 'Kingfisher.framework'
54 | install_framework 'LTMorphingLabel.framework'
55 | install_framework 'MJRefresh.framework'
56 | install_framework 'SwiftyJSON.framework'
57 | fi
58 | if [[ "$CONFIGURATION" == "Release" ]]; then
59 | install_framework 'Alamofire.framework'
60 | install_framework 'Async.framework'
61 | install_framework 'Kingfisher.framework'
62 | install_framework 'LTMorphingLabel.framework'
63 | install_framework 'MJRefresh.framework'
64 | install_framework 'SwiftyJSON.framework'
65 | fi
66 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM-umbrella.h:
--------------------------------------------------------------------------------
1 | #import
2 |
3 |
4 | FOUNDATION_EXPORT double Pods_BaiduFMVersionNumber;
5 | FOUNDATION_EXPORT const unsigned char Pods_BaiduFMVersionString[];
6 |
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM.debug.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/Alamofire.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Async.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Kingfisher.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/LTMorphingLabel.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/MJRefresh.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/SwiftyJSON.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Alamofire" -framework "Async" -framework "Kingfisher" -framework "LTMorphingLabel" -framework "MJRefresh" -framework "SwiftyJSON"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM.modulemap:
--------------------------------------------------------------------------------
1 | framework module Pods_BaiduFM {
2 | umbrella header "Pods-BaiduFM-umbrella.h"
3 |
4 | export *
5 | module * { export * }
6 | }
7 |
--------------------------------------------------------------------------------
/Pods/Target Support Files/Pods-BaiduFM/Pods-BaiduFM.release.xcconfig:
--------------------------------------------------------------------------------
1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_FRAMEWORK_BUILD_PATH"
2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
4 | OTHER_CFLAGS = $(inherited) -iquote "$PODS_FRAMEWORK_BUILD_PATH/Alamofire.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Async.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/Kingfisher.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/LTMorphingLabel.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/MJRefresh.framework/Headers" -iquote "$PODS_FRAMEWORK_BUILD_PATH/SwiftyJSON.framework/Headers"
5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Alamofire" -framework "Async" -framework "Kingfisher" -framework "LTMorphingLabel" -framework "MJRefresh" -framework "SwiftyJSON"
6 | OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS)
7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"
8 | PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-BaiduFM
9 | PODS_ROOT = ${SRCROOT}/Pods
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # BaiduFM-Swift
2 | []()
3 | []()
4 | []()
5 | []()
6 | []()
7 | [](https://github.com/cocoapods/cocoapods)
8 |
9 | 百度FM, swift语言实现,基于最新xcode6.3+swift1.2,初步只是为了实现功能,代码比较粗燥,后面有时间会整理。
10 |
11 | ##API接口申明
12 | -本APP接口使用百度FM非公开API,音乐版权归百度所有
13 |
14 | ##功能
15 |
16 | - 增加Apple Watch支持(歌词同步显示)
17 |
18 | - (删除)下载歌曲到本地
19 |
20 | - (取消)收藏喜欢的音乐
21 |
22 | - (清空)最近播放的音乐
23 |
24 | - 可以下拉刷新,上拉加载更多歌曲列表
25 |
26 | - 歌词自动滚动
27 |
28 | - 实时显示歌曲播放进度
29 |
30 | - 暂停继续播放
31 |
32 | - 上一曲下一曲
33 |
34 | - 歌曲类型列表
35 |
36 | - 分类歌曲列表
37 |
38 | - 支持后台播放
39 |
40 | - 锁屏显示歌曲专辑信息
41 |
42 | - 锁屏控制音乐下一曲/上一曲、暂停播放
43 |
44 | - 新增收藏列表,最近播放列表,下载歌曲列表
45 |
46 |
47 | ##项目截图
48 |
49 | - Apple Watch首页
50 |
51 | - Apple Watch首页菜单页面
52 |
53 | - Apple Watch歌曲列表
54 |
55 | - Apple Watch歌曲类型选择列表
56 |
57 | - iPhone锁屏显示、播放控制
58 |
59 | - iPhone项目首页
60 |
61 | - iPhone歌曲分类
62 |
63 | - iPhone歌曲列表
64 |
65 | ##项目使用注意事项
66 | -项目里使用[COCOAPODS](https://github.com/cocoapods/cocoapods)管理第三方库,运行前请执行pod install安装依赖库
67 |
68 | ##项目使用的第三方库
69 |
70 | -[网络库Alamofire](https://github.com/Alamofire/Alamofire)
71 |
72 | -[JSON解析SwiftyJSON](https://github.com/SwiftyJSON/SwiftyJSON)
73 |
74 | -[SQLite数据库FMDB](https://github.com/ccgus/fmdb)
75 |
76 | -[异步Async](https://github.com/duemunk/Async)
77 |
78 | -[MJRefresh](https://github.com/CoderMJLee/MJRefresh)
79 |
80 | -[文字效果LTMorphingLabel](https://github.com/lexrus/LTMorphingLabel)
81 |
82 | -[图片缓存Kingfisher](https://github.com/onevcat/Kingfisher)
83 |
84 | ##使用的swift知识点
85 | -网络请求
86 |
87 | -JSON解析
88 |
89 | -swift正则
90 |
91 | -swift单例
92 |
93 | -下拉刷新、上拉加载更多MJRefresh,歌曲进度UIProgressView,歌词滚动UITextView
94 |
95 | -闭包
96 |
97 | -get,set,didSet
98 |
99 | -使用MPMoviePlayerController在线播放网络mp3
100 |
101 | -NSNotificationCenter传值
102 |
103 | ##待完成功能
104 |
105 | -播放音乐改用AVAudioPlayer
106 |
107 | -第三方库合并(已经改用[COCOAPODS](https://github.com/cocoapods/cocoapods)管理)
108 |
109 | -支持Apple Watch
110 |
111 | ##联系我
112 | - [QQ邮箱](mailto:belm@vip.qq.com)
113 | - [微博](http://weibo.com/belmeng)
114 |
115 |
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_00.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_01.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_02.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_03.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_AppleWatch_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_AppleWatch_00.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_AppleWatch_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_AppleWatch_01.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_AppleWatch_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_AppleWatch_02.png
--------------------------------------------------------------------------------
/ScreenShot/BaiduFM-Swift_AppleWatch_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/belm/BaiduFM-Swift/e5102bb70683044867207a8fabc3c6aa00ded109/ScreenShot/BaiduFM-Swift_AppleWatch_03.png
--------------------------------------------------------------------------------