├── .gitignore ├── LICENSE ├── README.md └── ifanr ├── Podfile ├── Podfile.lock ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AFError.swift │ │ ├── Alamofire.swift │ │ ├── DispatchQueue+Alamofire.swift │ │ ├── MultipartFormData.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── ParameterEncoding.swift │ │ ├── Request.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result.swift │ │ ├── ServerTrustPolicy.swift │ │ ├── SessionDelegate.swift │ │ ├── SessionManager.swift │ │ ├── TaskDelegate.swift │ │ ├── Timeline.swift │ │ └── Validation.swift ├── Manifest.lock ├── MonkeyKing │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── AnyActivity.swift │ │ ├── MonkeyKing.swift │ │ └── Networking.swift ├── Moya │ ├── License.md │ └── Readme.md ├── Pods.xcodeproj │ └── project.pbxproj ├── Result │ ├── LICENSE │ ├── README.md │ └── Result │ │ ├── Result.swift │ │ └── ResultProtocol.swift ├── RxSwift │ ├── LICENSE.md │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ ├── SynchronizedSubscribeType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── Disposables.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ └── String+Rx.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType+Extensions.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── Implementations │ │ │ ├── AddRef.swift │ │ │ ├── Amb.swift │ │ │ ├── AnonymousObservable.swift │ │ │ ├── Buffer.swift │ │ │ ├── Catch.swift │ │ │ ├── CombineLatest+arity.swift │ │ │ ├── CombineLatest.swift │ │ │ ├── Concat.swift │ │ │ ├── ConnectableObservable.swift │ │ │ ├── Debug.swift │ │ │ ├── Debunce.swift │ │ │ ├── Deferred.swift │ │ │ ├── Delay.swift │ │ │ ├── DelaySubscription.swift │ │ │ ├── DistinctUntilChanged.swift │ │ │ ├── Do.swift │ │ │ ├── ElementAt.swift │ │ │ ├── Empty.swift │ │ │ ├── Error.swift │ │ │ ├── Filter.swift │ │ │ ├── Generate.swift │ │ │ ├── Just.swift │ │ │ ├── Map.swift │ │ │ ├── Merge.swift │ │ │ ├── Multicast.swift │ │ │ ├── Never.swift │ │ │ ├── ObserveOn.swift │ │ │ ├── ObserveOnSerialDispatchQueue.swift │ │ │ ├── Producer.swift │ │ │ ├── Range.swift │ │ │ ├── Reduce.swift │ │ │ ├── RefCount.swift │ │ │ ├── Repeat.swift │ │ │ ├── RetryWhen.swift │ │ │ ├── Sample.swift │ │ │ ├── Scan.swift │ │ │ ├── Sequence.swift │ │ │ ├── ShareReplay1.swift │ │ │ ├── ShareReplay1WhileConnected.swift │ │ │ ├── SingleAsync.swift │ │ │ ├── Sink.swift │ │ │ ├── Skip.swift │ │ │ ├── SkipUntil.swift │ │ │ ├── SkipWhile.swift │ │ │ ├── StartWith.swift │ │ │ ├── SubscribeOn.swift │ │ │ ├── Switch.swift │ │ │ ├── Take.swift │ │ │ ├── TakeLast.swift │ │ │ ├── TakeUntil.swift │ │ │ ├── TakeWhile.swift │ │ │ ├── Throttle.swift │ │ │ ├── Timeout.swift │ │ │ ├── Timer.swift │ │ │ ├── ToArray.swift │ │ │ ├── Using.swift │ │ │ ├── Window.swift │ │ │ ├── WithLatestFrom.swift │ │ │ ├── Zip+arity.swift │ │ │ └── Zip.swift │ │ ├── Observable+Aggregate.swift │ │ ├── Observable+Binding.swift │ │ ├── Observable+Concurrency.swift │ │ ├── Observable+Creation.swift │ │ ├── Observable+Debug.swift │ │ ├── Observable+Multiple.swift │ │ ├── Observable+Single.swift │ │ ├── Observable+StandardSequenceOperators.swift │ │ └── Observable+Time.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── ImmediateScheduler.swift │ │ ├── Internal │ │ │ ├── AnonymousInvocable.swift │ │ │ ├── DispatchQueueConfiguration.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ ├── InvocableType.swift │ │ │ ├── ScheduledItem.swift │ │ │ └── ScheduledItemType.swift │ │ ├── MainScheduler.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── RecursiveScheduler.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── VirtualTimeConverterType.swift │ │ └── VirtualTimeScheduler.swift │ │ └── Subjects │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ ├── SubjectType.swift │ │ └── Variable.swift ├── SnapKit │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── Constraint.swift │ │ ├── ConstraintAttributes.swift │ │ ├── ConstraintConfig.swift │ │ ├── ConstraintConstantTarget.swift │ │ ├── ConstraintDSL.swift │ │ ├── ConstraintDescription.swift │ │ ├── ConstraintInsetTarget.swift │ │ ├── ConstraintInsets.swift │ │ ├── ConstraintItem.swift │ │ ├── ConstraintLayoutGuide.swift │ │ ├── ConstraintLayoutGuideDSL.swift │ │ ├── ConstraintLayoutSupport.swift │ │ ├── ConstraintLayoutSupportDSL.swift │ │ ├── ConstraintMaker.swift │ │ ├── ConstraintMakerEditable.swift │ │ ├── ConstraintMakerExtendable.swift │ │ ├── ConstraintMakerFinalizable.swift │ │ ├── ConstraintMakerPriortizable.swift │ │ ├── ConstraintMakerRelatable.swift │ │ ├── ConstraintMultiplierTarget.swift │ │ ├── ConstraintOffsetTarget.swift │ │ ├── ConstraintPriorityTarget.swift │ │ ├── ConstraintRelatableTarget.swift │ │ ├── ConstraintRelation.swift │ │ ├── ConstraintView+Extensions.swift │ │ ├── ConstraintView.swift │ │ ├── ConstraintViewDSL.swift │ │ ├── Debugging.swift │ │ ├── LayoutConstraint.swift │ │ ├── UILayoutGuide+Extensions.swift │ │ └── UILayoutSupport+Extensions.swift ├── Target Support Files │ ├── Alamofire │ │ ├── Alamofire-dummy.m │ │ ├── Alamofire-prefix.pch │ │ ├── Alamofire-umbrella.h │ │ ├── Alamofire.modulemap │ │ ├── Alamofire.xcconfig │ │ └── Info.plist │ ├── MonkeyKing │ │ ├── Info.plist │ │ ├── MonkeyKing-dummy.m │ │ ├── MonkeyKing-prefix.pch │ │ ├── MonkeyKing-umbrella.h │ │ ├── MonkeyKing.modulemap │ │ └── MonkeyKing.xcconfig │ ├── Moya │ │ ├── Info.plist │ │ ├── Moya-dummy.m │ │ ├── Moya-prefix.pch │ │ ├── Moya-umbrella.h │ │ ├── Moya.modulemap │ │ └── Moya.xcconfig │ ├── Pods-ifanr │ │ ├── Info.plist │ │ ├── Pods-ifanr-acknowledgements.markdown │ │ ├── Pods-ifanr-acknowledgements.plist │ │ ├── Pods-ifanr-dummy.m │ │ ├── Pods-ifanr-frameworks.sh │ │ ├── Pods-ifanr-resources.sh │ │ ├── Pods-ifanr-umbrella.h │ │ ├── Pods-ifanr.debug.xcconfig │ │ ├── Pods-ifanr.modulemap │ │ └── Pods-ifanr.release.xcconfig │ ├── Result │ │ ├── Info.plist │ │ ├── Result-dummy.m │ │ ├── Result-prefix.pch │ │ ├── Result-umbrella.h │ │ ├── Result.modulemap │ │ └── Result.xcconfig │ ├── RxSwift │ │ ├── Info.plist │ │ ├── RxSwift-dummy.m │ │ ├── RxSwift-prefix.pch │ │ ├── RxSwift-umbrella.h │ │ ├── RxSwift.modulemap │ │ └── RxSwift.xcconfig │ ├── SnapKit │ │ ├── Info.plist │ │ ├── SnapKit-dummy.m │ │ ├── SnapKit-prefix.pch │ │ ├── SnapKit-umbrella.h │ │ ├── SnapKit.modulemap │ │ └── SnapKit.xcconfig │ ├── YYCache │ │ ├── Info.plist │ │ ├── YYCache-dummy.m │ │ ├── YYCache-prefix.pch │ │ ├── YYCache-umbrella.h │ │ ├── YYCache.modulemap │ │ └── YYCache.xcconfig │ ├── YYImage │ │ ├── Info.plist │ │ ├── YYImage-dummy.m │ │ ├── YYImage-prefix.pch │ │ ├── YYImage-umbrella.h │ │ ├── YYImage.modulemap │ │ └── YYImage.xcconfig │ └── YYWebImage │ │ ├── Info.plist │ │ ├── YYWebImage-dummy.m │ │ ├── YYWebImage-prefix.pch │ │ ├── YYWebImage-umbrella.h │ │ ├── YYWebImage.modulemap │ │ └── YYWebImage.xcconfig ├── YYCache │ ├── LICENSE │ ├── README.md │ └── YYCache │ │ ├── YYCache.h │ │ ├── YYCache.m │ │ ├── YYDiskCache.h │ │ ├── YYDiskCache.m │ │ ├── YYKVStorage.h │ │ ├── YYKVStorage.m │ │ ├── YYMemoryCache.h │ │ └── YYMemoryCache.m ├── YYImage │ ├── LICENSE │ ├── README.md │ └── YYImage │ │ ├── YYAnimatedImageView.h │ │ ├── YYAnimatedImageView.m │ │ ├── YYFrameImage.h │ │ ├── YYFrameImage.m │ │ ├── YYImage.h │ │ ├── YYImage.m │ │ ├── YYImageCoder.h │ │ ├── YYImageCoder.m │ │ ├── YYSpriteSheetImage.h │ │ └── YYSpriteSheetImage.m └── YYWebImage │ ├── LICENSE │ ├── README.md │ └── YYWebImage │ ├── Categories │ ├── CALayer+YYWebImage.h │ ├── CALayer+YYWebImage.m │ ├── MKAnnotationView+YYWebImage.h │ ├── MKAnnotationView+YYWebImage.m │ ├── UIButton+YYWebImage.h │ ├── UIButton+YYWebImage.m │ ├── UIImage+YYWebImage.h │ ├── UIImage+YYWebImage.m │ ├── UIImageView+YYWebImage.h │ ├── UIImageView+YYWebImage.m │ ├── _YYWebImageSetter.h │ └── _YYWebImageSetter.m │ ├── YYImageCache.h │ ├── YYImageCache.m │ ├── YYWebImage.h │ ├── YYWebImageManager.h │ ├── YYWebImageManager.m │ ├── YYWebImageOperation.h │ └── YYWebImageOperation.m ├── iOSInjectionProject ├── BundleContents.h ├── BundleContents.m ├── InjectionBundle-Info.plist ├── InjectionBundle-Prefix.pch └── InjectionBundle.xcodeproj │ └── project.pbxproj ├── ifanr.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── ifanr.xcscmblueprint ├── ifanr.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── ifanr.xcscmblueprint ├── ifanr ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── AppIcon29x29@2x.png │ │ ├── AppIcon29x29@3x.png │ │ ├── AppIcon40x40@2x.png │ │ ├── AppIcon40x40@3x.png │ │ ├── AppIcon60x60@2x.png │ │ ├── AppIcon60x60@3x.png │ │ └── Contents.json │ ├── Category │ │ ├── Contents.json │ │ ├── category_article_list_business_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_business_bg.png │ │ ├── category_article_list_car_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_car_bg.png │ │ ├── category_article_list_dasheng_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_dasheng_bg.png │ │ ├── category_article_list_evaluation_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_evaluation_bg.png │ │ ├── category_article_list_interview_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_interview_bg.png │ │ ├── category_article_list_iseed_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_iseed_bg.png │ │ ├── category_article_list_list_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_list_bg.png │ │ ├── category_article_list_picture_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_picture_bg.png │ │ ├── category_article_list_product_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_product_bg.png │ │ ├── category_article_list_shudu_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_shudu_bg.png │ │ ├── category_article_list_video_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_article_list_video_bg.png │ │ ├── category_menu_business_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_business_bg.png │ │ ├── category_menu_business_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_business_icon.png │ │ ├── category_menu_car_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_car_bg.png │ │ ├── category_menu_car_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_car_icon.png │ │ ├── category_menu_dasheng_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_dasheng_bg.png │ │ ├── category_menu_dasheng_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_dasheng_icon.png │ │ ├── category_menu_evaluation_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_evaluation_bg.png │ │ ├── category_menu_evaluation_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_evaluation_icon.png │ │ ├── category_menu_home_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_home_bg.png │ │ ├── category_menu_home_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_home_icon.png │ │ ├── category_menu_interview_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_interview_bg.png │ │ ├── category_menu_interview_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_interview_icon.png │ │ ├── category_menu_iseed_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_iseed_bg.png │ │ ├── category_menu_iseed_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_iseed_icon.png │ │ ├── category_menu_list_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_list_bg.png │ │ ├── category_menu_list_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_list_icon.png │ │ ├── category_menu_picture_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_picture_bg.png │ │ ├── category_menu_picture_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_picture_icon.png │ │ ├── category_menu_product_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_product_bg.png │ │ ├── category_menu_product_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_product_icon.png │ │ ├── category_menu_shudu_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_shudu_bg.png │ │ ├── category_menu_shudu_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_shudu_icon.png │ │ ├── category_menu_video_bg.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_video_bg.png │ │ └── category_menu_video_icon.imageset │ │ │ ├── Contents.json │ │ │ └── category_menu_video_icon.png │ ├── Contents.json │ ├── Home │ │ ├── Contents.json │ │ ├── heart_selected_false.imageset │ │ │ ├── Contents.json │ │ │ └── heart_selected_false.png │ │ ├── heart_selected_true.imageset │ │ │ ├── Contents.json │ │ │ └── heart_selected_true.png │ │ ├── ic_dasheng.imageset │ │ │ ├── Contents.json │ │ │ └── ic_dasheng.png │ │ └── ic_shudu.imageset │ │ │ ├── Contents.json │ │ │ └── ic_shudu.png │ ├── HomeView │ │ ├── Contents.json │ │ ├── appso_header_background.imageset │ │ │ ├── Contents.json │ │ │ └── appso_header_background.jpg │ │ ├── buzz_header_background.imageset │ │ │ ├── Contents.json │ │ │ └── buzz_header_background.jpg │ │ ├── coolbuy_header_background.imageset │ │ │ ├── Contents.json │ │ │ └── coolbuy_header_background.jpg │ │ ├── ic_circle.imageset │ │ │ ├── Contents.json │ │ │ └── ic_circle.png │ │ ├── ic_hamburg.imageset │ │ │ ├── Contents.json │ │ │ └── ic_hamburg.png │ │ ├── ic_hamburg_red.imageset │ │ │ ├── Contents.json │ │ │ └── ic_hamburg_red.png │ │ ├── mind_store_header_background.imageset │ │ │ ├── Contents.json │ │ │ └── mind_store_header_background.png │ │ ├── mind_store_vote_background_voted_false.imageset │ │ │ ├── Contents.json │ │ │ └── mind_store_vote_background_voted_false.png │ │ ├── mind_store_vote_background_voted_true.imageset │ │ │ ├── Contents.json │ │ │ └── mind_store_vote_background_voted_true.png │ │ ├── tag_all_presses.imageset │ │ │ ├── Contents.json │ │ │ └── tag_all_presses.png │ │ ├── tag_appsolution.imageset │ │ │ ├── Contents.json │ │ │ └── tag_appsolution.png │ │ ├── tag_coolbuy.imageset │ │ │ ├── Contents.json │ │ │ └── tag_coolbuy.png │ │ ├── tag_happeningnow.imageset │ │ │ ├── Contents.json │ │ │ └── tag_happeningnow.png │ │ ├── tag_latest_press.imageset │ │ │ ├── Contents.json │ │ │ └── tag_latest_press.png │ │ └── tag_more_columns.imageset │ │ │ ├── Contents.json │ │ │ └── tag_more_columns.png │ ├── Menu │ │ ├── Contents.json │ │ ├── ic_about.imageset │ │ │ ├── Contents.json │ │ │ └── ic_about.png │ │ ├── ic_login.imageset │ │ │ ├── Contents.json │ │ │ └── ic_login.png │ │ ├── ic_profile_logo.imageset │ │ │ ├── Contents.json │ │ │ └── ic_profile_logo.png │ │ ├── ic_report.imageset │ │ │ ├── Contents.json │ │ │ └── ic_report.png │ │ ├── ic_search.imageset │ │ │ ├── Contents.json │ │ │ └── ic_search.png │ │ ├── ic_setting.imageset │ │ │ ├── Contents.json │ │ │ └── ic_setting.png │ │ ├── ic_start.imageset │ │ │ ├── Contents.json │ │ │ └── ic_start.png │ │ ├── launch_logo.imageset │ │ │ ├── Contents.json │ │ │ └── launch_logo.png │ │ ├── place_holder_image.imageset │ │ │ ├── Contents.json │ │ │ └── place_holder_image.png │ │ └── profile_background.imageset │ │ │ ├── Contents.json │ │ │ └── profile_background.png │ ├── MindStoreDetail │ │ ├── Contents.json │ │ ├── ic_mind_store_comment.imageset │ │ │ ├── Contents.json │ │ │ └── ic_mind_store_comment.png │ │ ├── ic_mind_store_like.imageset │ │ │ ├── Contents.json │ │ │ └── ic_mind_store_like.png │ │ ├── mind_store_comment_background.imageset │ │ │ ├── Contents.json │ │ │ └── mind_store_comment_background.png │ │ └── place_holder_avatar.imageset │ │ │ ├── Contents.json │ │ │ └── place_holder_avatar.png │ ├── NewsFlashDetail │ │ ├── Contents.json │ │ ├── ic_article_back.imageset │ │ │ ├── Contents.json │ │ │ └── ic_article_back.png │ │ ├── ic_back.imageset │ │ │ ├── Contents.json │ │ │ └── ic_back.png │ │ ├── ic_close.imageset │ │ │ ├── Contents.json │ │ │ └── ic_close.png │ │ ├── ic_comment_bar_share.imageset │ │ │ ├── Contents.json │ │ │ └── ic_comment_bar_share.png │ │ ├── ic_refresh.imageset │ │ │ ├── Contents.json │ │ │ └── ic_refresh.png │ │ ├── ic_share.imageset │ │ │ ├── Contents.json │ │ │ └── ic_share.png │ │ └── ic_system_browser.imageset │ │ │ ├── Contents.json │ │ │ └── ic_system_browser.png │ ├── PlayingZhiDetail │ │ ├── Contents.json │ │ ├── comments │ │ │ ├── Contents.json │ │ │ ├── comment_rating_down_black.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── comment_rating_down_black.png │ │ │ ├── comment_rating_down_grey.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── comment_rating_down_grey.png │ │ │ ├── comment_rating_up_grey.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── comment_rating_up_grey.png │ │ │ └── comment_rating_up_red.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── comment_rating_up_red.png │ │ ├── ic_comment.imageset │ │ │ ├── Contents.json │ │ │ └── ic_comment.png │ │ ├── ic_comment_bar_like_false.imageset │ │ │ ├── Contents.json │ │ │ └── ic_comment_bar_like_false.png │ │ └── ic_comment_bar_like_true.imageset │ │ │ ├── Contents.json │ │ │ └── ic_comment_bar_like_true.png │ └── share │ │ ├── Contents.json │ │ ├── ic_dialog_share.imageset │ │ ├── Contents.json │ │ └── ic_dialog_share.png │ │ ├── share_more.imageset │ │ ├── Contents.json │ │ └── share_more.png │ │ ├── share_wechat.imageset │ │ ├── Contents.json │ │ └── share_wechat.png │ │ └── share_wechat_moment.imageset │ │ ├── Contents.json │ │ └── share_wechat_moment.png ├── Base.lproj │ └── LaunchScreen.storyboard ├── Constants │ ├── APIConstant.swift │ └── Constant.swift ├── Controllers │ ├── AppSoViewController │ │ └── AppSoViewController.swift │ ├── Base │ │ ├── BasePageController.swift │ │ └── IFBaseNavController.swift │ ├── CategoryController │ │ └── CategoryController.swift │ ├── DetailController │ │ ├── IFDetailCommentVC.swift │ │ ├── IFDetailsController.swift │ │ └── IFSafariController.swift │ ├── HomeViewController │ │ └── HomeViewController.swift │ ├── MainViewController │ │ ├── MainViewController.swift │ │ ├── MainViewController.swift.BACKUP.6044.swift │ │ ├── MainViewController.swift.BASE.6044.swift │ │ ├── MainViewController.swift.LOCAL.6044.swift │ │ └── MainViewController.swift.REMOTE.6044.swift │ ├── MenuController │ │ └── MenuViewController.swift │ ├── MindStoreController │ │ ├── MindStoreDetailController.swift │ │ └── MindStoreViewController.swift │ ├── NewFeatureController │ │ └── NewFeatureController.swift │ ├── NewsFlashController │ │ └── NewsFlashController.swift │ ├── PlayingZhiController │ │ └── PlayingZhiController.swift │ ├── SearchController │ │ └── SearchViewController.swift │ └── SettingController │ │ └── SettingViewController.swift ├── Extension │ ├── ControllerReusable.swift │ ├── NSDate+IF.swift │ ├── NSMutableAttributedString+ifanr.swift │ ├── Reusable.swift │ ├── ShareResuable.swift │ ├── String+ifanr.swift │ ├── UIFont+ifanr.swift │ ├── UIImage+ifanr.swift │ ├── UIImageView+ifanr.swift │ ├── UILabel+IF.swift │ ├── UITableView+ifanr.swift │ ├── UIView+Frame.swift │ ├── UIView+icon.swift │ └── UIViewController+IF.swift ├── Info.plist ├── Models │ ├── CommentModel │ │ └── CommentModel.swift │ ├── CommonModel.swift │ ├── Initable.swift │ ├── MainModel │ │ ├── CategoryModel.swift │ │ └── TableHeaderModel.swift │ ├── MenuModel │ │ └── MenuTabModel.swift │ ├── MindStoreModel │ │ ├── MindStoreCommentModel.swift │ │ ├── MindStoreModel.swift │ │ └── MindStoreVoteModel.swift │ └── SettingModel │ │ └── SettingModel.swift ├── Other │ ├── Font │ │ ├── DINPro-Medium.TTF │ │ ├── FZLTXIHJW--GB1-0.TTF │ │ └── FZLTZCHJW--GB1-0.TTF │ ├── Lib │ │ └── YYFPSLabel │ │ │ ├── YYFPSLabel.h │ │ │ └── YYFPSLabel.m │ └── Utils │ │ └── ShareSDKUtil.swift ├── Resources │ ├── 1.gif │ ├── 2.gif │ ├── 3.gif │ ├── 4.gif │ ├── 5.gif │ ├── controllerNavgation.png │ ├── ifanrVideo.mp4 │ ├── logo.png │ └── 爱范儿API.rtf ├── Services │ └── IFanrService.swift ├── Views │ ├── AppSoView │ │ └── AppSoTableViewCell.swift │ ├── CategoryView │ │ ├── CategoryListHeaderView.swift │ │ ├── CategoryView.swift │ │ └── CategoryViewCell.swift │ ├── DetailsView │ │ ├── BottomToolsBar.swift │ │ ├── CommentHeaderView.swift │ │ ├── CommentTableViewCell.swift │ │ ├── CommentsCellResuable.swift │ │ ├── HeaderBackView.swift │ │ ├── ShareView.swift │ │ └── SmallCommentTableViewCell.swift │ ├── HomeView │ │ ├── HomeHeaderItem.swift │ │ ├── HomeHeaderView.swift │ │ ├── HomeLatestDataCell.swift │ │ ├── HomeLatestImageCell.swift │ │ ├── HomeLatestTextCell.swift │ │ ├── HomePageControl.swift │ │ └── HomePopularLayout.swift │ ├── MainView │ │ ├── MainHeaderView.swift │ │ └── TableHeaderView.swift │ ├── MenuView │ │ ├── MenuHeaaderView.swift │ │ └── MenuTableViewCell.swift │ ├── MindStoreView │ │ ├── MindStoreTableViewCell.swift │ │ └── MindStoreVotedView.swift │ ├── NewsFlashView │ │ └── NewsFlashTableViewCell.swift │ ├── PlayingZhiView │ │ └── PlayingZhiTableViewCell.swift │ ├── PullToRefresh │ │ ├── ActivityIndicatorView.swift │ │ ├── LoadMoreView.swift │ │ └── PullToRefreshView.swift │ └── SettingView │ │ ├── SettingHeaderView.swift │ │ └── SettingViewCell.swift └── ifanr-Bridging-Header.h ├── ifanrTests ├── Info.plist └── ifanrTests.swift └── ifanrUITests ├── Info.plist └── ifanrUITests.swift /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | ## Playgrounds 31 | timeline.xctimeline 32 | playground.xcworkspace 33 | 34 | # Swift Package Manager 35 | # 36 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 37 | # Packages/ 38 | .build/ 39 | 40 | # CocoaPods 41 | # 42 | # We recommend against adding the Pods directory to your .gitignore. However 43 | # you should judge for yourself, the pros and cons are mentioned at: 44 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 45 | # 46 | # Pods/ 47 | 48 | # Carthage 49 | # 50 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 51 | # Carthage/Checkouts 52 | 53 | Carthage/Build 54 | 55 | # fastlane 56 | # 57 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 58 | # screenshots whenever they are needed. 59 | # For more information about the recommended setup visit: 60 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 61 | 62 | fastlane/report.xml 63 | fastlane/Preview.html 64 | fastlane/screenshots 65 | fastlane/test_output 66 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 iCodeForever 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ifanr/Podfile: -------------------------------------------------------------------------------- 1 | source 'https://github.com/CocoaPods/Specs.git' 2 | 3 | platform :ios, ’8.0’ 4 | use_frameworks! 5 | 6 | 7 | target 'ifanr' do 8 | pod 'Alamofire', '~>4.1.0’ 9 | pod 'SnapKit', '~>3.0.1' 10 | pod 'Moya', '~>8.0.0-beta.1' 11 | pod 'RxSwift', '~> 3.0.0-beta.1' 12 | pod 'RxCocoa', '~> 3.0.0-beta.1' 13 | pod 'MonkeyKing', '~> 1.1.0' 14 | pod 'YYWebImage' 15 | end 16 | 17 | post_install do |installer| 18 | installer.pods_project.targets.each do |target| 19 | target.build_configurations.each do |config| 20 | 21 | config.build_settings['SWIFT_VERSION'] = '3.0' 22 | end 23 | end 24 | end 25 | 26 | -------------------------------------------------------------------------------- /ifanr/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.1.0) 3 | - MonkeyKing (1.1.0) 4 | - Moya (8.0.2): 5 | - Moya/Core (= 8.0.2) 6 | - Moya/Core (8.0.2): 7 | - Alamofire (~> 4.1) 8 | - Result (~> 3.0) 9 | - Result (3.1.0) 10 | - RxCocoa (3.0.1): 11 | - RxSwift (~> 3.0) 12 | - RxSwift (3.0.1) 13 | - SnapKit (3.0.2) 14 | - YYCache (1.0.4) 15 | - YYImage (1.0.4): 16 | - YYImage/Core (= 1.0.4) 17 | - YYImage/Core (1.0.4) 18 | - YYWebImage (1.0.5): 19 | - YYCache 20 | - YYImage 21 | 22 | DEPENDENCIES: 23 | - Alamofire (~> 4.1.0) 24 | - MonkeyKing (~> 1.1.0) 25 | - Moya (~> 8.0.0-beta.1) 26 | - RxCocoa (~> 3.0.0-beta.1) 27 | - RxSwift (~> 3.0.0-beta.1) 28 | - SnapKit (~> 3.0.1) 29 | - YYWebImage 30 | 31 | SPEC CHECKSUMS: 32 | Alamofire: e266cf991b933498df791e645e0d8ac294492153 33 | MonkeyKing: dc16753cab7ece2d83e61976cd09fc3a7f783f1f 34 | Moya: 47f61da5b634aa71f676431b64ee0f81e976296d 35 | Result: 4e3ed5995ed94d0cd6a09be9a431fce3f3624bbf 36 | RxCocoa: 15a52fc590dcc700cb4a690a633b5c5184ce3a78 37 | RxSwift: af5680055c4ad04480189c52d28385b1029493a6 38 | SnapKit: 2e456761aa92d4d4067a7a5594c18769d451a8ad 39 | YYCache: 8105b6638f5e849296c71f331ff83891a4942952 40 | YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54 41 | YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 42 | 43 | PODFILE CHECKSUM: ce9e94669e5e16b300089968a496575b39404b29 44 | 45 | COCOAPODS: 1.1.1 46 | -------------------------------------------------------------------------------- /ifanr/Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /ifanr/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Alamofire (4.1.0) 3 | - MonkeyKing (1.1.0) 4 | - Moya (8.0.2): 5 | - Moya/Core (= 8.0.2) 6 | - Moya/Core (8.0.2): 7 | - Alamofire (~> 4.1) 8 | - Result (~> 3.0) 9 | - Result (3.1.0) 10 | - RxCocoa (3.0.1): 11 | - RxSwift (~> 3.0) 12 | - RxSwift (3.0.1) 13 | - SnapKit (3.0.2) 14 | - YYCache (1.0.4) 15 | - YYImage (1.0.4): 16 | - YYImage/Core (= 1.0.4) 17 | - YYImage/Core (1.0.4) 18 | - YYWebImage (1.0.5): 19 | - YYCache 20 | - YYImage 21 | 22 | DEPENDENCIES: 23 | - Alamofire (~> 4.1.0) 24 | - MonkeyKing (~> 1.1.0) 25 | - Moya (~> 8.0.0-beta.1) 26 | - RxCocoa (~> 3.0.0-beta.1) 27 | - RxSwift (~> 3.0.0-beta.1) 28 | - SnapKit (~> 3.0.1) 29 | - YYWebImage 30 | 31 | SPEC CHECKSUMS: 32 | Alamofire: e266cf991b933498df791e645e0d8ac294492153 33 | MonkeyKing: dc16753cab7ece2d83e61976cd09fc3a7f783f1f 34 | Moya: 47f61da5b634aa71f676431b64ee0f81e976296d 35 | Result: 4e3ed5995ed94d0cd6a09be9a431fce3f3624bbf 36 | RxCocoa: 15a52fc590dcc700cb4a690a633b5c5184ce3a78 37 | RxSwift: af5680055c4ad04480189c52d28385b1029493a6 38 | SnapKit: 2e456761aa92d4d4067a7a5594c18769d451a8ad 39 | YYCache: 8105b6638f5e849296c71f331ff83891a4942952 40 | YYImage: 1e1b62a9997399593e4b9c4ecfbbabbf1d3f3b54 41 | YYWebImage: 5f7f36aee2ae293f016d418c7d6ba05c4863e928 42 | 43 | PODFILE CHECKSUM: ce9e94669e5e16b300089968a496575b39404b29 44 | 45 | COCOAPODS: 1.1.1 46 | -------------------------------------------------------------------------------- /ifanr/Pods/MonkeyKing/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2016 nixzhu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ifanr/Pods/MonkeyKing/Sources/AnyActivity.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnyActivity.swift 3 | // MonkeyKing 4 | // 5 | // Created by NIX on 15/9/11. 6 | // Copyright © 2015年 nixWork. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | open class AnyActivity: UIActivity { 12 | 13 | fileprivate let type: UIActivityType 14 | fileprivate let title: String 15 | fileprivate let image: UIImage 16 | 17 | fileprivate let message: MonkeyKing.Message 18 | fileprivate let completionHandler: MonkeyKing.DeliverCompletionHandler 19 | 20 | public init(type: UIActivityType, title: String, image: UIImage, message: MonkeyKing.Message, completionHandler: @escaping MonkeyKing.DeliverCompletionHandler) { 21 | 22 | self.type = type 23 | self.title = title 24 | self.image = image 25 | 26 | self.message = message 27 | self.completionHandler = completionHandler 28 | 29 | super.init() 30 | } 31 | 32 | override open class var activityCategory : UIActivityCategory { 33 | return .share 34 | } 35 | 36 | override open var activityType: UIActivityType? { 37 | return type 38 | } 39 | 40 | override open var activityTitle : String? { 41 | return title 42 | } 43 | 44 | override open var activityImage : UIImage? { 45 | return image 46 | } 47 | 48 | override open func canPerform(withActivityItems activityItems: [Any]) -> Bool { 49 | return message.canBeDelivered 50 | } 51 | 52 | override open func perform() { 53 | MonkeyKing.deliver(message, completionHandler: completionHandler) 54 | activityDidFinish(true) 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /ifanr/Pods/Moya/License.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Artsy, Ash Furrow 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /ifanr/Pods/Result/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Rob Rix 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 3 | **All rights reserved.** 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents disposable resource with state tracking. 12 | public protocol Cancelable : Disposable { 13 | /// Was resource disposed. 14 | var isDisposed: Bool { get } 15 | } 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lock.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol Lock { 12 | func lock() 13 | func unlock() 14 | } 15 | 16 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html 17 | typealias SpinLock = NSRecursiveLock 18 | 19 | extension NSRecursiveLock : Lock { 20 | func performLocked(_ action: () -> Void) { 21 | lock(); defer { unlock() } 22 | action() 23 | } 24 | 25 | func calculateLocked(_ action: () -> T) -> T { 26 | lock(); defer { unlock() } 27 | return action() 28 | } 29 | 30 | func calculateLockedOrFail(_ action: () throws -> T) throws -> T { 31 | lock(); defer { unlock() } 32 | let result = try action() 33 | return result 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol LockOwnerType : class, Lock { 12 | var _lock: NSRecursiveLock { get } 13 | } 14 | 15 | extension LockOwnerType { 16 | func lock() { 17 | _lock.lock() 18 | } 19 | 20 | func unlock() { 21 | _lock.unlock() 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedDisposeType : class, Disposable, Lock { 12 | func _synchronized_dispose() 13 | } 14 | 15 | extension SynchronizedDisposeType { 16 | func synchronizedDispose() { 17 | lock(); defer { unlock() } 18 | _synchronized_dispose() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedOnType : class, ObserverType, Lock { 12 | func _synchronized_on(_ event: Event) 13 | } 14 | 15 | extension SynchronizedOnType { 16 | func synchronizedOn(_ event: Event) { 17 | lock(); defer { unlock() } 18 | _synchronized_on(event) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedSubscribeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedSubscribeType : class, ObservableType, Lock { 12 | func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == E 13 | } 14 | 15 | extension SynchronizedSubscribeType { 16 | func synchronizedSubscribe(_ observer: O) -> Disposable where O.E == E { 17 | lock(); defer { unlock() } 18 | return _synchronized_subscribe(observer) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol SynchronizedUnsubscribeType : class { 12 | associatedtype DisposeKey 13 | 14 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey) 15 | } 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /** 12 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 13 | */ 14 | public protocol ConnectableObservableType : ObservableType { 15 | /** 16 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 17 | 18 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 19 | */ 20 | func connect() -> Disposable 21 | } 22 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Respresents a disposable resource. 12 | public protocol Disposable { 13 | /// Dispose resource. 14 | func dispose() 15 | } 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents a disposable resource that can be checked for disposal status. 12 | public final class BooleanDisposable : Disposable, Cancelable { 13 | 14 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) 15 | private var _isDisposed = false 16 | 17 | /// Initializes a new instance of the `BooleanDisposable` class 18 | public init() { 19 | } 20 | 21 | /// Initializes a new instance of the `BooleanDisposable` class with given value 22 | public init(isDisposed: Bool) { 23 | self._isDisposed = isDisposed 24 | } 25 | 26 | /// - returns: Was resource disposed. 27 | public var isDisposed: Bool { 28 | return _isDisposed 29 | } 30 | 31 | /// Sets the status to disposed, which can be observer through the `isDisposed` property. 32 | public func dispose() { 33 | _isDisposed = true 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposables/Disposables.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposables.swift 3 | // RxSwift 4 | // 5 | // Created by Mohsen Ramezanpoor on 01/08/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// A collection of utility methods for common disposable operations. 12 | public struct Disposables { 13 | private init() {} 14 | } 15 | 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Base class for all disposables. 12 | public class DisposeBase { 13 | init() { 14 | #if TRACE_RESOURCES 15 | let _ = Resources.incrementTotal() 16 | #endif 17 | } 18 | 19 | deinit { 20 | #if TRACE_RESOURCES 21 | let _ = Resources.decrementTotal() 22 | #endif 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents a disposable that does nothing on disposal. 12 | /// 13 | /// Nop = No Operation 14 | fileprivate struct NopDisposable : Disposable { 15 | 16 | fileprivate static let noOp: Disposable = NopDisposable() 17 | 18 | fileprivate init() { 19 | 20 | } 21 | 22 | /// Does nothing. 23 | public func dispose() { 24 | } 25 | } 26 | 27 | extension Disposables { 28 | /** 29 | Creates a disposable that does nothing on disposal. 30 | */ 31 | static public func create() -> Disposable { 32 | return NopDisposable.noOp 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct SubscriptionDisposable : Disposable { 12 | private let _key: T.DisposeKey 13 | private weak var _owner: T? 14 | 15 | init(owner: T, key: T.DisposeKey) { 16 | _owner = owner 17 | _key = key 18 | } 19 | 20 | func dispose() { 21 | _owner?.synchronizedUnsubscribe(_key) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Extensions/String+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` 13 | func lastIndexOf(_ character: Character) -> Index? { 14 | var index = endIndex 15 | while index > startIndex { 16 | index = self.index(before: index) 17 | if self[index] == character { 18 | return index 19 | } 20 | } 21 | 22 | return nil 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/ImmediateSchedulerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImmediateSchedulerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents an object that immediately schedules units of work. 12 | public protocol ImmediateSchedulerType { 13 | /** 14 | Schedules an action to be executed immediatelly. 15 | 16 | - parameter state: State passed to the action to be executed. 17 | - parameter action: Action to be executed. 18 | - returns: The disposable object used to cancel the scheduled action (best effort). 19 | */ 20 | func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable 21 | } 22 | 23 | extension ImmediateSchedulerType { 24 | /** 25 | Schedules an action to be executed recursively. 26 | 27 | - parameter state: State passed to the action to be executed. 28 | - parameter action: Action to execute recursively. The last parameter passed to the action is used to trigger recursive scheduling of the action, passing in recursive invocation state. 29 | - returns: The disposable object used to cancel the scheduled action (best effort). 30 | */ 31 | public func scheduleRecursive(_ state: State, action: @escaping (_ state: State, _ recurse: (State) -> ()) -> ()) -> Disposable { 32 | let recursiveScheduler = RecursiveImmediateScheduler(action: action, scheduler: self) 33 | 34 | recursiveScheduler.schedule(state) 35 | 36 | return Disposables.create(with: recursiveScheduler.dispose) 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// A type-erased `ObservableType`. 12 | /// 13 | /// It represents a push style sequence. 14 | public class Observable : ObservableType { 15 | /// Type of elements in sequence. 16 | public typealias E = Element 17 | 18 | init() { 19 | #if TRACE_RESOURCES 20 | let _ = Resources.incrementTotal() 21 | #endif 22 | } 23 | 24 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 25 | abstractMethod() 26 | } 27 | 28 | public func asObservable() -> Observable { 29 | return self 30 | } 31 | 32 | deinit { 33 | #if TRACE_RESOURCES 34 | let _ = Resources.decrementTotal() 35 | #endif 36 | } 37 | 38 | // this is kind of ugly I know :( 39 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 40 | 41 | /// Optimizations for map operator 42 | internal func composeMap(_ selector: @escaping (Element) throws -> R) -> Observable { 43 | return Map(source: self, transform: selector) 44 | } 45 | } 46 | 47 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Type that can be converted to observable sequence (`Observer`). 12 | public protocol ObservableConvertibleType { 13 | /// Type of elements in sequence. 14 | associatedtype E 15 | 16 | /// Converts `self` to `Observable` sequence. 17 | /// 18 | /// - returns: Observable sequence that represents `self`. 19 | func asObservable() -> Observable 20 | } 21 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/AddRef.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddRef.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 30/10/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AddRefSink : Sink, ObserverType { 12 | typealias Element = O.E 13 | 14 | override init(observer: O, cancel: Cancelable) { 15 | super.init(observer: observer, cancel: cancel) 16 | } 17 | 18 | func on(_ event: Event) { 19 | switch event { 20 | case .next(_): 21 | forwardOn(event) 22 | case .completed, .error(_): 23 | forwardOn(event) 24 | dispose() 25 | } 26 | } 27 | } 28 | 29 | class AddRef : Producer { 30 | typealias EventHandler = (Event) throws -> Void 31 | 32 | private let _source: Observable 33 | private let _refCount: RefCountDisposable 34 | 35 | init(source: Observable, refCount: RefCountDisposable) { 36 | _source = source 37 | _refCount = refCount 38 | } 39 | 40 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 41 | let releaseDisposable = _refCount.retain() 42 | let sink = AddRefSink(observer: observer, cancel: cancel) 43 | let subscription = Disposables.create(releaseDisposable, _source.subscribeSafe(sink)) 44 | 45 | return (sink: sink, subscription: subscription) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Empty : Producer { 12 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 13 | observer.on(.completed) 14 | return Disposables.create() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Error : Producer { 12 | private let _error: Swift.Error 13 | 14 | init(error: Swift.Error) { 15 | _error = error 16 | } 17 | 18 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 19 | observer.on(.error(_error)) 20 | return Disposables.create() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Never : Producer { 12 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 13 | return Disposables.create() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/Repeat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Repeat.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class RepeatElement : Producer { 12 | fileprivate let _element: Element 13 | fileprivate let _scheduler: ImmediateSchedulerType 14 | 15 | init(element: Element, scheduler: ImmediateSchedulerType) { 16 | _element = element 17 | _scheduler = scheduler 18 | } 19 | 20 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 21 | let sink = RepeatElementSink(parent: self, observer: observer, cancel: cancel) 22 | let subscription = sink.run() 23 | 24 | return (sink: sink, subscription: subscription) 25 | } 26 | } 27 | 28 | class RepeatElementSink : Sink { 29 | typealias Parent = RepeatElement 30 | 31 | private let _parent: Parent 32 | 33 | init(parent: Parent, observer: O, cancel: Cancelable) { 34 | _parent = parent 35 | super.init(observer: observer, cancel: cancel) 36 | } 37 | 38 | func run() -> Disposable { 39 | return _parent._scheduler.scheduleRecursive(_parent._element) { e, recurse in 40 | self.forwardOn(.next(e)) 41 | recurse(e) 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/StartWith.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StartWith.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class StartWith: Producer { 12 | let elements: [Element] 13 | let source: Observable 14 | 15 | init(source: Observable, elements: [Element]) { 16 | self.source = source 17 | self.elements = elements 18 | super.init() 19 | } 20 | 21 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 22 | for e in elements { 23 | observer.on(.next(e)) 24 | } 25 | 26 | return (sink: Disposables.create(), subscription: source.subscribe(observer)) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Implementations/ToArray.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ToArray.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 20/10/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ToArraySink : Sink, ObserverType where O.E == [SourceType] { 12 | typealias Parent = ToArray 13 | 14 | let _parent: Parent 15 | var _list = Array() 16 | 17 | init(parent: Parent, observer: O, cancel: Cancelable) { 18 | _parent = parent 19 | 20 | super.init(observer: observer, cancel: cancel) 21 | } 22 | 23 | func on(_ event: Event) { 24 | switch event { 25 | case .next(let value): 26 | self._list.append(value) 27 | case .error(let e): 28 | forwardOn(.error(e)) 29 | self.dispose() 30 | case .completed: 31 | forwardOn(.next(_list)) 32 | forwardOn(.completed) 33 | self.dispose() 34 | } 35 | } 36 | } 37 | 38 | class ToArray : Producer<[SourceType]> { 39 | let _source: Observable 40 | 41 | init(source: Observable) { 42 | _source = source 43 | } 44 | 45 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == [SourceType] { 46 | let sink = ToArraySink(parent: self, observer: observer, cancel: cancel) 47 | let subscription = _source.subscribe(sink) 48 | return (sink: sink, subscription: subscription) 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Debug.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // MARK: debug 12 | 13 | extension ObservableType { 14 | 15 | /** 16 | Prints received events for all observers on standard output. 17 | 18 | - seealso: [do operator on reactivex.io](http://reactivex.io/documentation/operators/do.html) 19 | 20 | - parameter identifier: Identifier that is printed together with event description to standard output. 21 | - parameter trimOutput: Should output be trimmed to max 40 characters. 22 | - returns: An observable sequence whose events are printed to standard output. 23 | */ 24 | public func debug(_ identifier: String? = nil, trimOutput: Bool = false, file: String = #file, line: UInt = #line, function: String = #function) 25 | -> Observable { 26 | return Debug(source: self, identifier: identifier, trimOutput: trimOutput, file: file, line: line, function: function) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/ObserverType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Supports push-style iteration over an observable sequence. 12 | public protocol ObserverType { 13 | /// The type of elements in sequence that observer can observe. 14 | associatedtype E 15 | 16 | /// Notify observer about sequence event. 17 | /// 18 | /// - parameter event: Event that occured. 19 | func on(_ event: Event) 20 | } 21 | 22 | /// Convenience API extensions to provide alternate next, error, completed events 23 | extension ObserverType { 24 | 25 | /// Convenience method equivalent to `on(.next(element: E))` 26 | /// 27 | /// - parameter element: Next element to send to observer(s) 28 | public final func onNext(_ element: E) { 29 | on(.next(element)) 30 | } 31 | 32 | /// Convenience method equivalent to `on(.completed)` 33 | public final func onCompleted() { 34 | on(.completed) 35 | } 36 | 37 | /// Convenience method equivalent to `on(.error(Swift.Error))` 38 | /// - parameter error: Swift.Error to send to observer(s) 39 | public final func onError(_ error: Swift.Error) { 40 | on(.error(error)) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class AnonymousObserver : ObserverBase { 12 | typealias Element = ElementType 13 | 14 | typealias EventHandler = (Event) -> Void 15 | 16 | private let _eventHandler : EventHandler 17 | 18 | init(_ eventHandler: @escaping EventHandler) { 19 | #if TRACE_RESOURCES 20 | let _ = Resources.incrementTotal() 21 | #endif 22 | _eventHandler = eventHandler 23 | } 24 | 25 | override func onCore(_ event: Event) { 26 | return _eventHandler(event) 27 | } 28 | 29 | #if TRACE_RESOURCES 30 | deinit { 31 | let _ = Resources.decrementTotal() 32 | } 33 | #endif 34 | } 35 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ObserverBase : Disposable, ObserverType { 12 | typealias E = ElementType 13 | 14 | private var _isStopped: AtomicInt = 0 15 | 16 | func on(_ event: Event) { 17 | switch event { 18 | case .next: 19 | if _isStopped == 0 { 20 | onCore(event) 21 | } 22 | case .error, .completed: 23 | 24 | if !AtomicCompareAndSwap(0, 1, &_isStopped) { 25 | return 26 | } 27 | 28 | onCore(event) 29 | } 30 | } 31 | 32 | func onCore(_ event: Event) { 33 | abstractMethod() 34 | } 35 | 36 | func dispose() { 37 | _ = AtomicCompareAndSwap(0, 1, &_isStopped) 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxMutableBox.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/22/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Creates mutable reference wrapper for any type. 12 | class RxMutableBox : CustomDebugStringConvertible { 13 | /// Wrapped value 14 | var value : T 15 | 16 | /// Creates reference wrapper for `value`. 17 | /// 18 | /// - parameter value: Value to wrap. 19 | init (_ value: T) { 20 | self.value = value 21 | } 22 | } 23 | 24 | extension RxMutableBox { 25 | /// - returns: Box description. 26 | var debugDescription: String { 27 | return "MutatingBox(\(self.value))" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. 12 | public class HistoricalScheduler : VirtualTimeScheduler { 13 | 14 | /** 15 | Creates a new historical scheduler with initial clock value. 16 | 17 | - parameter initialClock: Initial value for virtual clock. 18 | */ 19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) { 20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/ImmediateScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImmediateScheduler.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents an object that schedules units of work to run immediately on the current thread. 12 | private class ImmediateScheduler : ImmediateSchedulerType { 13 | 14 | private let _asyncLock = AsyncLock() 15 | 16 | /** 17 | Schedules an action to be executed immediatelly. 18 | 19 | In case `schedule` is called recursively from inside of `action` callback, scheduled `action` will be enqueued 20 | and executed after current `action`. (`AsyncLock` behavior) 21 | 22 | - parameter state: State passed to the action to be executed. 23 | - parameter action: Action to be executed. 24 | - returns: The disposable object used to cancel the scheduled action (best effort). 25 | */ 26 | func schedule(_ state: StateType, action: @escaping (StateType) -> Disposable) -> Disposable { 27 | let disposable = SingleAssignmentDisposable() 28 | _asyncLock.invoke(AnonymousInvocable { 29 | if disposable.isDisposed { 30 | return 31 | } 32 | disposable.setDisposable(action(state)) 33 | }) 34 | 35 | return disposable 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousInvocable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct AnonymousInvocable : InvocableType { 12 | private let _action: () -> () 13 | 14 | init(_ action: @escaping () -> ()) { 15 | _action = action 16 | } 17 | 18 | func invoke() { 19 | _action() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct InvocableScheduledItem : InvocableType { 12 | 13 | let _invocable: I 14 | let _state: I.Value 15 | 16 | init(invocable: I, state: I.Value) { 17 | _invocable = invocable 18 | _state = state 19 | } 20 | 21 | func invoke() { 22 | _invocable.invoke(_state) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol InvocableType { 12 | func invoke() 13 | } 14 | 15 | protocol InvocableWithValueType { 16 | associatedtype Value 17 | 18 | func invoke(_ value: Value) 19 | } 20 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct ScheduledItem 12 | : ScheduledItemType 13 | , InvocableType { 14 | typealias Action = (T) -> Disposable 15 | 16 | private let _action: Action 17 | private let _state: T 18 | 19 | private let _disposable = SingleAssignmentDisposable() 20 | 21 | var isDisposed: Bool { 22 | return _disposable.isDisposed 23 | } 24 | 25 | init(action: @escaping Action, state: T) { 26 | _action = action 27 | _state = state 28 | } 29 | 30 | func invoke() { 31 | _disposable.setDisposable(_action(_state)) 32 | } 33 | 34 | func dispose() { 35 | _disposable.dispose() 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol ScheduledItemType 12 | : Cancelable 13 | , InvocableType { 14 | func invoke() 15 | } 16 | -------------------------------------------------------------------------------- /ifanr/Pods/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Represents an object that is both an observable sequence as well as an observer. 12 | public protocol SubjectType : ObservableType { 13 | /// The type of the observer that represents this subject. 14 | /// 15 | /// Usually this type is type of subject itself, but it doesn't have to be. 16 | associatedtype SubjectObserverType : ObserverType 17 | 18 | /// Returns observer interface for subject. 19 | /// 20 | /// - returns: Observer interface for subject. 21 | func asObserver() -> SubjectObserverType 22 | 23 | } 24 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/ConstraintConfig.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | public typealias ConstraintInterfaceLayoutDirection = UIUserInterfaceLayoutDirection 27 | #else 28 | import AppKit 29 | public typealias ConstraintInterfaceLayoutDirection = NSUserInterfaceLayoutDirection 30 | #endif 31 | 32 | 33 | public struct ConstraintConfig { 34 | 35 | public static var interfaceLayoutDirection: ConstraintInterfaceLayoutDirection = .leftToRight 36 | 37 | } 38 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/ConstraintInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintInsets = UIEdgeInsets 33 | #else 34 | public typealias ConstraintInsets = EdgeInsets 35 | #endif 36 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/ConstraintLayoutGuide.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 9.0, *) 33 | public typealias ConstraintLayoutGuide = UILayoutGuide 34 | #else 35 | public class ConstraintLayoutGuide {} 36 | #endif 37 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/ConstraintLayoutSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 8.0, *) 33 | public typealias ConstraintLayoutSupport = UILayoutSupport 34 | #else 35 | public class ConstraintLayoutSupport {} 36 | #endif 37 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/ConstraintView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintView = UIView 33 | #else 34 | public typealias ConstraintView = NSView 35 | #endif 36 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/UILayoutGuide+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #endif 27 | 28 | 29 | @available(iOS 9.0, *) 30 | public extension ConstraintLayoutGuide { 31 | 32 | public var snp: ConstraintLayoutGuideDSL { 33 | return ConstraintLayoutGuideDSL(guide: self) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /ifanr/Pods/SnapKit/Source/UILayoutSupport+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #endif 27 | 28 | 29 | @available(iOS 8.0, *) 30 | public extension ConstraintLayoutSupport { 31 | 32 | public var snp: ConstraintLayoutSupportDSL { 33 | return ConstraintLayoutSupportDSL(support: self) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/Alamofire-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/Alamofire-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double AlamofireVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/Alamofire.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Alamofire/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 | FMWK 17 | CFBundleShortVersionString 18 | 4.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/MonkeyKing-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MonkeyKing : NSObject 3 | @end 4 | @implementation PodsDummy_MonkeyKing 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/MonkeyKing-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/MonkeyKing-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double MonkeyKingVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char MonkeyKingVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/MonkeyKing.modulemap: -------------------------------------------------------------------------------- 1 | framework module MonkeyKing { 2 | umbrella header "MonkeyKing-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/MonkeyKing/MonkeyKing.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/MonkeyKing 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/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 | FMWK 17 | CFBundleShortVersionString 18 | 8.0.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/Moya-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Moya : NSObject 3 | @end 4 | @implementation PodsDummy_Moya 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/Moya-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/Moya-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double MoyaVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char MoyaVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/Moya.modulemap: -------------------------------------------------------------------------------- 1 | framework module Moya { 2 | umbrella header "Moya-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Moya/Moya.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Moya 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/Alamofire" "$PODS_CONFIGURATION_BUILD_DIR/Result" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 5 | OTHER_LDFLAGS = -framework "Foundation" 6 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Pods-ifanr/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Pods-ifanr/Pods-ifanr-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ifanr : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ifanr 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Pods-ifanr/Pods-ifanr-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double Pods_ifanrVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char Pods_ifanrVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Pods-ifanr/Pods-ifanr.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ifanr { 2 | umbrella header "Pods-ifanr-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/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 | FMWK 17 | CFBundleShortVersionString 18 | 3.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/Result-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Result : NSObject 3 | @end 4 | @implementation PodsDummy_Result 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/Result-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/Result-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double ResultVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char ResultVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/Result.modulemap: -------------------------------------------------------------------------------- 1 | framework module Result { 2 | umbrella header "Result-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/Result/Result.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Result 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | SWIFT_VERSION = 3.0 11 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/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 | FMWK 17 | CFBundleShortVersionString 18 | 3.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/RxSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxSwift : NSObject 3 | @end 4 | @implementation PodsDummy_RxSwift 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/RxSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/RxSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxSwift { 2 | umbrella header "RxSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/RxSwift/RxSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/RxSwift 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/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 | FMWK 17 | CFBundleShortVersionString 18 | 3.0.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/SnapKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SnapKit : NSObject 3 | @end 4 | @implementation PodsDummy_SnapKit 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | 6 | FOUNDATION_EXPORT double SnapKitVersionNumber; 7 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; 8 | 9 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/SnapKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module SnapKit { 2 | umbrella header "SnapKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/SnapKit/SnapKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SnapKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/YYCache-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYCache : NSObject 3 | @end 4 | @implementation PodsDummy_YYCache 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/YYCache-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/YYCache-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "YYCache.h" 6 | #import "YYDiskCache.h" 7 | #import "YYKVStorage.h" 8 | #import "YYMemoryCache.h" 9 | 10 | FOUNDATION_EXPORT double YYCacheVersionNumber; 11 | FOUNDATION_EXPORT const unsigned char YYCacheVersionString[]; 12 | 13 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/YYCache.modulemap: -------------------------------------------------------------------------------- 1 | framework module YYCache { 2 | umbrella header "YYCache-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYCache/YYCache.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYCache 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -l"sqlite3" -framework "CoreFoundation" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/YYImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYImage : NSObject 3 | @end 4 | @implementation PodsDummy_YYImage 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/YYImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/YYImage-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "YYAnimatedImageView.h" 6 | #import "YYFrameImage.h" 7 | #import "YYImage.h" 8 | #import "YYImageCoder.h" 9 | #import "YYSpriteSheetImage.h" 10 | 11 | FOUNDATION_EXPORT double YYImageVersionNumber; 12 | FOUNDATION_EXPORT const unsigned char YYImageVersionString[]; 13 | 14 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/YYImage.modulemap: -------------------------------------------------------------------------------- 1 | framework module YYImage { 2 | umbrella header "YYImage-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYImage/YYImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYImage 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = -l"z" -framework "Accelerate" -framework "AssetsLibrary" -framework "CoreFoundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/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 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.5 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/YYWebImage-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_YYWebImage : NSObject 3 | @end 4 | @implementation PodsDummy_YYWebImage 5 | @end 6 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/YYWebImage-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/YYWebImage-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "YYImageCache.h" 6 | #import "YYWebImage.h" 7 | #import "YYWebImageManager.h" 8 | #import "YYWebImageOperation.h" 9 | #import "CALayer+YYWebImage.h" 10 | #import "MKAnnotationView+YYWebImage.h" 11 | #import "UIButton+YYWebImage.h" 12 | #import "UIImage+YYWebImage.h" 13 | #import "UIImageView+YYWebImage.h" 14 | 15 | FOUNDATION_EXPORT double YYWebImageVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char YYWebImageVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/YYWebImage.modulemap: -------------------------------------------------------------------------------- 1 | framework module YYWebImage { 2 | umbrella header "YYWebImage-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ifanr/Pods/Target Support Files/YYWebImage/YYWebImage.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/YYWebImage 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/YYCache" "$PODS_CONFIGURATION_BUILD_DIR/YYImage" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" 5 | OTHER_LDFLAGS = -framework "Accelerate" -framework "AssetsLibrary" -framework "CoreFoundation" -framework "ImageIO" -framework "MobileCoreServices" -framework "QuartzCore" -framework "UIKit" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /ifanr/Pods/YYCache/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /ifanr/Pods/YYImage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /ifanr/Pods/YYWebImage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 ibireme 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /ifanr/iOSInjectionProject/BundleContents.h: -------------------------------------------------------------------------------- 1 | // 2 | // BundleContents.h 3 | // InjectionBundle 4 | // 5 | // Created by John Holdsworth on 17/01/2012. 6 | // Copyright (c) 2012 John Holdsworth. All rights reserved. 7 | // 8 | 9 | // place any definitions you want available to all injections here 10 | -------------------------------------------------------------------------------- /ifanr/iOSInjectionProject/BundleContents.m: -------------------------------------------------------------------------------- 1 | /* 2 | Generated for Injection of class implementations 3 | */ 4 | 5 | #define INJECTION_NOIMPL 6 | #define INJECTION_BUNDLE InjectionBundle1 7 | 8 | #define INJECTION_ENABLED 9 | #import "/tmp/injectionforxcode/BundleInjection.h" 10 | 11 | #undef _instatic 12 | #define _instatic extern 13 | 14 | #undef _inglobal 15 | #define _inglobal extern 16 | 17 | #undef _inval 18 | #define _inval( _val... ) /* = _val */ 19 | 20 | #import "BundleContents.h" 21 | 22 | extern 23 | #if __cplusplus 24 | "C" { 25 | #endif 26 | int injectionHook(void); 27 | #if __cplusplus 28 | }; 29 | #endif 30 | 31 | @interface InjectionBundle1 : NSObject 32 | @end 33 | @implementation InjectionBundle1 34 | 35 | + (void)load { 36 | Class bundleInjection = NSClassFromString(@"BundleInjection"); 37 | [bundleInjection autoLoadedNotify:0 hook:(void *)injectionHook]; 38 | } 39 | 40 | @end 41 | 42 | int injectionHook() { 43 | NSLog( @"injectionHook():" ); 44 | [InjectionBundle1 load]; 45 | return YES; 46 | } 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /ifanr/iOSInjectionProject/InjectionBundle-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.johnholdsworth.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | BNDL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSHumanReadableCopyright 26 | Copyright © 2012-2014 John Holdsworth. All rights reserved. 27 | NSPrincipalClass 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /ifanr/iOSInjectionProject/InjectionBundle-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'InjectionBundle' target in the 'InjectionBundle' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /ifanr/ifanr.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ifanr/ifanr.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ifanr/ifanr.xcworkspace/xcshareddata/ifanr.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "F6B961C5D3AEA7AF280C28D481FD0C9AFF417FF2", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "BB6E1C15644B557AE8897F107E91C5792924479E" : 0, 8 | "F6B961C5D3AEA7AF280C28D481FD0C9AFF417FF2" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "8E641AEE-1ED2-4DD6-A79A-918150CAA203", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "BB6E1C15644B557AE8897F107E91C5792924479E" : "", 13 | "F6B961C5D3AEA7AF280C28D481FD0C9AFF417FF2" : "ifanr\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "ifanr", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "ifanr\/ifanr.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/lyimin\/TourApp.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "BB6E1C15644B557AE8897F107E91C5792924479E" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/iCodeForever\/ifanr.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "F6B961C5D3AEA7AF280C28D481FD0C9AFF417FF2" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "size" : "29x29", 15 | "idiom" : "iphone", 16 | "filename" : "AppIcon29x29@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "size" : "29x29", 21 | "idiom" : "iphone", 22 | "filename" : "AppIcon29x29@3x.png", 23 | "scale" : "3x" 24 | }, 25 | { 26 | "size" : "40x40", 27 | "idiom" : "iphone", 28 | "filename" : "AppIcon40x40@2x.png", 29 | "scale" : "2x" 30 | }, 31 | { 32 | "size" : "40x40", 33 | "idiom" : "iphone", 34 | "filename" : "AppIcon40x40@3x.png", 35 | "scale" : "3x" 36 | }, 37 | { 38 | "size" : "60x60", 39 | "idiom" : "iphone", 40 | "filename" : "AppIcon60x60@2x.png", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "size" : "60x60", 45 | "idiom" : "iphone", 46 | "filename" : "AppIcon60x60@3x.png", 47 | "scale" : "3x" 48 | } 49 | ], 50 | "info" : { 51 | "version" : 1, 52 | "author" : "xcode" 53 | } 54 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_business_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_business_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_business_bg.imageset/category_article_list_business_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_business_bg.imageset/category_article_list_business_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_car_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_car_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_car_bg.imageset/category_article_list_car_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_car_bg.imageset/category_article_list_car_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_dasheng_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_dasheng_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_dasheng_bg.imageset/category_article_list_dasheng_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_dasheng_bg.imageset/category_article_list_dasheng_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_evaluation_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_evaluation_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_evaluation_bg.imageset/category_article_list_evaluation_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_evaluation_bg.imageset/category_article_list_evaluation_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_interview_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_interview_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_interview_bg.imageset/category_article_list_interview_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_interview_bg.imageset/category_article_list_interview_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_iseed_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_iseed_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_iseed_bg.imageset/category_article_list_iseed_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_iseed_bg.imageset/category_article_list_iseed_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_list_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_list_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_list_bg.imageset/category_article_list_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_list_bg.imageset/category_article_list_list_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_picture_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_picture_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_picture_bg.imageset/category_article_list_picture_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_picture_bg.imageset/category_article_list_picture_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_product_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_product_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_product_bg.imageset/category_article_list_product_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_product_bg.imageset/category_article_list_product_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_shudu_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_shudu_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_shudu_bg.imageset/category_article_list_shudu_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_shudu_bg.imageset/category_article_list_shudu_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_video_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_article_list_video_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_article_list_video_bg.imageset/category_article_list_video_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_article_list_video_bg.imageset/category_article_list_video_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_business_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_business_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_business_bg.imageset/category_menu_business_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_business_bg.imageset/category_menu_business_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_business_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_business_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_business_icon.imageset/category_menu_business_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_business_icon.imageset/category_menu_business_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_car_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_car_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_car_bg.imageset/category_menu_car_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_car_bg.imageset/category_menu_car_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_car_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_car_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_car_icon.imageset/category_menu_car_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_car_icon.imageset/category_menu_car_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_dasheng_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_bg.imageset/category_menu_dasheng_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_bg.imageset/category_menu_dasheng_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_dasheng_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_icon.imageset/category_menu_dasheng_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_dasheng_icon.imageset/category_menu_dasheng_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_evaluation_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_bg.imageset/category_menu_evaluation_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_bg.imageset/category_menu_evaluation_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_evaluation_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_icon.imageset/category_menu_evaluation_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_evaluation_icon.imageset/category_menu_evaluation_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_home_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_home_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_home_bg.imageset/category_menu_home_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_home_bg.imageset/category_menu_home_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_home_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_home_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_home_icon.imageset/category_menu_home_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_home_icon.imageset/category_menu_home_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_interview_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_bg.imageset/category_menu_interview_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_bg.imageset/category_menu_interview_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_interview_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_icon.imageset/category_menu_interview_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_interview_icon.imageset/category_menu_interview_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_iseed_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_bg.imageset/category_menu_iseed_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_bg.imageset/category_menu_iseed_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_iseed_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_icon.imageset/category_menu_iseed_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_iseed_icon.imageset/category_menu_iseed_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_list_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_list_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_list_bg.imageset/category_menu_list_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_list_bg.imageset/category_menu_list_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_list_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_list_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_list_icon.imageset/category_menu_list_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_list_icon.imageset/category_menu_list_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_picture_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_bg.imageset/category_menu_picture_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_bg.imageset/category_menu_picture_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_picture_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_icon.imageset/category_menu_picture_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_picture_icon.imageset/category_menu_picture_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_product_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_product_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_product_bg.imageset/category_menu_product_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_product_bg.imageset/category_menu_product_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_product_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_product_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_product_icon.imageset/category_menu_product_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_product_icon.imageset/category_menu_product_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_shudu_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_bg.imageset/category_menu_shudu_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_bg.imageset/category_menu_shudu_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_shudu_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_icon.imageset/category_menu_shudu_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_shudu_icon.imageset/category_menu_shudu_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_video_bg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_video_bg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_video_bg.imageset/category_menu_video_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_video_bg.imageset/category_menu_video_bg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_video_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "category_menu_video_icon.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Category/category_menu_video_icon.imageset/category_menu_video_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Category/category_menu_video_icon.imageset/category_menu_video_icon.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/heart_selected_false.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "heart_selected_false.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/heart_selected_false.imageset/heart_selected_false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Home/heart_selected_false.imageset/heart_selected_false.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/heart_selected_true.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "heart_selected_true.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/heart_selected_true.imageset/heart_selected_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Home/heart_selected_true.imageset/heart_selected_true.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/ic_dasheng.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_dasheng.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/ic_dasheng.imageset/ic_dasheng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Home/ic_dasheng.imageset/ic_dasheng.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/ic_shudu.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_shudu.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Home/ic_shudu.imageset/ic_shudu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Home/ic_shudu.imageset/ic_shudu.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/appso_header_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "appso_header_background.jpg", 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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/appso_header_background.imageset/appso_header_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/appso_header_background.imageset/appso_header_background.jpg -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/buzz_header_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "buzz_header_background.jpg", 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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/buzz_header_background.imageset/buzz_header_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/buzz_header_background.imageset/buzz_header_background.jpg -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/coolbuy_header_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "coolbuy_header_background.jpg", 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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/coolbuy_header_background.imageset/coolbuy_header_background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/coolbuy_header_background.imageset/coolbuy_header_background.jpg -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_circle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_circle.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_circle.imageset/ic_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/ic_circle.imageset/ic_circle.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_hamburg.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg.imageset/ic_hamburg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg.imageset/ic_hamburg.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_hamburg_red.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg_red.imageset/ic_hamburg_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/ic_hamburg_red.imageset/ic_hamburg_red.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_header_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mind_store_header_background.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_header_background.imageset/mind_store_header_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/mind_store_header_background.imageset/mind_store_header_background.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_false.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mind_store_vote_background_voted_false.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_false.imageset/mind_store_vote_background_voted_false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_false.imageset/mind_store_vote_background_voted_false.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_true.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mind_store_vote_background_voted_true.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_true.imageset/mind_store_vote_background_voted_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/mind_store_vote_background_voted_true.imageset/mind_store_vote_background_voted_true.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_all_presses.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_all_presses.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_all_presses.imageset/tag_all_presses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_all_presses.imageset/tag_all_presses.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_appsolution.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_appsolution.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_appsolution.imageset/tag_appsolution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_appsolution.imageset/tag_appsolution.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_coolbuy.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_coolbuy.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_coolbuy.imageset/tag_coolbuy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_coolbuy.imageset/tag_coolbuy.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_happeningnow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_happeningnow.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_happeningnow.imageset/tag_happeningnow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_happeningnow.imageset/tag_happeningnow.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_latest_press.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_latest_press.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_latest_press.imageset/tag_latest_press.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_latest_press.imageset/tag_latest_press.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_more_columns.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "tag_more_columns.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/HomeView/tag_more_columns.imageset/tag_more_columns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/HomeView/tag_more_columns.imageset/tag_more_columns.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_about.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_about.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_about.imageset/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_about.imageset/ic_about.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_login.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_login.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_login.imageset/ic_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_login.imageset/ic_login.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_profile_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_profile_logo.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_profile_logo.imageset/ic_profile_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_profile_logo.imageset/ic_profile_logo.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_report.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_report.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_report.imageset/ic_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_report.imageset/ic_report.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_search.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_search.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_search.imageset/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_search.imageset/ic_search.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_setting.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_setting.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_setting.imageset/ic_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_setting.imageset/ic_setting.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_start.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_start.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/ic_start.imageset/ic_start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/ic_start.imageset/ic_start.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/launch_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "launch_logo.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/launch_logo.imageset/launch_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/launch_logo.imageset/launch_logo.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/place_holder_image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "place_holder_image.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/place_holder_image.imageset/place_holder_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/place_holder_image.imageset/place_holder_image.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/profile_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "profile_background.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/Menu/profile_background.imageset/profile_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/Menu/profile_background.imageset/profile_background.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_comment.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_mind_store_comment.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_comment.imageset/ic_mind_store_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_comment.imageset/ic_mind_store_comment.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_like.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_mind_store_like.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_like.imageset/ic_mind_store_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/MindStoreDetail/ic_mind_store_like.imageset/ic_mind_store_like.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/mind_store_comment_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mind_store_comment_background.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/mind_store_comment_background.imageset/mind_store_comment_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/MindStoreDetail/mind_store_comment_background.imageset/mind_store_comment_background.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/place_holder_avatar.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "place_holder_avatar.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/MindStoreDetail/place_holder_avatar.imageset/place_holder_avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/MindStoreDetail/place_holder_avatar.imageset/place_holder_avatar.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_article_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_article_back.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_article_back.imageset/ic_article_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_article_back.imageset/ic_article_back.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_back.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_back.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_back.imageset/ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_back.imageset/ic_back.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_close.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_close.imageset/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_close.imageset/ic_close.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_comment_bar_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_comment_bar_share.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_comment_bar_share.imageset/ic_comment_bar_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_comment_bar_share.imageset/ic_comment_bar_share.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_refresh.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_refresh.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_refresh.imageset/ic_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_refresh.imageset/ic_refresh.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_share.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_share.imageset/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_share.imageset/ic_share.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_system_browser.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_system_browser.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_system_browser.imageset/ic_system_browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/NewsFlashDetail/ic_system_browser.imageset/ic_system_browser.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_black.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "comment_rating_down_black.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_black.imageset/comment_rating_down_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_black.imageset/comment_rating_down_black.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_grey.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "comment_rating_down_grey.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_grey.imageset/comment_rating_down_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_down_grey.imageset/comment_rating_down_grey.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_grey.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "comment_rating_up_grey.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_grey.imageset/comment_rating_up_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_grey.imageset/comment_rating_up_grey.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "comment_rating_up_red.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_red.imageset/comment_rating_up_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/comments/comment_rating_up_red.imageset/comment_rating_up_red.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_comment.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment.imageset/ic_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment.imageset/ic_comment.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_false.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_comment_bar_like_false.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_false.imageset/ic_comment_bar_like_false.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_false.imageset/ic_comment_bar_like_false.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_true.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_comment_bar_like_true.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_true.imageset/ic_comment_bar_like_true.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/PlayingZhiDetail/ic_comment_bar_like_true.imageset/ic_comment_bar_like_true.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/ic_dialog_share.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_dialog_share.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/ic_dialog_share.imageset/ic_dialog_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/share/ic_dialog_share.imageset/ic_dialog_share.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "share_more.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_more.imageset/share_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/share/share_more.imageset/share_more.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_wechat.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "share_wechat.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_wechat.imageset/share_wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/share/share_wechat.imageset/share_wechat.png -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_wechat_moment.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "share_wechat_moment.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 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Assets.xcassets/share/share_wechat_moment.imageset/share_wechat_moment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Assets.xcassets/share/share_wechat_moment.imageset/share_wechat_moment.png -------------------------------------------------------------------------------- /ifanr/ifanr/Constants/Constant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Constant.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/6/30. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct UIConstant { 12 | // 屏幕宽高 13 | static let IPHONE6_WIDTH : CGFloat = 375 14 | static let IPHONE6_HEIGHT : CGFloat = 667 15 | static let IPHONE5_WIDTH : CGFloat = 320 16 | static let IPHONE5_HEIGHT : CGFloat = 568 17 | static let IPHONE_PROPORTION = IPHONE6_WIDTH/IPHONE6_HEIGHT 18 | static let SCREEN_WIDTH : CGFloat = UIScreen.main.bounds.width 19 | static let SCREEN_HEIGHT : CGFloat = UIScreen.main.bounds.height 20 | // 导航栏高度 21 | static let UI_NAV_HEIGHT : CGFloat = 64 22 | // tab高度 23 | static let UI_TAB_HEIGHT : CGFloat = 49 24 | // 字体 25 | static let UI_FONT_12 : UIFont = UIFont.systemFont(ofSize: 12) 26 | static let UI_FONT_13 : UIFont = UIFont.systemFont(ofSize: 13) 27 | static let UI_FONT_14 : UIFont = UIFont.systemFont(ofSize: 14) 28 | static let UI_FONT_16 : UIFont = UIFont.systemFont(ofSize: 16) 29 | static let UI_FONT_20 : UIFont = UIFont.systemFont(ofSize: 20) 30 | static let UI_FONT_22 : UIFont = UIFont.systemFont(ofSize: 22) 31 | // 间距 32 | static let UI_MARGIN_5 : CGFloat = 5 33 | static let UI_MARGIN_10 : CGFloat = 10 34 | static let UI_MARGIN_12 : CGFloat = 12 35 | static let UI_MARGIN_15 : CGFloat = 15 36 | static let UI_MARGIN_20 : CGFloat = 20 37 | 38 | // 颜色 首页灰色 39 | static let UI_COLOR_GrayTheme: UIColor = UIColor(red: 155/255.0, green: 155/255.0, blue: 155/255.0, alpha: 1) 40 | static let UI_COLOR_RedTheme: UIColor = UIColor(red: 221/255.0, green: 64/255.0, blue: 43/255.0, alpha: 1) 41 | } 42 | -------------------------------------------------------------------------------- /ifanr/ifanr/Controllers/NewFeatureController/NewFeatureController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NewFeatureController.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/22. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import AVFoundation 11 | 12 | class NewFeatureController: UIViewController { 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // 监听播放完成 16 | NotificationCenter.default.addObserver(self, selector: #selector(NewFeatureController.playbackFinished), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil) 17 | 18 | let playerLayer = AVPlayerLayer(player: self.player) 19 | playerLayer.frame = self.view.bounds 20 | self.view.layer.addSublayer(playerLayer) 21 | 22 | self.player.play() 23 | } 24 | override var prefersStatusBarHidden : Bool { 25 | return true 26 | } 27 | 28 | deinit { 29 | NotificationCenter.default.removeObserver(self) 30 | } 31 | 32 | func playbackFinished() { 33 | self.dismiss(animated: false, completion: nil) 34 | self.view.window?.rootViewController = IFBaseNavController(rootViewController: MainViewController()) 35 | } 36 | 37 | 38 | fileprivate lazy var player: AVPlayer = { 39 | let player = AVPlayer(playerItem: self.playerItem) 40 | return player 41 | }() 42 | 43 | fileprivate lazy var playerItem: AVPlayerItem = { 44 | let path = Bundle.main.path(forResource: "ifanrVideo", ofType: "mp4") 45 | let playerItem = AVPlayerItem(url: URL(fileURLWithPath: path!)) 46 | return playerItem 47 | }() 48 | 49 | } 50 | -------------------------------------------------------------------------------- /ifanr/ifanr/Controllers/SearchController/SearchViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchViewController.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/8/5. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class SearchViewController: UIViewController { 12 | 13 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/NSMutableAttributedString+ifanr.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSMutableAttributedString+ifanr.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/7. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension NSMutableAttributedString { 12 | /** 13 | 全部设置行间距 5 14 | */ 15 | class func attribute(_ text: String) -> NSMutableAttributedString { 16 | let attribute = NSMutableAttributedString(string: text) 17 | let paragraphStyle = NSMutableParagraphStyle() 18 | paragraphStyle.lineSpacing = 5 19 | attribute.addAttribute(NSParagraphStyleAttributeName, value: paragraphStyle, range: NSRange(location: 0, length: text.length)) 20 | 21 | return attribute 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/Reusable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Reusable.swift 3 | // EyepetizerApp 4 | // 5 | // Created by 梁亦明 on 16/3/16. 6 | // Copyright © 2016年 xiaoming. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | public protocol Reusable: class { 12 | static var reuseIdentifier: String { get } 13 | } 14 | 15 | extension Reusable { 16 | static var reuseIdentifier : String { 17 | return String(describing: Self.self) 18 | } 19 | } 20 | 21 | // MARK: - 扩展UITableView, 不用传入identifier参数 identifier参数为类名 22 | public extension UITableView { 23 | func dequeueReusableCell() -> T? { 24 | return self.dequeueReusableCell(withIdentifier: T.reuseIdentifier) as! T? 25 | } 26 | } 27 | 28 | public extension UICollectionView { 29 | 30 | func dequeueReusableCell(_ indexPath: IndexPath) -> T { 31 | return self.dequeueReusableCell(withReuseIdentifier: T.reuseIdentifier, for: indexPath) as! T 32 | } 33 | 34 | func registerClass(_: T.Type) where T: Reusable { 35 | self.register(T.self, forCellWithReuseIdentifier: T.reuseIdentifier) 36 | } 37 | 38 | func registerClass(_: T.Type, forSupplementaryViewOfKind: String) where T: Reusable { 39 | return self.register(T.self, forSupplementaryViewOfKind: forSupplementaryViewOfKind, withReuseIdentifier: T.reuseIdentifier) 40 | } 41 | 42 | func dequeueReusableSupplementaryViewOfKind(_ elementKind: String, indexPath: IndexPath) -> T where T: Reusable { 43 | return self.dequeueReusableSupplementaryView(ofKind: elementKind, withReuseIdentifier: T.reuseIdentifier, for: indexPath) as! T 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/String+ifanr.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+ifanr.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/7. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String { 12 | /// 获取字符串长度 13 | var length : Int { 14 | return characters.count 15 | } 16 | 17 | /** 18 | 获得符合正则表达式的字符串集合 19 | - parameter pattern: 正则表达式 20 | - returns: 字符串集合 21 | */ 22 | func getSuitableString(_ pattern: String) -> [String]{ 23 | 24 | do { 25 | let pattern = pattern 26 | let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.caseInsensitive) 27 | let res = regex.matches(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count)) 28 | var subStrArray = [String]() 29 | for checkingRes in res { 30 | let subStr = (self as NSString).substring(with: checkingRes.range) 31 | subStrArray.append(subStr) 32 | } 33 | return subStrArray 34 | } 35 | catch { 36 | print(error) 37 | } 38 | 39 | return [String]() 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/UIFont+ifanr.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIFont+ifanr.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/4. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIFont { 12 | /** 13 | 自定义字体 14 | */ 15 | class func customFont_DINPro(fontSize size : CGFloat) -> UIFont { 16 | return UIFont(name: "DINPro", size: size)! 17 | } 18 | 19 | /** 20 | 自定义字体 -- 粗体 21 | */ 22 | class func customFont_FZLTZCHJW(fontSize size : CGFloat) -> UIFont { 23 | return UIFont(name: "FZLanTingHeiS-DB1-GB", size: size)! 24 | } 25 | 26 | /** 27 | 自定义字体 - 细体 28 | */ 29 | class func customFont_FZLTXIHJW(fontSize size : CGFloat) -> UIFont { 30 | return UIFont(name: "FZLanTingHeiS-L-GB", size: size)! 31 | } 32 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/UIImageView+ifanr.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+ifanr.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/3. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UIImageView { 12 | /** 13 | 异步请求网络图片 14 | */ 15 | func if_setImage(_ imageURL: URL!) { 16 | self.yy_setImage(with: imageURL, placeholder: UIImage(named: "place_holder_image"), options: [.setImageWithFadeAnimation, .progressiveBlur], completion: nil) 17 | } 18 | 19 | func if_setAvatarImage(_ url: URL!) { 20 | self.yy_setImage(with: url, placeholder: UIImage(named: "place_holder_avatar"), options: [.setImageWithFadeAnimation, .progressiveBlur], completion: nil) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/UILabel+IF.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+IF.swift 3 | // ifanr 4 | // 5 | // Created by sys on 16/7/7. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UILabel { 12 | 13 | class func setAttributText(_ content: String?, lineSpcae: CGFloat) -> NSAttributedString { 14 | let attrs = NSMutableAttributedString(string: content!) 15 | let paragraphStyle = NSMutableParagraphStyle() 16 | 17 | paragraphStyle.lineSpacing = lineSpcae 18 | paragraphStyle.firstLineHeadIndent = 0.0; 19 | paragraphStyle.hyphenationFactor = 0.0; 20 | paragraphStyle.paragraphSpacingBefore = 0.0; 21 | 22 | attrs.addAttribute(NSParagraphStyleAttributeName, 23 | value: paragraphStyle, 24 | range: NSMakeRange(0, (content!.characters.count))) 25 | 26 | return attrs 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/UITableView+ifanr.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITableVIew+ifanr.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/8/2. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UITableView { 12 | func reloadData(_ completion:@escaping ()->()) { 13 | UIView.animate(withDuration: 0, animations: { 14 | self.reloadData() 15 | }, completion: { _ in 16 | self.isHidden = true 17 | completion() 18 | self.isHidden = false 19 | }) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ifanr/ifanr/Extension/UIViewController+IF.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+IF.swift 3 | // ifanr 4 | // 5 | // Created by sys on 16/7/21. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension UIViewController { 12 | 13 | func showProgress () { 14 | let progressView = UIActivityIndicatorView() 15 | progressView.activityIndicatorViewStyle = .gray 16 | progressView.hidesWhenStopped = true 17 | progressView.tag = 500 18 | self.view.addSubview(progressView) 19 | 20 | progressView.snp.makeConstraints { (make) in 21 | make.center.equalTo(self.view) 22 | make.height.width.equalTo(20) 23 | } 24 | 25 | progressView.startAnimating() 26 | } 27 | 28 | func hiddenProgress() { 29 | for view in self.view.subviews { 30 | if view.tag == 500 { 31 | let indicatorView : UIActivityIndicatorView = view as! UIActivityIndicatorView 32 | indicatorView.stopAnimating() 33 | indicatorView.removeFromSuperview() 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /ifanr/ifanr/Models/Initable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Initable.swift 3 | // ifanr 4 | // 5 | // Created by sys on 16/8/13. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | public protocol Initable { 12 | init(dict: NSDictionary) 13 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Models/MainModel/TableHeaderModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TableHeaderModel.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/7/19. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let TableHeaderModelArray = [ 12 | TableHeaderModel(backImage: UIImage(named: "buzz_header_background")!, title: "快讯", detail: "最新的资讯快报", tagImage: UIImage(named: "tag_happeningnow")!), 13 | TableHeaderModel(backImage: UIImage(named: "coolbuy_header_background")!, title: "玩物志", detail: "值得买的未来生活", tagImage: UIImage(named: "tag_coolbuy")!), 14 | TableHeaderModel(backImage: UIImage(named: "appso_header_background")!, title: "AppSo", detail: "智能手机更好用的秘密", tagImage: UIImage(named: "tag_appsolution")!), 15 | TableHeaderModel(backImage: UIImage(named: "mind_store_header_background")!,title: "MindStore", detail: "在这里发现最好的产品和想法", tagImage: UIImage(named: "tag_latest_press")!) 16 | ] 17 | 18 | struct TableHeaderModel { 19 | let backImage: UIImage 20 | let title: String 21 | let detail: String 22 | let tagImage: UIImage 23 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Models/MenuModel/MenuTabModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainTabModel.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/6/30. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | struct MenuTabModel { 12 | let image: UIImage 13 | let title: String 14 | } 15 | 16 | let MenuTabItems = [ 17 | MenuTabModel(image: UIImage(named: "ic_login")!, title: "马上登录"), 18 | MenuTabModel(image: UIImage(named: "ic_report")!, title: "寻求报道"), 19 | MenuTabModel(image: UIImage(named: "ic_about")!, title: "关于爱范儿") 20 | ] 21 | -------------------------------------------------------------------------------- /ifanr/ifanr/Models/SettingModel/SettingModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingModel.swift 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/8/5. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let SettingModelArray = [ 12 | SettingModel(type: .detailTitle, title: nil, detail: "常用设置", isSwitch: false, isImage: false), 13 | SettingModel(type: .switch, title: "无图环境", detail: "非Wi-Fi环境下不加载图片", isSwitch: true, isImage: false), 14 | SettingModel(type: .default, title: "清除缓存", detail: "已缓存0M", isSwitch: false, isImage: false), 15 | SettingModel(type: .image, title: "给我们好评", detail: nil, isSwitch: false, isImage: true) 16 | ] 17 | 18 | 19 | struct SettingModel { 20 | let type: SettingCellType 21 | let title: String? 22 | let detail: String? 23 | let isSwitch: Bool 24 | let isImage: Bool 25 | } 26 | -------------------------------------------------------------------------------- /ifanr/ifanr/Other/Font/DINPro-Medium.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Other/Font/DINPro-Medium.TTF -------------------------------------------------------------------------------- /ifanr/ifanr/Other/Font/FZLTXIHJW--GB1-0.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Other/Font/FZLTXIHJW--GB1-0.TTF -------------------------------------------------------------------------------- /ifanr/ifanr/Other/Font/FZLTZCHJW--GB1-0.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Other/Font/FZLTZCHJW--GB1-0.TTF -------------------------------------------------------------------------------- /ifanr/ifanr/Other/Lib/YYFPSLabel/YYFPSLabel.h: -------------------------------------------------------------------------------- 1 | // 2 | // YYFPSLabel.h 3 | // YYKitExample 4 | // 5 | // Created by ibireme on 15/9/3. 6 | // Copyright (c) 2015 ibireme. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | Show Screen FPS... 13 | 14 | The maximum fps in OSX/iOS Simulator is 60.00. 15 | The maximum fps on iPhone is 59.97. 16 | The maxmium fps on iPad is 60.0. 17 | */ 18 | @interface YYFPSLabel : UILabel 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /ifanr/ifanr/Other/Utils/ShareSDKUtil.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ShareSDKUtil.swift 3 | // ifanr 4 | // 5 | // Created by sys on 16/7/30. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class ShareSDKUtil: NSObject { 12 | 13 | 14 | 15 | } -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/1.gif -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/2.gif -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/3.gif -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/4.gif -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/5.gif -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/controllerNavgation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/controllerNavgation.png -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/ifanrVideo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/ifanrVideo.mp4 -------------------------------------------------------------------------------- /ifanr/ifanr/Resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iCodeForever/ifanr/2e5dbb2a13e63c45eae65f000049ef58f977cd93/ifanr/ifanr/Resources/logo.png -------------------------------------------------------------------------------- /ifanr/ifanr/Views/DetailsView/CommentsCellResuable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // commentsCellResuable.swift 3 | // ifanr 4 | // 5 | // Created by sys on 16/8/7. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol commentsCellResuable: class { 12 | 13 | } 14 | 15 | extension commentsCellResuable where Self: UITableViewCell { 16 | 17 | } -------------------------------------------------------------------------------- /ifanr/ifanr/ifanr-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // ifanr-Bridging-Header.h 3 | // ifanr 4 | // 5 | // Created by 梁亦明 on 16/6/29. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "YYFPSLabel.h" 11 | 12 | //#import 13 | //#import 14 | //微信SDK头文件 15 | //#import "WXApi.h" 16 | -------------------------------------------------------------------------------- /ifanr/ifanrTests/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 | -------------------------------------------------------------------------------- /ifanr/ifanrTests/ifanrTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ifanrTests.swift 3 | // ifanrTests 4 | // 5 | // Created by dubinyuan on 16/6/29. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | //@testable import ifanr 11 | 12 | class ifanrTests: 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 | <<<<<<< HEAD 32 | self.mease // Put the code you want to measure the time of here. 33 | ======= 34 | self.measure { 35 | // Put the code you want to measure the time of here. 36 | >>>>>>> b18bd8c21aabb1c63e51708b735d2a09f40b6baf 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /ifanr/ifanrUITests/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 | -------------------------------------------------------------------------------- /ifanr/ifanrUITests/ifanrUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ifanrUITests.swift 3 | // ifanrUITests 4 | // 5 | // Created by dubinyuan on 16/6/29. 6 | // Copyright © 2016年 ifanrOrg. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class ifanrUITests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | 18 | // In UI tests it is usually best to stop immediately when a failure occurs. 19 | continueAfterFailure = false 20 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. 21 | XCUIApplication().launch() 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | override func tearDown() { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | super.tearDown() 29 | } 30 | 31 | func testExample() { 32 | // Use recording to get started writing UI tests. 33 | // Use XCTAssert and related functions to verify your tests produce the correct results. 34 | } 35 | 36 | } 37 | --------------------------------------------------------------------------------