├── .gitignore ├── Contact ├── Contact.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── Contact │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ │ ├── Contents.json │ │ ├── qq.imageset │ │ │ ├── Contents.json │ │ │ └── qq@3x.png │ │ └── tab_base.imageset │ │ │ ├── Contents.json │ │ │ └── tab_base.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── YJContactVC.swift │ └── YJContactsUIVC.swift ├── ContactTests │ ├── ContactTests.swift │ └── Info.plist └── ContactUITests │ ├── ContactUITests.swift │ └── Info.plist ├── GCD ├── GCD.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── GCD │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── GCDTests │ ├── GCDTests.swift │ └── Info.plist └── GCDUITests │ ├── GCDUITests.swift │ └── Info.plist ├── KVC ├── KVC.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── yangjun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ └── xcschemes │ │ ├── KVC.xcscheme │ │ └── xcschememanagement.plist ├── KVC │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── KVCTests │ ├── Info.plist │ ├── KVCTests.swift │ └── User.swift └── KVCUITests │ ├── Info.plist │ └── KVCUITests.swift ├── KVO ├── KVO.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── yangjun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── KVO.xcscheme │ │ └── xcschememanagement.plist ├── KVO │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── KVOTests │ ├── Info.plist │ ├── KVOTests.swift │ └── User.swift └── KVOUITests │ ├── Info.plist │ └── KVOUITests.swift ├── Message ├── Message.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Message │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon29@1x.png │ │ ├── icon29@2x.png │ │ ├── icon29@3x.png │ │ ├── icon40@1x.png │ │ ├── icon40@2x.png │ │ ├── icon40@3x.png │ │ ├── icon60@2x.png │ │ ├── icon60@3x.png │ │ ├── icon76@1x.png │ │ ├── icon76@2x.png │ │ └── icon83.5@2x.png │ ├── Contents.json │ └── qq.imageset │ │ ├── Contents.json │ │ └── qq@3x.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── NSURLSession ├── NSURLSession.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── yangjun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ ├── NSURLSession.xcscheme │ │ └── xcschememanagement.plist └── NSURLSession │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ ├── Contents.json │ └── tab_base.imageset │ │ ├── Contents.json │ │ └── tab_base.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── YJDataTaskVC.swift │ ├── YJDownloadTaskVC.swift │ ├── YJHTTPCookieVC.swift │ ├── YJURLCacheVC.swift │ └── YJUploadTaskVC.swift ├── OC_Swift ├── OC_Swift.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── yangjun.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ └── xcschemes │ │ ├── OC_Swift.xcscheme │ │ └── xcschememanagement.plist └── OC_Swift │ ├── OC_Swift-Bridging-Header.h │ ├── Objective.h │ ├── Objective.m │ ├── Swift.swift │ └── main.m ├── Parser ├── Parser.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── Parser │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Main.xml │ └── ViewController.swift └── ParserTests │ ├── Info.plist │ ├── YJJSONParserTests.swift │ └── YJXMLParserTests.swift ├── Photo ├── Photo.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Photo │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── 152.png │ │ ├── 29.png │ │ ├── 58-1.png │ │ ├── 80-1.png │ │ ├── Contents.json │ │ ├── appIcon_29@2x.png │ │ ├── appIcon_40@2x.png │ │ ├── appIcon_40@3x.png │ │ └── appIcon_60@2x.png │ ├── Contents.json │ └── tab_base.imageset │ │ ├── Contents.json │ │ └── tab_base.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── PHAsset+Extension.swift │ ├── PHAssetCollection+Extension.swift │ ├── PHCollectionList+Extension.swift │ ├── PHPhotoLibrary+Extension.swift │ ├── YJAssetCollectionVC.swift │ ├── YJAssetVC.swift │ ├── YJPhotoAlbumsVC.swift │ ├── YJPhotoCollectionViewCell.swift │ ├── YJPhotoCollectionViewCell.xib │ ├── YJPhotoTableViewCell.swift │ ├── YJPhotoTableViewCell.xib │ ├── YJPhotosVC.swift │ └── YJUtils.swift ├── README.md ├── Runtime ├── Runtime.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── Runtime │ ├── YJUser.swift │ └── main.swift ├── SwiftBasics ├── SwiftBasics.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── SwiftBasics │ ├── AccessControl.swift │ ├── AdvancedOperators.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── ClassesStructures.swift │ ├── Closures.swift │ ├── ControlFlow.swift │ ├── Deinitialization.swift │ ├── Enumerations.swift │ ├── ErrorHandling.swift │ ├── Extensions.swift │ ├── Functions.swift │ ├── Info.plist │ ├── Inheritance.swift │ ├── Initialization.swift │ ├── Methods.swift │ ├── OptionalChaining.swift │ ├── Properties.swift │ ├── Subscripts.swift │ ├── TestProtocol.swift │ ├── TypeCasting.swift │ ├── ViewController.swift │ ├── YJArray.swift │ ├── YJDictionary.swift │ ├── YJProtocol.swift │ ├── YJSet.swift │ └── YJString.swift ├── SwiftBasicsTests │ ├── Info.plist │ └── SwiftBasicsTests.swift └── SwiftBasicsUITests │ ├── Info.plist │ └── SwiftBasicsUITests.swift ├── UI ├── UI.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── UI │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon29@1x.png │ │ ├── icon29@2x.png │ │ ├── icon29@3x.png │ │ ├── icon40@1x.png │ │ ├── icon40@2x.png │ │ ├── icon40@3x.png │ │ ├── icon60@2x.png │ │ ├── icon60@3x.png │ │ ├── icon76@1x.png │ │ ├── icon76@2x.png │ │ └── icon83.5@2x.png │ ├── Contents.json │ ├── ScrollViewBigImage.imageset │ │ ├── Contents.json │ │ └── ScrollViewBigImage@2x.jpg │ └── qq.imageset │ │ ├── Contents.json │ │ └── qq@3x.png │ ├── AutoLayout.storyboard │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── UICollectionView+Extension.swift │ ├── UICollectionView.storyboard │ ├── UIScrollView.storyboard │ ├── UITableView+Extension.swift │ ├── UITableView.storyboard │ ├── UIViewController+Extension.swift │ ├── YJAutoLayoutAnchorVC.swift │ ├── YJAutoLayoutConstraintVC.swift │ ├── YJAutoLayoutSVVC.swift │ ├── YJAutoLayoutTVC.swift │ ├── YJBarTVC.swift │ ├── YJBaseTVC.swift │ ├── YJCollectionViewCell.swift │ ├── YJCollectionViewCell.xib │ ├── YJCollectionViewCellVC.swift │ ├── YJCollectionViewDataSourceVC.swift │ ├── YJCollectionViewDelegateFlowLayoutVC.swift │ ├── YJCollectionViewDelegateVC.swift │ ├── YJCollectionViewFlowLayout.swift │ ├── YJCollectionViewTVC.swift │ ├── YJFlowLayoutCollectionVC.swift │ ├── YJMainVC.swift │ ├── YJNavigationBarVC.swift │ ├── YJPerformSegueModel.swift │ ├── YJScrollViewDelegateVC.swift │ ├── YJScrollViewTVC.swift │ ├── YJSwitchTableViewCell.swift │ ├── YJSwitchTableViewCell.xib │ ├── YJTabBarVC.swift │ ├── YJTableViewCellTVC.swift │ ├── YJTableViewDataSourceVC.swift │ ├── YJTableViewDelegateVC.swift │ ├── YJTableViewTVC.swift │ ├── YJToolbarVC.swift │ └── YJUtils.swift ├── Utils ├── Utils.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── Utils │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ ├── YJUtilsAPP.swift │ ├── YJUtilsDeviceType.swift │ ├── YJUtilsScreenSize.swift │ └── YJUtilsUserInterfaceIdiom.swift ├── UtilsTests │ ├── Info.plist │ └── UtilsTests.swift └── UtilsUITests │ ├── Info.plist │ └── UtilsUITests.swift ├── ViewRotation ├── ViewRotation.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ └── yangjun.xcuserdatad │ │ └── UserInterfaceState.xcuserstate ├── ViewRotation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── YJDetailVC.swift │ ├── YJMasterVC.swift │ └── YJNavigationController.swift ├── ViewRotationTests │ ├── Info.plist │ └── ViewRotationTests.swift └── ViewRotationUITests │ ├── Info.plist │ └── ViewRotationUITests.swift ├── YJAccounts ├── YJAccounts.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJAccounts │ ├── ACAccountStore+Extension.swift │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJAccountsTests │ ├── Info.plist │ └── YJAccountsTests.swift └── YJAccountsUITests │ ├── Info.plist │ └── YJAccountsUITests.swift ├── YJAdSupport ├── YJAdSupport.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJAdSupport │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJAdSupportTests │ ├── Info.plist │ └── YJAdSupportTests.swift └── YJAdSupportUITests │ ├── Info.plist │ └── YJAdSupportUITests.swift ├── YJCoreMotion ├── YJCoreMotion.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJCoreMotion │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── CMMotionActivity+Extension.swift │ ├── Info.plist │ └── ViewController.swift ├── YJCoreMotionTests │ ├── Info.plist │ └── YJCoreMotionTests.swift └── YJCoreMotionUITests │ ├── Info.plist │ └── YJCoreMotionUITests.swift ├── YJCoreSpotlight ├── SpotlightIndexExtension │ ├── IndexRequestHandler.swift │ └── Info.plist ├── YJCoreSpotlight.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJCoreSpotlight │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ │ ├── Contents.json │ │ └── qq.imageset │ │ │ ├── Contents.json │ │ │ └── qq@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJCoreSpotlightTests │ ├── Info.plist │ └── YJCoreSpotlightTests.swift └── YJCoreSpotlightUITests │ ├── Info.plist │ └── YJCoreSpotlightUITests.swift ├── YJCoreTelephony ├── YJCoreTelephony.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJCoreTelephony │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── AppIcon-29@1x.png │ │ │ ├── AppIcon-29@2x.png │ │ │ ├── AppIcon-29@3x.png │ │ │ ├── AppIcon-40@1x.png │ │ │ ├── AppIcon-40@2x.png │ │ │ ├── AppIcon-40@3x.png │ │ │ ├── AppIcon-60@2x.png │ │ │ ├── AppIcon-60@3x.png │ │ │ ├── AppIcon-76@1x.png │ │ │ ├── AppIcon-76@2x.png │ │ │ ├── AppIcon-83.5@2x.png │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJCoreTelephonyTests │ ├── Info.plist │ └── YJCoreTelephonyTests.swift └── YJCoreTelephonyUITests │ ├── Info.plist │ └── YJCoreTelephonyUITests.swift ├── YJFoundation ├── YJFoundation.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJFoundation │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── AppIcon-29@1x.png │ │ │ ├── AppIcon-29@2x.png │ │ │ ├── AppIcon-29@3x.png │ │ │ ├── AppIcon-40@1x.png │ │ │ ├── AppIcon-40@2x.png │ │ │ ├── AppIcon-40@3x.png │ │ │ ├── AppIcon-60@2x.png │ │ │ ├── AppIcon-60@3x.png │ │ │ ├── AppIcon-76@1x.png │ │ │ ├── AppIcon-76@2x.png │ │ │ ├── AppIcon-83.5@2x.png │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Main.xml │ ├── UIViewController+Extension.swift │ ├── YJBaseTVC.swift │ ├── YJMainTVC.swift │ ├── YJNSBundleResourceRequestVC.swift │ ├── YJNSBundleVC.swift │ ├── YJNSFileManagerVC.swift │ ├── YJNSNotificationCenterVC.swift │ ├── YJNSNotificationQueueVC.swift │ ├── YJOperationVC.swift │ ├── YJPerformSegueModel.swift │ ├── YJRunLoopVC.swift │ ├── YJThreadVC.swift │ ├── YJUtilsDirectory.swift │ └── YJXMLParserVC.swift ├── YJFoundationTests │ ├── Info.plist │ └── YJFoundationTests.swift └── YJFoundationUITests │ ├── Info.plist │ └── YJFoundationUITests.swift ├── YJImageIO ├── YJImageIO.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJImageIO │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ │ ├── Contents.json │ │ └── Image.imageset │ │ │ ├── Contents.json │ │ │ └── Image@2x.jpg │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── YJUtilsImageIO.swift ├── YJImageIOTests │ ├── Info.plist │ └── YJImageIOTests.swift └── YJImageIOUITests │ ├── Info.plist │ └── YJImageIOUITests.swift ├── YJMultipeerConnectivity ├── YJMultipeerConnectivity.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJMultipeerConnectivity │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJMultipeerConnectivityTests │ ├── Info.plist │ └── YJMultipeerConnectivityTests.swift └── YJMultipeerConnectivityUITests │ ├── Info.plist │ └── YJMultipeerConnectivityUITests.swift ├── YJNotificationCenter ├── TodayExtension │ ├── Base.lproj │ │ └── MainInterface.storyboard │ ├── Info.plist │ ├── TodayExtension.entitlements │ └── TodayViewController.swift ├── YJNotificationCenter.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJNotificationCenter │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ ├── YJNotificationCenter.entitlements │ └── YJUtilsAPP.swift ├── YJNotificationCenterTests │ ├── Info.plist │ └── YJNotificationCenterTests.swift └── YJNotificationCenterUITests │ ├── Info.plist │ └── YJNotificationCenterUITests.swift ├── YJQuickLook ├── YJQuickLook.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJQuickLook │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── Test.pdf │ ├── ViewController.swift │ └── YJPreviewItem.swift ├── YJQuickLookTests │ ├── Info.plist │ └── YJQuickLookTests.swift └── YJQuickLookUITests │ ├── Info.plist │ └── YJQuickLookUITests.swift ├── YJSafariServices ├── YJSafariServices.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJSafariServices │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── YJUtilsAPP.swift ├── YJSafariServicesTests │ ├── Info.plist │ └── YJSafariServicesTests.swift └── YJSafariServicesUITests │ ├── Info.plist │ └── YJSafariServicesUITests.swift ├── YJSocial ├── ShareExtension │ ├── Base.lproj │ │ └── MainInterface.storyboard │ ├── Info.plist │ ├── ShareViewController.swift │ └── YJSelectTableViewController.swift ├── YJSocial.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── YJSocial │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon29@1x.png │ │ │ ├── icon29@2x.png │ │ │ ├── icon29@3x.png │ │ │ ├── icon40@1x.png │ │ │ ├── icon40@2x.png │ │ │ ├── icon40@3x.png │ │ │ ├── icon60@2x.png │ │ │ ├── icon60@3x.png │ │ │ ├── icon76@1x.png │ │ │ ├── icon76@2x.png │ │ │ └── icon83.5@2x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── YJSocialTests │ ├── Info.plist │ └── YJSocialTests.swift └── YJSocialUITests │ ├── Info.plist │ └── YJSocialUITests.swift ├── YJURLIntercept ├── YJURLIntercept.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── YJURLIntercept │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.swift │ └── YJURLProtocol.swift └── YJWatchConnectivity ├── WatchKit Extension ├── Assets.xcassets │ └── Complication.complicationset │ │ ├── Circular.imageset │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── Modular.imageset │ │ └── Contents.json │ │ └── Utilitarian.imageset │ │ └── Contents.json ├── ExtensionDelegate.swift ├── Info.plist └── InterfaceController.swift ├── WatchKit ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ └── Interface.storyboard └── Info.plist ├── YJWatchConnectivity.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcshareddata │ └── xcschemes │ └── YJWatchConnectivity.xcscheme └── YJWatchConnectivity ├── AppDelegate.swift ├── Assets.xcassets └── AppIcon.appiconset │ └── Contents.json ├── Base.lproj ├── LaunchScreen.storyboard └── Main.storyboard ├── Info.plist └── ViewController.swift /.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata/ 2 | -------------------------------------------------------------------------------- /Contact/Contact.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "qq@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/qq.imageset/qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/qq.imageset/qq@3x.png -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/tab_base.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tab_base.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Contact/Contact/Assets.xcassets/tab_base.imageset/tab_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Contact/Contact/Assets.xcassets/tab_base.imageset/tab_base.png -------------------------------------------------------------------------------- /Contact/ContactTests/ContactTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContactTests.swift 3 | // ContactTests 4 | // 5 | // Created by yangjun on 16/1/12. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Contact 11 | 12 | class ContactTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Contact/ContactTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /Contact/ContactUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /GCD/GCD.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /GCD/GCD/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /GCD/GCDTests/GCDTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GCDTests.swift 3 | // GCDTests 4 | // 5 | // Created by yangjun on 15/12/8. 6 | // Copyright © 2015年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import GCD 11 | 12 | class GCDTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /GCD/GCDTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /GCD/GCDUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /KVC/KVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KVC/KVC.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/KVC/KVC.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /KVC/KVC.xcodeproj/xcuserdata/yangjun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KVC.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D4121DD71BC8F848000C680C 16 | 17 | primary 18 | 19 | 20 | D4121DEB1BC8F848000C680C 21 | 22 | primary 23 | 24 | 25 | D4121DF61BC8F848000C680C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /KVC/KVC/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /KVC/KVC/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // KVC 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /KVC/KVCTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /KVC/KVCTests/KVCTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVCTests.swift 3 | // KVCTests 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import KVC 11 | 12 | /// KVC测试 13 | class KVCTests: XCTestCase { 14 | 15 | /// 用户 16 | var user:User! 17 | 18 | // MARK: 开始 19 | override func setUp() { 20 | super.setUp() 21 | self.user = User() 22 | } 23 | 24 | func testExample() { 25 | // 简单路径 26 | self.user.setValue("yangj", forKey:"userName") // 传值 27 | var value = self.user.value(forKey: "userName") as? String // 取值 28 | print("\(value ?? "")") 29 | 30 | // 复合路径 31 | self.user.setValue("阳", forKeyPath: "userName") 32 | value = self.user.value(forKeyPath: "userName") as? String 33 | print("\(value ?? "")") 34 | 35 | // 字典 36 | let dict = ["userName":"阳君"] 37 | self.user.setValuesForKeys(dict) 38 | let dictOut = self.user.dictionaryWithValues(forKeys: ["userName"]) 39 | print("\(dictOut)") 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /KVC/KVCTests/User.swift: -------------------------------------------------------------------------------- 1 | // 2 | // User.swift 3 | // KVC 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// 用户 12 | class User: NSObject { 13 | 14 | /// 用户名 15 | dynamic var userName:String? 16 | 17 | override init() { 18 | userName = "" 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /KVC/KVCUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /KVO/KVO.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /KVO/KVO.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/KVO/KVO.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /KVO/KVO.xcodeproj/xcuserdata/yangjun.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /KVO/KVO.xcodeproj/xcuserdata/yangjun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | KVO.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D4121D431BC8E525000C680C 16 | 17 | primary 18 | 19 | 20 | D4121D571BC8E525000C680C 21 | 22 | primary 23 | 24 | 25 | D4121D621BC8E525000C680C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /KVO/KVO/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /KVO/KVO/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // KVO 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /KVO/KVOTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /KVO/KVOTests/KVOTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVOTests.swift 3 | // KVOTests 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | /// KVO测试 12 | class KVOTests: XCTestCase { 13 | 14 | /// 用户 15 | var user:User!; 16 | 17 | // MARK: 开始 18 | override func setUp() { 19 | super.setUp() 20 | self.user = User() 21 | self.user.addObserver(self, forKeyPath: "userName", options: NSKeyValueObservingOptions.new, context: nil)// 监听(KVO的属性必须设置dynamic) 22 | } 23 | 24 | // MARK: 结束 25 | override func tearDown() { 26 | super.tearDown() 27 | self.user.removeObserver(self, forKeyPath: "userName") 28 | self.user.userName = "YangJun" 29 | } 30 | 31 | // MARK: 测试用例 32 | func testExample() { 33 | self.user.userName = "阳君" 34 | } 35 | 36 | // MARK: - 监听 37 | override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 38 | if "userName" == keyPath { 39 | print("\nchange:\(change ?? [:])\n") 40 | } 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /KVO/KVOTests/User.swift: -------------------------------------------------------------------------------- 1 | // 2 | // User.swift 3 | // KVO 4 | // 5 | // Created by yangjun on 15/10/10. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// 用户 12 | class User: NSObject { 13 | 14 | /// 用户名 15 | dynamic var userName:String? 16 | 17 | override init() { 18 | userName = "" 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /KVO/KVOUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /Message/Message.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "qq@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Message/Message/Assets.xcassets/qq.imageset/qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Message/Message/Assets.xcassets/qq.imageset/qq@3x.png -------------------------------------------------------------------------------- /NSURLSession/NSURLSession.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /NSURLSession/NSURLSession.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/NSURLSession/NSURLSession.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /NSURLSession/NSURLSession.xcodeproj/xcuserdata/yangjun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | NSURLSession.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D421881E1C0F226400EA670C 16 | 17 | primary 18 | 19 | 20 | D42188321C0F226400EA670C 21 | 22 | primary 23 | 24 | 25 | D421883D1C0F226400EA670C 26 | 27 | primary 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /NSURLSession/NSURLSession/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /NSURLSession/NSURLSession/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /NSURLSession/NSURLSession/Assets.xcassets/tab_base.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tab_base.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /NSURLSession/NSURLSession/Assets.xcassets/tab_base.imageset/tab_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/NSURLSession/NSURLSession/Assets.xcassets/tab_base.imageset/tab_base.png -------------------------------------------------------------------------------- /OC_Swift/OC_Swift.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/OC_Swift/OC_Swift.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /OC_Swift/OC_Swift.xcodeproj/xcuserdata/yangjun.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | OC_Swift.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | D42B43601A120A2100AB7F96 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift/OC_Swift-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 "Objective.h" 6 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift/Objective.h: -------------------------------------------------------------------------------- 1 | // 2 | // Objective.h 3 | // OC_Swift 4 | // 5 | // Created by 阳君 on 14/11/11. 6 | // Copyright (c) 2014年 北京宏景世纪软件股份有限公司. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Objective : NSObject 12 | 13 | - (void)test:(NSString *)str; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift/Objective.m: -------------------------------------------------------------------------------- 1 | // 2 | // Objective.m 3 | // OC_Swift 4 | // 5 | // Created by 阳君 on 14/11/11. 6 | // Copyright (c) 2014年 北京宏景世纪软件股份有限公司. All rights reserved. 7 | // 8 | 9 | #import "Objective.h" 10 | 11 | @implementation Objective 12 | 13 | -(void)test:(NSString *)str 14 | { 15 | NSLog(@"OC:%@", str); 16 | } 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift/Swift.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Swift.swift 3 | // OC_Swift 4 | // 5 | // Created by 阳君 on 14/11/11. 6 | // Copyright (c) 2014年 北京宏景世纪软件股份有限公司. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Swift: NSObject { 12 | 13 | func test(_ str:String) { 14 | print("Swift:\(str)") 15 | // 混编Object-C 16 | let oc = Objective() 17 | oc.test(str) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /OC_Swift/OC_Swift/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // OC_Swift 4 | // 5 | // Created by 阳君 on 14/11/11. 6 | // Copyright (c) 2014年 北京宏景世纪软件股份有限公司. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "OC_Swift-Swift.h" 11 | 12 | int main(int argc, const char * argv[]) { 13 | @autoreleasepool { 14 | // 混编Swift 15 | Swift *swift = [[Swift alloc] init]; 16 | [swift test:@"yangj"]; 17 | } 18 | return 0; 19 | } 20 | -------------------------------------------------------------------------------- /Parser/Parser.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Parser/Parser.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Parser/Parser.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /Parser/Parser/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /Parser/Parser/Main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Parser/Parser/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // Parser 4 | // 5 | // Created by yangjun on 15/12/7. 6 | // Copyright © 2015年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /Parser/ParserTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /Photo/Photo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/58-1.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/80-1.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_29@2x.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_40@2x.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_40@3x.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/AppIcon.appiconset/appIcon_60@2x.png -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/tab_base.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tab_base.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Photo/Photo/Assets.xcassets/tab_base.imageset/tab_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Photo/Photo/Assets.xcassets/tab_base.imageset/tab_base.png -------------------------------------------------------------------------------- /Photo/Photo/PHCollectionList+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PHCollectionList+Extension.swift 3 | // Photo 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/26. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | import Photos 14 | 15 | public extension PHCollectionList { 16 | 17 | /// 获取PHAsset集合 18 | /// 19 | /// - parameter options : PHFetchOptions? 20 | /// 21 | /// - returns: [PHAsset] 22 | func fetchAssetsWithOptions(_ options: PHFetchOptions?) -> [PHAsset] { 23 | var assets = [PHAsset]() 24 | let fetchResult = PHAssetCollection.fetchMoments(inMomentList: self, options: options) 25 | fetchResult.enumerateObjects({ (obj: AnyObject, index: Int, umPointer: UnsafeMutablePointer) -> Void in 26 | if let assetCollection = obj as? PHAssetCollection { 27 | assets.append(contentsOf: assetCollection.fetchAssetsWithOptions(options)) 28 | } 29 | }) 30 | return assets 31 | } 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /Photo/Photo/PHPhotoLibrary+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PHPhotoLibrary+Extension.swift 3 | // Photo 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/4. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | import Photos 14 | 15 | /// performChanges(changeBlock: dispatch_block_t, completionHandler: ((Bool, Error?) -> Void)?)的完成回调 16 | public typealias PHPhotoLibraryCompletionHandlerBlock = (Bool, Error?) -> Void 17 | 18 | /// CompletionHandler输出 19 | public let PHPhotoLibraryCompletionHandler: PHPhotoLibraryCompletionHandlerBlock = { (success: Bool, error: Error?) -> Void in 20 | if !success { 21 | print(error!) 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Photo/Photo/YJPhotoCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJPhotoCollectionViewCell.swift 3 | // Photo 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/25. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// YJPhotoCollectionViewCell的NibName 15 | let YJPhotoCollectionViewCellNibName = "YJPhotoCollectionViewCell" 16 | 17 | /// 照片cell 18 | class YJPhotoCollectionViewCell: UICollectionViewCell { 19 | 20 | /// 照片 21 | @IBOutlet weak var imageView: UIImageView! 22 | 23 | override func awakeFromNib() { 24 | super.awakeFromNib() 25 | // Initialization code 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Photo/Photo/YJPhotoTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJPhotoTableViewCell.swift 3 | // Photo 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/28. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// YJPhotoTableViewCell的NibName 15 | let YJPhotoTableViewCellNibName = "YJPhotoTableViewCell" 16 | 17 | /// 照片Cell 18 | class YJPhotoTableViewCell: UITableViewCell { 19 | 20 | /// 照片 21 | @IBOutlet weak var photoImageView: UIImageView! 22 | /// 标题 23 | @IBOutlet weak var titleLabel: UILabel! 24 | /// 数量 25 | @IBOutlet weak var countLabel: UILabel! 26 | 27 | 28 | override func awakeFromNib() { 29 | super.awakeFromNib() 30 | // Initialization code 31 | } 32 | 33 | override func setSelected(_ selected: Bool, animated: Bool) { 34 | super.setSelected(selected, animated: animated) 35 | 36 | // Configure the view for the selected state 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Runtime/Runtime.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Runtime/Runtime/YJUser.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUser.swift 3 | // Runtime 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/11. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import Cocoa 13 | 14 | /// 用户 15 | class YJUser: NSObject { 16 | 17 | } 18 | 19 | /// 扩展 20 | extension YJUser { 21 | 22 | /// 用户名 23 | var name: String? { 24 | get { 25 | return objc_getAssociatedObject(self, "_name") as? String 26 | } 27 | set { 28 | objc_setAssociatedObject(self, "_name", newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY) 29 | } 30 | } 31 | 32 | /// 清空所有关联属性 33 | /// 34 | /// - returns: void 35 | func cleanParameter() { 36 | // 此时再获取关联属性的值,会报错 37 | objc_removeAssociatedObjects(self) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Runtime/Runtime/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // Runtime 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/11. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import Foundation 13 | 14 | let user = YJUser() 15 | user.name = "阳君" 16 | print(user.name ?? "") 17 | user.cleanParameter() 18 | print(user.name ?? "") 19 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/AccessControl.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AccessControl.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/11/2. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | open class SomePublicClass { // 明确 public class 10 | open var somePublicProperty = 0 // 明确 public class 成员 11 | var someInternalProperty = 0 // 默认 internal class 成员 12 | fileprivate func somePrivateMethod() {} // 明确 private class 成员 13 | } 14 | 15 | class SomeInternalClass { // 默认 internal class 16 | var someInternalProperty = 0 // 默认 internal class 成员 17 | fileprivate func somePrivateMethod() {} // 明确 private class 成员 18 | } 19 | 20 | private class SomePrivateClass { // 明确 private class 21 | var somePrivateProperty = 0 // 默认 private class 成员 22 | func somePrivateMethod() {} // 默认 private class 成员 23 | } 24 | 25 | // 访问控制 26 | open class AccessControl: TestProtocol { 27 | 28 | func test() { 29 | 30 | 31 | 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | } 33 | ], 34 | "info" : { 35 | "version" : 1, 36 | "author" : "xcode" 37 | } 38 | } -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/Deinitialization.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Deinitialization.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/10/31. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | /// 销毁 10 | class Deinitialization: TestProtocol { 11 | 12 | func test() { 13 | 14 | class SomeClass { 15 | 16 | // MARK: 类销毁时,通知此方法 17 | deinit { 18 | print("销毁") 19 | } 20 | 21 | } 22 | 23 | var sClass:SomeClass? = SomeClass() 24 | sClass = nil // print "销毁" 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Extensions.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/11/1. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | 10 | extension Double { 11 | var km: Double { return self * 1_000.0 } 12 | var m: Double { return self } 13 | var cm: Double { return self / 100.0 } 14 | var mm: Double { return self / 1_000.0 } 15 | var ft: Double { return self / 3.28084 } 16 | } 17 | 18 | /// 扩展 19 | class Extensions: TestProtocol { 20 | 21 | func test() { 22 | 23 | let oneInch = 25.4.mm 24 | print("One inch is \(oneInch) meters") 25 | // prints "One inch is 0.0254 meters" 26 | let threeFeet = 3.ft 27 | print("Three feet is \(threeFeet) meters") 28 | // prints "Three feet is 0.914399970739201 meters" 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/OptionalChaining.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OptionalChaining.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/11/1. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | /// 可选链 10 | class OptionalChaining: TestProtocol { 11 | 12 | func test() { 13 | class Person { 14 | // 可选属性,可能为nil或Residence类 15 | var residence: Residence? 16 | } 17 | 18 | class Residence { 19 | var numberOfRooms = 1 20 | } 21 | 22 | let john = Person() 23 | john.residence = Residence() 24 | 25 | // 可选获得 26 | var roomCount = john.residence?.numberOfRooms 27 | // 强制获得 28 | roomCount = john.residence!.numberOfRooms 29 | print(roomCount) // Optional(1) Optional代表可选 30 | // if获得 31 | if let roomCount = john.residence?.numberOfRooms { 32 | print(roomCount) // 1 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/Subscripts.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Subscripts.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/10/30. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | /// 下标 10 | class Subscripts: TestProtocol { 11 | 12 | func test() { 13 | self.testSubscripts() 14 | } 15 | 16 | func testSubscripts() { 17 | // 下标关键字subscript 18 | 19 | /// array测试 20 | struct TestArray { 21 | 22 | /// 内部数组 23 | var array = Array() 24 | 25 | // MARK: 下标使用 26 | subscript(index: Int) -> Int { 27 | get { 28 | assert(index < array.count, "下标越界") 29 | return array[index] 30 | } 31 | set { 32 | while array.count <= index { 33 | array.append(0) 34 | } 35 | array[index] = newValue 36 | } 37 | } 38 | } 39 | 40 | var array = TestArray() 41 | array[3] = 4; // 通过下标设置值 42 | print("\(array[3])") // 4 43 | print("\(array[4])") // 程序停止 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/TestProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestProtocol.swift 3 | // CommonDataType 4 | // 5 | // Created by yangjun on 15/10/22. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// 测试接口 12 | protocol TestProtocol { 13 | 14 | /// 测试 15 | /// 16 | /// - returns: void 17 | mutating func test() 18 | 19 | } 20 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasics/YJProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJProtocol.swift 3 | // SwiftBasics 4 | // 5 | // Created by yangjun on 15/11/1. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @objc protocol YJSomeProtocol:class { 12 | 13 | // class代表只用类才能实现这个协议 14 | func test() 15 | 16 | // @objc:OC特性,代表可以使用optional特性。optional可选的方法 17 | @objc optional func testOptional() 18 | 19 | } 20 | 21 | protocol YJAnotherProtocol: YJSomeProtocol { 22 | 23 | // 协议可继承 24 | 25 | } 26 | 27 | /// 协议扩展 28 | extension YJSomeProtocol { 29 | 30 | func testExtension() { 31 | print(#function) 32 | } 33 | 34 | } 35 | 36 | class YJSomeClass:NSObject, YJSomeProtocol { 37 | 38 | func test() { 39 | print(#function) 40 | } 41 | 42 | } 43 | 44 | /// 协议 45 | class YJProtocol: TestProtocol { 46 | 47 | func test() { 48 | let yjs = YJSomeClass() 49 | yjs.test() 50 | yjs.testExtension() 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasicsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasicsTests/SwiftBasicsTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftBasicsTests.swift 3 | // SwiftBasicsTests 4 | // 5 | // Created by yangjun on 15/10/23. 6 | // Copyright © 2015年 六月. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import SwiftBasics 11 | 12 | class SwiftBasicsTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /SwiftBasics/SwiftBasicsUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /UI/UI.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/ScrollViewBigImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "ScrollViewBigImage@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/ScrollViewBigImage.imageset/ScrollViewBigImage@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/ScrollViewBigImage.imageset/ScrollViewBigImage@2x.jpg -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "qq@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /UI/UI/Assets.xcassets/qq.imageset/qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/UI/UI/Assets.xcassets/qq.imageset/qq@3x.png -------------------------------------------------------------------------------- /UI/UI/UITableView+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITableView+Extension.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/14. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | public extension UITableView { 15 | 16 | // MARK: - 去掉tableHeaderView 17 | /// 去掉tableHeaderView 18 | /// 19 | /// - returns: void 20 | func removeTableHeaderView() { 21 | self.tableHeaderView = UIView(frame: CGRect(x: 0, y: 0, width: YJUtilScreenSize.screenWidth, height: 0.1)) 22 | } 23 | 24 | // MARK: - 去掉tableFooterView 25 | /// 去掉tableFooterView 26 | /// 27 | /// - returns: void 28 | func removeTableFooterView() { 29 | self.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: YJUtilScreenSize.screenWidth, height: 0.1)) 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /UI/UI/YJAutoLayoutTVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJAutoLayoutTVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/18. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// Auto Layout 主界面 15 | class YJAutoLayoutTVC: YJBaseTVC { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | self.title = "Auto Layout" 20 | var list = [YJPerformSegueModel]() 21 | list.append(YJPerformSegueModel(title: "NSLayoutConstraint"){YJAutoLayoutConstraintVC()}) 22 | list.append(YJPerformSegueModel(title: "NSLayoutAnchor"){YJAutoLayoutAnchorVC()}) 23 | list.append(YJPerformSegueModel(title: "UIStoryboard", storyboardName: "AutoLayout", identifier: nil)) 24 | self.data.append(list) 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /UI/UI/YJBarTVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCustomizingBarTVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/8. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// Bar 15 | class YJBarTVC: YJBaseTVC { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | var list = [YJPerformSegueModel]() 20 | list.append(YJPerformSegueModel(title: "UINavigationBar"){YJNavigationBarVC()}) 21 | list.append(YJPerformSegueModel(title: "UIToolbar"){YJToolbarVC()}) 22 | list.append(YJPerformSegueModel(title: "UITabBar"){YJTabBarVC()}) 23 | self.data.append(list) 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /UI/UI/YJCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCollectionViewCell.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/12. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 自定义UICollectionViewCell 15 | class YJCollectionViewCell: UICollectionViewCell { 16 | 17 | /// 显示内容 18 | @IBOutlet weak var textLabel: UILabel! 19 | 20 | override func awakeFromNib() { 21 | super.awakeFromNib() 22 | // Initialization code 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /UI/UI/YJCollectionViewCellVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCollectionViewCellVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/19. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 自定义UICollectionViewCell 15 | class YJCollectionViewCellVC: UICollectionViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | let nib = UINib(nibName: "YJCollectionViewCell", bundle: nil) 20 | self.collectionView?.register(nib, forCellWithReuseIdentifier: "customCell") 21 | } 22 | 23 | override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 24 | return 100 25 | } 26 | 27 | override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 28 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "customCell", for: indexPath) as! YJCollectionViewCell 29 | cell.backgroundColor = UIColor.gray 30 | cell.textLabel.text = "\(indexPath.item)" 31 | return cell 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /UI/UI/YJNavigationBarVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJNavigationBarVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/8. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 定制UINavigationBar 15 | class YJNavigationBarVC: UIViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | } 20 | 21 | override func viewWillAppear(_ animated: Bool) { 22 | super.viewWillAppear(animated) 23 | // 自定义UINavigationBar 24 | if let bar = self.navigationController?.navigationBar { // 共享bar UINavigationBar.appearance() 25 | bar.tintColor = UIColor.black // 按钮颜色 26 | bar.barTintColor = UIColor.yellow// 背景色 27 | bar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.black]; // 标题样式 28 | bar.isTranslucent = false // 是否透明 29 | // 去掉UINavigationBar底部的黑边 30 | bar.setBackgroundImage(UIImage(), for: UIBarMetrics.default) 31 | bar.shadowImage = UIImage() 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /UI/UI/YJScrollViewTVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJScrollViewTVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/17. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// UIScrollView主界面 15 | class YJScrollViewTVC: YJBaseTVC { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | var list = [YJPerformSegueModel]() 20 | list.append(YJPerformSegueModel(title: "UIScrollViewDelegate"){YJScrollViewDelegateVC()}) 21 | list.append(YJPerformSegueModel(title: "纯代码AutoLayout"){YJAutoLayoutSVVC()}) 22 | list.append(YJPerformSegueModel(title: "故事面板AutoLayout", storyboardName: nil, identifier: "AutoLayout")) 23 | self.data.append(list) 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /UI/UI/YJSwitchTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJSwitchTableViewCell.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/16. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | class YJSwitchTableViewCell: UITableViewCell { 15 | 16 | /// 标题 17 | @IBOutlet weak var titleLabel: UILabel! 18 | /// 按钮 19 | @IBOutlet weak var yjSwitch: UISwitch! 20 | /// cell的位置 21 | var indexPath: IndexPath? 22 | /// 闭包回调 23 | var handler: ((YJSwitchTableViewCell) -> Void)? 24 | 25 | override func awakeFromNib() { 26 | super.awakeFromNib() 27 | self.selectionStyle = .none // 点击无颜色变化 28 | } 29 | 30 | @IBAction func onClickSwitch(_ sender: AnyObject) { 31 | self.handler?(self) 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /UI/UI/YJTabBarVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJTabBarVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/8. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 定制UITabBar 15 | class YJTabBarVC: UIViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | self.toolbarItems = [UIBarButtonItem(barButtonSystemItem: .search, target: nil, action: nil)] 20 | } 21 | 22 | override func viewWillAppear(_ animated: Bool) { 23 | super.viewWillAppear(animated) 24 | // 自定义UITabBar 25 | if let bar = self.tabBarController?.tabBar { // 共享bar UITabBar.appearance() 26 | bar.tintColor = UIColor.black // 按钮颜色 27 | bar.barTintColor = UIColor.yellow// 背景色 28 | bar.isTranslucent = false // 是否透明 29 | bar.isHidden = false 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /UI/UI/YJTableViewTVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJTableViewTVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/14. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// UITableView主界面 15 | class YJTableViewTVC: YJBaseTVC { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | var list = [YJPerformSegueModel]() 20 | list.append(YJPerformSegueModel(title: "UITableViewDataSource", storyboardName: nil, identifier: "UITableViewDataSource")) 21 | list.append(YJPerformSegueModel(title: "UITableViewDelegate", storyboardName: nil, identifier: "UITableViewDelegate")) 22 | list.append(YJPerformSegueModel(title: "UITableViewCell", storyboardName: nil, identifier: "UITableViewCell")) 23 | self.data.append(list) 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /UI/UI/YJToolbarVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJToolbarVC.swift 3 | // UI 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/8. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 定制UIToolBar 15 | class YJToolbarVC: UIViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | } 20 | 21 | override func viewWillAppear(_ animated: Bool) { 22 | super.viewWillAppear(animated) 23 | // 自定义UINavigationBar 24 | if let bar = self.navigationController?.toolbar { // 共享bar UIToolBar.appearance() 25 | bar.tintColor = UIColor.black // 按钮颜色 26 | bar.barTintColor = UIColor.yellow// 背景色 27 | bar.isTranslucent = false // 是否透明 28 | } 29 | // 显示toolbar 30 | self.navigationController?.isToolbarHidden = false 31 | // 添加按钮 32 | self.toolbarItems = [UIBarButtonItem(barButtonSystemItem: .search, target: nil, action: nil)] 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /Utils/Utils.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/Utils/Utils/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /Utils/Utils/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // Utils 4 | // 5 | // Created by yangjun on 15/12/14. 6 | // Copyright © 2015年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /Utils/Utils/YJUtilsAPP.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsAPP.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import Foundation 13 | 14 | /// app相关信息 15 | public struct YJUtilsAPP { 16 | 17 | /// Info.plist 18 | static let infoDictionary = Bundle.main.infoDictionary! 19 | /// 项目名称 20 | static let executable = YJUtilsAPP.infoDictionary[String(kCFBundleExecutableKey)] 21 | /// bundle Identifier 22 | static let identifier = Bundle.main.bundleIdentifier! 23 | /// version版本号 24 | static let shortVersion = YJUtilsAPP.infoDictionary["CFBundleShortVersionString"] 25 | /// build版本号 26 | static let version = YJUtilsAPP.infoDictionary[String(kCFBundleVersionKey)] 27 | /// app名称 28 | static let name = YJUtilsAPP.infoDictionary[String(kCFBundleNameKey)] 29 | /// app定位区域 30 | static let localizations = YJUtilsAPP.infoDictionary[String(kCFBundleLocalizationsKey)] 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Utils/Utils/YJUtilsDeviceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsDeviceType.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 机型 15 | public struct YJUtilsDeviceType { 16 | 17 | /// IPhone4 18 | static let isIPhone4 = YJUtilsUserInterfaceIdiom.isPhone && YJUtilsScreenSize.screenMaxLength == 480.0 19 | /// IPhone5 20 | static let isIPhone5 = YJUtilsUserInterfaceIdiom.isPhone && YJUtilsScreenSize.screenMaxLength == 568.0 21 | /// IPhone6 22 | static let isIPhone6 = YJUtilsUserInterfaceIdiom.isPhone && YJUtilsScreenSize.screenMaxLength == 667.0 23 | /// IPhone6P 24 | static let isIPhone6P = YJUtilsUserInterfaceIdiom.isPhone && YJUtilsScreenSize.screenMaxLength == 736.0 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Utils/Utils/YJUtilsScreenSize.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsScreenSize.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 屏幕尺寸 15 | public struct YJUtilsScreenSize { 16 | 17 | /// 屏幕宽 18 | static let screenWidth = UIScreen.main.bounds.size.width 19 | /// 屏幕高 20 | static let screenHeight = UIScreen.main.bounds.size.height 21 | /// 屏幕最大长度 22 | static let screenMaxLength = max(YJUtilsScreenSize.screenWidth, YJUtilsScreenSize.screenHeight) 23 | /// 屏幕最小长度 24 | static let screenMinLength = min(YJUtilsScreenSize.screenWidth, YJUtilsScreenSize.screenHeight) 25 | 26 | } 27 | -------------------------------------------------------------------------------- /Utils/Utils/YJUtilsUserInterfaceIdiom.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsUserInterfaceIdiom.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// user interface 15 | public struct YJUtilsUserInterfaceIdiom { 16 | 17 | /// The user interface should be designed for iPhone and iPod touch. 18 | static let isPhone = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.phone 19 | /// The user interface should be designed for iPad. 20 | static let isPad = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad 21 | /// The user interface should be designed for Apple TV. 22 | static let isAppleTV = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.tv 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Utils/UtilsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /Utils/UtilsTests/UtilsTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UtilsTests.swift 3 | // UtilsTests 4 | // 5 | // Created by yangjun on 15/12/14. 6 | // Copyright © 2015年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Utils 11 | 12 | class UtilsTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Utils/UtilsUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /ViewRotation/ViewRotation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ViewRotation/ViewRotation.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation.xcodeproj/project.xcworkspace/xcuserdata/yangjun.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/ViewRotation/ViewRotation/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /ViewRotation/ViewRotation/YJMasterVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJMasterVC.swift 3 | // ViewRotation 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 15/12/25. 9 | // Copyright © 2015年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | 14 | /// 第一页 15 | class YJMasterVC: UIViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | } 20 | 21 | override func touchesBegan(touches: Set, withEvent event: UIEvent?) { 22 | super.touchesBegan(touches, withEvent: event) 23 | let vc = YJDetailVC() 24 | vc.view.backgroundColor = UIColor.whiteColor() 25 | // self.navigationController?.pushViewController(vc, animated: true) 26 | // self.navigationController?.showDetailViewController(vc, sender: nil) 27 | self.presentViewController(vc, animated: true, completion: nil) 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /ViewRotation/ViewRotationTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /ViewRotation/ViewRotationTests/ViewRotationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewRotationTests.swift 3 | // ViewRotationTests 4 | // 5 | // Created by yangjun on 15/12/25. 6 | // Copyright © 2015年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import ViewRotation 11 | 12 | class ViewRotationTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /ViewRotation/ViewRotationUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJAccounts/YJAccounts.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAccounts/YJAccounts/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJAccounts/YJAccounts/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // YJAccounts 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/25. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | import Accounts 14 | 15 | class ViewController: UIViewController { 16 | 17 | override func viewDidLoad() { 18 | super.viewDidLoad() 19 | let completion = { (success: Bool, error: NSError!) -> Void in 20 | print("权限认证success: \(success), error: \(error)") 21 | } 22 | let accountStore = ACAccountStore() 23 | accountStore.requestSinaWeiboAccess(completion) 24 | } 25 | 26 | } 27 | 28 | -------------------------------------------------------------------------------- /YJAccounts/YJAccountsTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJAccounts/YJAccountsTests/YJAccountsTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJAccountsTests.swift 3 | // YJAccountsTests 4 | // 5 | // Created by yangjun on 16/1/25. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJAccounts 11 | 12 | class YJAccountsTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJAccounts/YJAccountsUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJAdSupport/YJAdSupport/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupport/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // YJAdSupport 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/26. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | import AdSupport 14 | 15 | // 广告标示符 16 | class ViewController: UIViewController { 17 | 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | let iManager = ASIdentifierManager.sharedManager() // 共享 21 | print(iManager.advertisingIdentifier) // 唯一标示符 22 | print(iManager.advertisingTrackingEnabled) // 用户是否允许跟踪 23 | } 24 | 25 | } 26 | 27 | -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupportTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupportTests/YJAdSupportTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJAdSupportTests.swift 3 | // YJAdSupportTests 4 | // 5 | // Created by yangjun on 16/1/26. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJAdSupport 11 | 12 | class YJAdSupportTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJAdSupport/YJAdSupportUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreMotion/YJCoreMotion/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotionTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotionTests/YJCoreMotionTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCoreMotionTests.swift 3 | // YJCoreMotionTests 4 | // 5 | // Created by yangjun on 16/1/26. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJCoreMotion 11 | 12 | class YJCoreMotionTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJCoreMotion/YJCoreMotionUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreSpotlight/SpotlightIndexExtension/IndexRequestHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IndexRequestHandler.swift 3 | // SpotlightIndexExtension 4 | // 5 | // Created by yangjun on 16/1/28. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import CoreSpotlight 10 | 11 | class IndexRequestHandler: CSIndexExtensionRequestHandler { 12 | 13 | override func searchableIndex(searchableIndex: CSSearchableIndex, reindexAllSearchableItemsWithAcknowledgementHandler acknowledgementHandler: () -> Void) { 14 | // Reindex all data with the provided index 15 | print(__FUNCTION__) 16 | acknowledgementHandler() 17 | } 18 | 19 | override func searchableIndex(searchableIndex: CSSearchableIndex, reindexSearchableItemsWithIdentifiers identifiers: [String], acknowledgementHandler: () -> Void) { 20 | // Reindex any items with the given identifiers and the provided index 21 | print(__FUNCTION__) 22 | acknowledgementHandler() 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /YJCoreSpotlight/SpotlightIndexExtension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | SpotlightIndexExtension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 25 | NSExtension 26 | 27 | NSExtensionPointIdentifier 28 | com.apple.spotlight.index 29 | NSExtensionPrincipalClass 30 | $(PRODUCT_MODULE_NAME).IndexRequestHandler 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/qq.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "qq@3x.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/qq.imageset/qq@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreSpotlight/YJCoreSpotlight/Assets.xcassets/qq.imageset/qq@3x.png -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlightTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlightTests/YJCoreSpotlightTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCoreSpotlightTests.swift 3 | // YJCoreSpotlightTests 4 | // 5 | // Created by yangjun on 16/1/28. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJCoreSpotlight 11 | 12 | class YJCoreSpotlightTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJCoreSpotlight/YJCoreSpotlightUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@1x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@1x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-76@1x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-76@2x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJCoreTelephony/YJCoreTelephony/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x.png -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephonyTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephonyTests/YJCoreTelephonyTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJCoreTelephonyTests.swift 3 | // YJCoreTelephonyTests 4 | // 5 | // Created by yangjun on 16/1/29. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJCoreTelephony 11 | 12 | class YJCoreTelephonyTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJCoreTelephony/YJCoreTelephonyUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundation.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@1x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@1x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-76@1x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-76@2x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJFoundation/YJFoundation/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x.png -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/Main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/YJOperationVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJOperationVC.swift 3 | // YJFoundation 4 | // 5 | // Created by yangjun on 16/2/1. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /// NSOperation 12 | class YJOperationVC: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | if let oq = OperationQueue.current { // 当前队列 17 | oq.addOperation({ () -> Void in 18 | print("0") 19 | }) 20 | let op = BlockOperation() // block任务 21 | // 添加block 22 | op.addExecutionBlock { () -> Void in 23 | print("1") 24 | } 25 | op.addExecutionBlock { () -> Void in 26 | print("2") 27 | } 28 | oq.addOperation(op) 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/YJRunLoopVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJRunLoopVC.swift 3 | // YJFoundation 4 | // 5 | // Created by admin on 16/3/9. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | /// NSRunLoop 12 | class YJRunLoopVC: UIViewController { 13 | 14 | var loading = true 15 | 16 | override func viewDidLoad() { 17 | super.viewDidLoad() 18 | RunLoop.current.perform(#selector(YJRunLoopVC.send(_:)), target: self, argument: "937447974", order: 0, modes: [RunLoopMode.defaultRunLoopMode]) 19 | self.performSelector(inBackground: #selector(YJRunLoopVC.send(_:)), with: "阳君") 20 | } 21 | 22 | func send(_ str: String) { 23 | print("接受数据:\(str)") 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundation/YJThreadVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJThreadVC.swift 3 | // YJFoundation 4 | // 5 | // Created by yangjun on 16/1/30. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class YJThreadVC: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // 方式一 16 | let thread = Thread(target: self, selector: #selector(YJThreadVC.send(_:)), object: "阳君") 17 | print("线程开销:\(thread.stackSize)bytes") 18 | thread.start() // 执行 19 | 20 | // 方式二 21 | Thread.detachNewThreadSelector(#selector(YJThreadVC.send(_:)), toTarget: self, with: "937447974") 22 | 23 | // 方式三 24 | // 参考协议NSObjectProtocol 25 | self.perform(#selector(YJThreadVC.send(_:)), with: "直接发送") 26 | } 27 | 28 | func send(_ str: String) { 29 | print("是否主线程:\(Thread.isMainThread),接受数据:\(str)") 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundationTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundationTests/YJFoundationTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJFoundationTests.swift 3 | // YJFoundationTests 4 | // 5 | // Created by yangjun on 16/1/30. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJFoundation 11 | 12 | class YJFoundationTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /YJFoundation/YJFoundationUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJImageIO/YJImageIO.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Image@2x.jpg", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /YJImageIO/YJImageIO/Assets.xcassets/Image.imageset/Image@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJImageIO/YJImageIO/Assets.xcassets/Image.imageset/Image@2x.jpg -------------------------------------------------------------------------------- /YJImageIO/YJImageIOTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJImageIO/YJImageIOTests/YJImageIOTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJImageIOTests.swift 3 | // YJImageIOTests 4 | // 5 | // Created by yangjun on 16/1/14. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJImageIO 11 | 12 | class YJImageIOTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJImageIO/YJImageIOUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJMultipeerConnectivity/YJMultipeerConnectivity/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivityTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivityTests/YJMultipeerConnectivityTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJMultipeerConnectivityTests.swift 3 | // YJMultipeerConnectivityTests 4 | // 5 | // Created by yangjun on 16/1/21. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJMultipeerConnectivity 11 | 12 | class YJMultipeerConnectivityTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJMultipeerConnectivity/YJMultipeerConnectivityUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJNotificationCenter/TodayExtension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | TodayExtension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 25 | NSExtension 26 | 27 | NSExtensionMainStoryboard 28 | MainInterface 29 | NSExtensionPointIdentifier 30 | com.apple.widget-extension 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /YJNotificationCenter/TodayExtension/TodayExtension.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.com.YJNotificationCenter 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJNotificationCenter/YJNotificationCenter/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // YJNotificationCenter 4 | // 5 | // Created by yangjun on 16/1/19. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/YJNotificationCenter.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.application-groups 6 | 7 | group.com.YJNotificationCenter 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenter/YJUtilsAPP.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsAPP.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import Foundation 13 | 14 | /// app相关信息 15 | public struct YJUtilsAPP { 16 | 17 | /// Info.plist 18 | static let infoDictionary = NSBundle.mainBundle().infoDictionary! 19 | /// 项目名称 20 | static let executable = YJUtilsAPP.infoDictionary[String(kCFBundleExecutableKey)] 21 | /// bundle Identifier 22 | static let identifier = NSBundle.mainBundle().bundleIdentifier! 23 | /// version版本号 24 | static let shortVersion = YJUtilsAPP.infoDictionary["CFBundleShortVersionString"] 25 | /// build版本号 26 | static let version = YJUtilsAPP.infoDictionary[String(kCFBundleVersionKey)] 27 | /// app名称 28 | static let name = YJUtilsAPP.infoDictionary[String(kCFBundleNameKey)] 29 | /// app定位区域 30 | static let localizations = YJUtilsAPP.infoDictionary[String(kCFBundleLocalizationsKey)] 31 | 32 | } -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenterTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenterTests/YJNotificationCenterTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJNotificationCenterTests.swift 3 | // YJNotificationCenterTests 4 | // 5 | // Created by yangjun on 16/1/19. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJNotificationCenter 11 | 12 | class YJNotificationCenterTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJNotificationCenter/YJNotificationCenterUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/Test.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJQuickLook/YJQuickLook/Test.pdf -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLook/YJPreviewItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJPreviewItem.swift 3 | // YJQuickLook 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/24. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import UIKit 13 | import QuickLook 14 | 15 | /// 文件QLPreviewItem 16 | class YJPreviewItem: NSObject, QLPreviewItem { 17 | 18 | var previewItemURL: NSURL { 19 | return NSBundle.mainBundle().URLForResource("Test", withExtension: "pdf")! 20 | } 21 | 22 | var previewItemTitle: String? { 23 | return "Title" 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLookTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLookTests/YJQuickLookTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJQuickLookTests.swift 3 | // YJQuickLookTests 4 | // 5 | // Created by yangjun on 16/1/24. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJQuickLook 11 | 12 | class YJQuickLookTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJQuickLook/YJQuickLookUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSafariServices/YJSafariServices/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServices/YJUtilsAPP.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJUtilsAPP.swift 3 | // Utils 4 | // 5 | // CSDN:http://blog.csdn.net/y550918116j 6 | // GitHub:https://github.com/937447974/Blog 7 | // 8 | // Created by yangjun on 16/1/14. 9 | // Copyright © 2016年 阳君. All rights reserved. 10 | // 11 | 12 | import Foundation 13 | 14 | /// app相关信息 15 | public struct YJUtilsAPP { 16 | 17 | /// Info.plist 18 | static let infoDictionary = NSBundle.mainBundle().infoDictionary! 19 | /// 项目名称 20 | static let executable = YJUtilsAPP.infoDictionary[String(kCFBundleExecutableKey)] 21 | /// bundle Identifier 22 | static let identifier = NSBundle.mainBundle().bundleIdentifier! 23 | /// version版本号 24 | static let shortVersion = YJUtilsAPP.infoDictionary["CFBundleShortVersionString"] 25 | /// build版本号 26 | static let version = YJUtilsAPP.infoDictionary[String(kCFBundleVersionKey)] 27 | /// app名称 28 | static let name = YJUtilsAPP.infoDictionary[String(kCFBundleNameKey)] 29 | /// app定位区域 30 | static let localizations = YJUtilsAPP.infoDictionary[String(kCFBundleLocalizationsKey)] 31 | 32 | } -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServicesTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServicesTests/YJSafariServicesTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJSafariServicesTests.swift 3 | // YJSafariServicesTests 4 | // 5 | // Created by yangjun on 16/1/21. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJSafariServices 11 | 12 | class YJSafariServicesTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 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 | -------------------------------------------------------------------------------- /YJSafariServices/YJSafariServicesUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJSocial/ShareExtension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | zh_CN 7 | CFBundleDisplayName 8 | ShareExtension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | NSExtensionActivationRule 30 | TRUEPREDICATE 31 | 32 | NSExtensionMainStoryboard 33 | MainInterface 34 | NSExtensionPointIdentifier 35 | com.apple.share-services 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /YJSocial/YJSocial.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@1x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@2x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon29@3x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@1x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@2x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon40@3x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon60@2x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon60@3x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon76@1x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon76@2x.png -------------------------------------------------------------------------------- /YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/937447974/SwiftLearn/a40f0a886fb930ab9b232c5286082480a5a90a43/YJSocial/YJSocial/Assets.xcassets/AppIcon.appiconset/icon83.5@2x.png -------------------------------------------------------------------------------- /YJSocial/YJSocialTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJSocial/YJSocialTests/YJSocialTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // YJSocialTests.swift 3 | // YJSocialTests 4 | // 5 | // Created by yangjun on 16/1/24. 6 | // Copyright © 2016年 阳君. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import YJSocial 11 | 12 | class YJSocialTests: 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 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /YJSocial/YJSocialUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 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 | -------------------------------------------------------------------------------- /YJURLIntercept/YJURLIntercept.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /YJURLIntercept/YJURLIntercept/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // urlTest 4 | // 5 | // Created by admin on 2016/11/4. 6 | // Copyright © 2016年 YJCocoa. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | @IBOutlet weak var webView: UIWebView! 14 | 15 | override func viewDidLoad() { 16 | super.viewDidLoad() 17 | guard let url = URL(string: "https://www.baidu.com") else { 18 | return; 19 | } 20 | self.webView.loadRequest(URLRequest(url: url)) 21 | } 22 | 23 | override func didReceiveMemoryWarning() { 24 | super.didReceiveMemoryWarning() 25 | // Dispose of any resources that can be recreated. 26 | } 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "screenWidth" : "{130,145}", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "screenWidth" : "{146,165}", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "idiom" : "watch", 5 | "filename" : "Circular.imageset", 6 | "role" : "circular" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "filename" : "Modular.imageset", 11 | "role" : "modular" 12 | }, 13 | { 14 | "idiom" : "watch", 15 | "filename" : "Utilitarian.imageset", 16 | "role" : "utilitarian" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "screenWidth" : "{130,145}", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "screenWidth" : "{146,165}", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "screenWidth" : "{130,145}", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "screenWidth" : "{146,165}", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit Extension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | WatchKit Extension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | NSExtension 24 | 25 | NSExtensionAttributes 26 | 27 | WKAppBundleIdentifier 28 | com.YJCocoa.YJWatchConnectivity.watchkitapp 29 | 30 | NSExtensionPointIdentifier 31 | com.apple.watchkit 32 | 33 | WKExtensionDelegateClassName 34 | $(PRODUCT_MODULE_NAME).ExtensionDelegate 35 | 36 | 37 | -------------------------------------------------------------------------------- /YJWatchConnectivity/WatchKit/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | YJWatchConnectivity 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | UISupportedInterfaceOrientations 24 | 25 | UIInterfaceOrientationPortrait 26 | UIInterfaceOrientationPortraitUpsideDown 27 | 28 | WKCompanionAppBundleIdentifier 29 | com.YJCocoa.YJWatchConnectivity 30 | WKWatchKitApp 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /YJWatchConnectivity/YJWatchConnectivity.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | --------------------------------------------------------------------------------