├── .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 |
--------------------------------------------------------------------------------