Showing preview only (503K chars total). Download the full file or copy to clipboard to get everything.
Repository: CoderJackyHuang/HYBHelperKit
Branch: master
Commit: c574b99020a4
Files: 150
Total size: 459.0 KB
Directory structure:
gitextract_grqcoj_k/
├── .travis.yml
├── HYBHelperKit/
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets/
│ │ └── AppIcon.appiconset/
│ │ └── Contents.json
│ ├── Base.lproj/
│ │ └── LaunchScreen.storyboard
│ ├── Info.plist
│ ├── TestViewController1.h
│ ├── TestViewController1.m
│ ├── ViewController.h
│ ├── ViewController.m
│ └── main.m
├── HYBHelperKit.podspec
├── HYBHelperKit.xcodeproj/
│ ├── project.pbxproj
│ ├── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata/
│ │ └── huangyibiao.xcuserdatad/
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata/
│ └── huangyibiao.xcuserdatad/
│ ├── xcdebugger/
│ │ └── Breakpoints_v2.xcbkptlist
│ └── xcschemes/
│ ├── HYBHelperKit.xcscheme
│ └── xcschememanagement.plist
├── HYBHelperKit.xcworkspace/
│ ├── contents.xcworkspacedata
│ └── xcuserdata/
│ └── huangyibiao.xcuserdatad/
│ ├── UserInterfaceState.xcuserstate
│ └── xcdebugger/
│ └── Breakpoints_v2.xcbkptlist
├── HYBHelperKitSources/
│ ├── HYBCommonKit.h
│ ├── HYBCommonKit.m
│ ├── HYBHelperBlocksKit.h
│ ├── HYBHelperKit.h
│ ├── HYBHelperKitBaseController.h
│ ├── HYBHelperKitBaseController.m
│ ├── HYBHelperKitBaseURLController.h
│ ├── HYBHelperKitBaseURLController.m
│ ├── HYBHelperKitTestEntranceController.h
│ ├── HYBHelperKitTestEntranceController.m
│ ├── HYBHelperMasonryMaker.h
│ ├── HYBHelperUIKit.h
│ ├── NSArray+HYBHelperKit.h
│ ├── NSArray+HYBHelperKit.m
│ ├── NSDate+HYBHelperKit.h
│ ├── NSDate+HYBHelperKit.m
│ ├── NSDictionary+HYBHelperKit.h
│ ├── NSDictionary+HYBHelperKit.m
│ ├── NSFileManager+HYBHelperKit.h
│ ├── NSFileManager+HYBHelperKit.m
│ ├── NSMutableArray+HYBHelperKit.h
│ ├── NSMutableArray+HYBHelperKit.m
│ ├── NSMutableDictionary+HYBHelperKit.h
│ ├── NSMutableDictionary+HYBHelperKit.m
│ ├── NSNumber+HYBHelperKit.h
│ ├── NSNumber+HYBHelperKit.m
│ ├── NSObject+HYBHelperKit.h
│ ├── NSObject+HYBHelperKit.m
│ ├── NSString+HYBHelperKit.h
│ ├── NSString+HYBHelperKit.m
│ ├── NSTimer+HYBHelperKit.h
│ ├── NSTimer+HYBHelperKit.m
│ ├── NSUserDefaults+HYBHelperKit.h
│ ├── NSUserDefaults+HYBHelperKit.m
│ ├── UIActionSheet+HYBHelperKit.h
│ ├── UIActionSheet+HYBHelperKit.m
│ ├── UIAlertView+HYBHelperKit.h
│ ├── UIAlertView+HYBHelperKit.m
│ ├── UIButton+HYBHelperBlockKit.h
│ ├── UIButton+HYBHelperBlockKit.m
│ ├── UICollectionView+HYBMaonsryKit.h
│ ├── UICollectionView+HYBMaonsryKit.m
│ ├── UIColor+HYBHelperKitUIKit.h
│ ├── UIColor+HYBHelperKitUIKit.m
│ ├── UIControl+HYBHelperBlockKit.h
│ ├── UIControl+HYBHelperBlockKit.m
│ ├── UIDevice+HYBHelperKitUIKit.h
│ ├── UIDevice+HYBHelperKitUIKit.m
│ ├── UIGestureRecognizer+HYBHelperBlockKit.h
│ ├── UIGestureRecognizer+HYBHelperBlockKit.m
│ ├── UIImageView+HYBMasonryKit.h
│ ├── UIImageView+HYBMasonryKit.m
│ ├── UILabel+HYBMasonryKit.h
│ ├── UILabel+HYBMasonryKit.m
│ ├── UIScrollView+HYBMasonryKit.h
│ ├── UIScrollView+HYBMasonryKit.m
│ ├── UITableView+HYBMasonryKit.h
│ ├── UITableView+HYBMasonryKit.m
│ ├── UITextField+HYBMasonryKit.h
│ ├── UITextField+HYBMasonryKit.m
│ ├── UIView+HYBHelperBlockKit.h
│ ├── UIView+HYBHelperBlockKit.m
│ ├── UIView+HYBHelperKitUIKit.h
│ ├── UIView+HYBHelperKitUIKit.m
│ ├── UIView+HYBMasonryKit.h
│ ├── UIView+HYBMasonryKit.m
│ ├── UIWebView+HYBMasonryKit.h
│ └── UIWebView+HYBMasonryKit.m
├── HYBHelperKitTests/
│ ├── ArrayTests.m
│ ├── DictionaryTests.m
│ ├── HYBHelperKitTests.m
│ ├── Info.plist
│ ├── NSObjectTests.m
│ ├── NSStringTests.m
│ ├── NSTimerTests.m
│ └── NSUserDefaultsTests.m
├── LICENSE
├── Podfile
├── Pods/
│ ├── Masonry/
│ │ ├── LICENSE
│ │ ├── Masonry/
│ │ │ ├── MASCompositeConstraint.h
│ │ │ ├── MASCompositeConstraint.m
│ │ │ ├── MASConstraint+Private.h
│ │ │ ├── MASConstraint.h
│ │ │ ├── MASConstraint.m
│ │ │ ├── MASConstraintMaker.h
│ │ │ ├── MASConstraintMaker.m
│ │ │ ├── MASLayoutConstraint.h
│ │ │ ├── MASLayoutConstraint.m
│ │ │ ├── MASUtilities.h
│ │ │ ├── MASViewAttribute.h
│ │ │ ├── MASViewAttribute.m
│ │ │ ├── MASViewConstraint.h
│ │ │ ├── MASViewConstraint.m
│ │ │ ├── Masonry.h
│ │ │ ├── NSArray+MASAdditions.h
│ │ │ ├── NSArray+MASAdditions.m
│ │ │ ├── NSArray+MASShorthandAdditions.h
│ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h
│ │ │ ├── NSLayoutConstraint+MASDebugAdditions.m
│ │ │ ├── View+MASAdditions.h
│ │ │ ├── View+MASAdditions.m
│ │ │ ├── View+MASShorthandAdditions.h
│ │ │ ├── ViewController+MASAdditions.h
│ │ │ └── ViewController+MASAdditions.m
│ │ └── README.md
│ ├── Pods.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── xcuserdata/
│ │ └── huangyibiao.xcuserdatad/
│ │ └── xcschemes/
│ │ ├── Masonry.xcscheme
│ │ ├── Pods-HYBHelperKit.xcscheme
│ │ ├── Pods-HYBHelperKitTests.xcscheme
│ │ └── xcschememanagement.plist
│ └── Target Support Files/
│ ├── Masonry/
│ │ ├── Masonry-dummy.m
│ │ ├── Masonry-prefix.pch
│ │ └── Masonry.xcconfig
│ ├── Pods-HYBHelperKit/
│ │ ├── Pods-HYBHelperKit-acknowledgements.markdown
│ │ ├── Pods-HYBHelperKit-acknowledgements.plist
│ │ ├── Pods-HYBHelperKit-dummy.m
│ │ ├── Pods-HYBHelperKit-frameworks.sh
│ │ ├── Pods-HYBHelperKit-resources.sh
│ │ ├── Pods-HYBHelperKit.debug.xcconfig
│ │ └── Pods-HYBHelperKit.release.xcconfig
│ └── Pods-HYBHelperKitTests/
│ ├── Pods-HYBHelperKitTests-acknowledgements.markdown
│ ├── Pods-HYBHelperKitTests-acknowledgements.plist
│ ├── Pods-HYBHelperKitTests-dummy.m
│ ├── Pods-HYBHelperKitTests-frameworks.sh
│ ├── Pods-HYBHelperKitTests-resources.sh
│ ├── Pods-HYBHelperKitTests.debug.xcconfig
│ └── Pods-HYBHelperKitTests.release.xcconfig
├── README.md
└── codecov.yml
================================================
FILE CONTENTS
================================================
================================================
FILE: .travis.yml
================================================
language: objective-c
xcode_workspace: HYBHelperkit.xcworkspace
xcode_scheme: HYBHelperKit
script:
- date
================================================
FILE: HYBHelperKit/AppDelegate.h
================================================
//
// AppDelegate.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, copy) NSString *baseURL;
@end
================================================
FILE: HYBHelperKit/AppDelegate.m
================================================
//
// AppDelegate.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "AppDelegate.h"
#import "HYBHelperKit.h"
#import "ViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:kScreenBounds];
self.window.backgroundColor = kWhiteColor;
BOOL product = NO;
if (!product) {
HYBHelperKitBaseURLController *vc = [HYBHelperKitBaseURLController createWithBaseURLs:^NSArray *{
return @[@"http://101.200.209.244",
@"http://www.huangyibiao.com",
];
} onCallback:^(NSString *result) {
self.baseURL = result;
// 选好base url后,修改root window
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:[ViewController new]];
self.window.rootViewController = nav;
}];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;
} else {
//
}
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
================================================
FILE: HYBHelperKit/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
================================================
FILE: HYBHelperKit/Base.lproj/LaunchScreen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15C47a" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
================================================
FILE: HYBHelperKit/Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
</dict>
</plist>
================================================
FILE: HYBHelperKit/TestViewController1.h
================================================
//
// TestViewController1.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/9.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "HYBHelperKitBaseController.h"
@interface TestViewController1 : HYBHelperKitBaseController
@end
================================================
FILE: HYBHelperKit/TestViewController1.m
================================================
//
// TestViewController1.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/9.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "TestViewController1.h"
@implementation TestViewController1
- (void)viewDidLoad {
[super viewDidLoad];
// [self hyb_setNavTitle:@"测试1"];
// [self hyb_setNavTitle:@"Test2" rightTitle:@"Right button" rightBlock:^(UIButton *sender) {
// NSLog(@"clicked");
// }];
// [self.hyb_rightButtonItem setTitleColor:kBlueColor forState:UIControlStateNormal];
// 非系统返回按钮
kWeakObject(self);
[self hyb_setNavLeftButtonTitle:@"Back" onCliked:^(UIButton *sender) {
[weakObject.navigationController popViewControllerAnimated:YES];
}];
[self.hyb_leftButtonItem setTitleColor:kBlueColor forState:UIControlStateNormal];
// 一行搞定导航条
[self hyb_setNavTitle:@"Test1" rightTitles:@[@"btton1", @"button2"] rightBlock:^(NSUInteger index, UIButton *sender) {
NSLog(@"clicked at index: %ld", index);
}];
[self.hyb_rightButtonItems enumerateObjectsUsingBlock:^(UIButton * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
[obj setTitleColor:kPurpleColor forState:UIControlStateNormal];
}];
}
@end
================================================
FILE: HYBHelperKit/ViewController.h
================================================
//
// ViewController.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
================================================
FILE: HYBHelperKit/ViewController.m
================================================
//
// ViewController.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "ViewController.h"
#import "HYBHelperKit.h"
#import "TestViewController1.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = kWhiteColor;
UIButton *button = [UIButton hyb_buttonWithTitle:@"enter to test" superView:self.view constraints:^(MASConstraintMaker *make) {
make.left.mas_offset(20);
make.right.mas_offset(-20);
make.height.mas_offset(50);
make.top.mas_offset(80);
} touchUp:^(UIButton *sender) {
[self onEnterToTestCenter:sender];
}];
[button setBackgroundColor:kOrangeColor];
[button setTitleColor:kWhiteColor forState:UIControlStateNormal];
}
- (IBAction)onEnterToTestCenter:(id)sender {
HYBHelperKitTestEntranceController *vc = [[HYBHelperKitTestEntranceController alloc] initWithItems:^NSArray *{
return @[[HYBHelperKitTestEntranceModel modelWithClass:[TestViewController1 class] title:@"Test1"],
[HYBHelperKitTestEntranceModel modelWithClass:[UIViewController class] title:@"Test2"]
];
}];
[self.navigationController pushViewController:vc animated:YES];
}
@end
================================================
FILE: HYBHelperKit/main.m
================================================
//
// main.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
================================================
FILE: HYBHelperKit.podspec
================================================
Pod::Spec.new do |s|
s.name = "HYBHelperKit"
s.version = "0.2.0"
s.summary = "日常开发必不可少的神器之一,UIBlockKit、UIMakerKit、UIHelperKit、CommonKit、FoundationKit、Controllers、Constants等集于一身的神器!"
s.description = <<-DESC
日常开发必不可少的神器之一,UIBlockKit、UIMakerKit、UIHelperKit、CommonKit、FoundationKit、Controllers等集于一身的神器,简化日常开发,提高开发效率!
DESC
s.homepage = "https://github.com/CoderJackyHuang/HYBHelperKit"
s.license = "MIT"
s.author = { "huangyibiao" => "huangyibiao@163.com" }
s.social_media_url = "http://www.huangyibiao.com/"
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/CoderJackyHuang/HYBHelperKit.git", :tag => "v#{s.version}" }
s.source_files = "HYBHelperKitSources/*"
#s.public_header_files = 'HYBHelperKitSources/HYBHelperKit.h'
s.requires_arc = true
s.dependency "Masonry", "~> 1.0.1"
end
================================================
FILE: HYBHelperKit.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
5EE55DF079058957C1D7C04F /* libPods-HYBHelperKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */; };
6920F68B1D320E9600D89D07 /* TestViewController1.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F68A1D320E9600D89D07 /* TestViewController1.m */; };
6920F84A1D3351DB00D89D07 /* HYBCommonKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */; };
6920F84B1D3351DB00D89D07 /* HYBHelperKitBaseController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */; };
6920F84C1D3351DB00D89D07 /* HYBHelperKitBaseURLController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */; };
6920F84D1D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */; };
6920F84E1D3351DB00D89D07 /* NSArray+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */; };
6920F84F1D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */; };
6920F8501D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */; };
6920F8511D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */; };
6920F8521D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */; };
6920F8531D3351DB00D89D07 /* NSObject+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */; };
6920F8541D3351DB00D89D07 /* NSString+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */; };
6920F8551D3351DB00D89D07 /* NSTimer+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */; };
6920F8561D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */; };
6920F85B1D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */; };
6920F85C1D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */; };
6920F8601D3351DB00D89D07 /* UILabel+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */; };
6920F8611D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */; };
6920F8621D3351DB00D89D07 /* UITableView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */; };
6920F8631D3351DB00D89D07 /* UITextField+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */; };
6920F8641D3351DB00D89D07 /* UIView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */; };
6920F8651D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */; };
6920F8711D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */; };
6920F8721D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */; };
6920F8731D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */; };
6920F8741D33522F00D89D07 /* UIView+HYBHelperBlockKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */; };
6920F87C1D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */; };
6920F87D1D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */; };
6920F87E1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */; };
6920F8841D339D3D00D89D07 /* NSDate+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */; };
6932F8D11D24D12600F2D2F0 /* DictionaryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */; };
69489E851D23790E00F90205 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E841D23790E00F90205 /* main.m */; };
69489E881D23790E00F90205 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E871D23790E00F90205 /* AppDelegate.m */; };
69489E8B1D23790E00F90205 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E8A1D23790E00F90205 /* ViewController.m */; };
69489E901D23790E00F90205 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 69489E8F1D23790E00F90205 /* Assets.xcassets */; };
69489E931D23790E00F90205 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 69489E911D23790E00F90205 /* LaunchScreen.storyboard */; };
69489E9E1D23790E00F90205 /* HYBHelperKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */; };
69489EC91D23BCDC00F90205 /* NSTimerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489EC71D23BCDC00F90205 /* NSTimerTests.m */; };
69489ECC1D23BEEF00F90205 /* NSUserDefaultsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */; };
69489ED11D23C11200F90205 /* NSStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69489ED01D23C11200F90205 /* NSStringTests.m */; };
695029101D366C2800773B69 /* NSNumber+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */; };
6950297C1D3929B800773B69 /* UIAlertView+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */; };
6950297F1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */; };
69C383191D23C7FB00176B00 /* NSObjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C383181D23C7FB00176B00 /* NSObjectTests.m */; };
69C383291D23DA4100176B00 /* ArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 69C383271D23DA4100176B00 /* ArrayTests.m */; };
DC82BC5B03DBD5DC59B883D8 /* libPods-HYBHelperKitTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
69489E9A1D23790E00F90205 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 69489E781D23790E00F90205 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 69489E7F1D23790E00F90205;
remoteInfo = HYBHelperKit;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HYBHelperKitTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.debug.xcconfig"; sourceTree = "<group>"; };
2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HYBHelperKit.a"; sourceTree = BUILT_PRODUCTS_DIR; };
3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HYBHelperKit.release.xcconfig"; path = "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.release.xcconfig"; sourceTree = "<group>"; };
3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HYBHelperKit.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.debug.xcconfig"; sourceTree = "<group>"; };
6920F6891D320E9600D89D07 /* TestViewController1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestViewController1.h; sourceTree = "<group>"; };
6920F68A1D320E9600D89D07 /* TestViewController1.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TestViewController1.m; sourceTree = "<group>"; };
6920F80B1D3351DB00D89D07 /* HYBCommonKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBCommonKit.h; sourceTree = "<group>"; };
6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBCommonKit.m; sourceTree = "<group>"; };
6920F80E1D3351DB00D89D07 /* HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKit.h; sourceTree = "<group>"; };
6920F80F1D3351DB00D89D07 /* HYBHelperKitBaseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitBaseController.h; sourceTree = "<group>"; };
6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitBaseController.m; sourceTree = "<group>"; };
6920F8111D3351DB00D89D07 /* HYBHelperKitBaseURLController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitBaseURLController.h; sourceTree = "<group>"; };
6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitBaseURLController.m; sourceTree = "<group>"; };
6920F8131D3351DB00D89D07 /* HYBHelperKitTestEntranceController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperKitTestEntranceController.h; sourceTree = "<group>"; };
6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitTestEntranceController.m; sourceTree = "<group>"; };
6920F8151D3351DB00D89D07 /* HYBHelperMasonryMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HYBHelperMasonryMaker.h; sourceTree = "<group>"; };
6920F8161D3351DB00D89D07 /* NSArray+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8181D3351DB00D89D07 /* NSDictionary+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F81A1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F81C1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableArray+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableArray+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F81E1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8201D3351DB00D89D07 /* NSObject+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8221D3351DB00D89D07 /* NSString+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8241D3351DB00D89D07 /* NSTimer+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSTimer+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSTimer+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8261D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSUserDefaults+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSUserDefaults+HYBHelperKit.m"; sourceTree = "<group>"; };
6920F8321D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UICollectionView+HYBMaonsryKit.h"; sourceTree = "<group>"; };
6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UICollectionView+HYBMaonsryKit.m"; sourceTree = "<group>"; };
6920F8341D3351DB00D89D07 /* UIImageView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F83E1D3351DB00D89D07 /* UILabel+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8401D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIScrollView+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8421D3351DB00D89D07 /* UITableView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8441D3351DB00D89D07 /* UITextField+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8461D3351DB00D89D07 /* UIView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8481D3351DB00D89D07 /* UIWebView+HYBMasonryKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIWebView+HYBMasonryKit.h"; sourceTree = "<group>"; };
6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIWebView+HYBMasonryKit.m"; sourceTree = "<group>"; };
6920F8691D33522F00D89D07 /* UIButton+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIButton+HYBHelperBlockKit.h"; path = "HYBHelperKitSources/UIButton+HYBHelperBlockKit.h"; sourceTree = SOURCE_ROOT; };
6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIButton+HYBHelperBlockKit.m"; path = "HYBHelperKitSources/UIButton+HYBHelperBlockKit.m"; sourceTree = SOURCE_ROOT; };
6920F86B1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIControl+HYBHelperBlockKit.h"; path = "HYBHelperKitSources/UIControl+HYBHelperBlockKit.h"; sourceTree = SOURCE_ROOT; };
6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIControl+HYBHelperBlockKit.m"; path = "HYBHelperKitSources/UIControl+HYBHelperBlockKit.m"; sourceTree = SOURCE_ROOT; };
6920F86D1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIGestureRecognizer+HYBHelperBlockKit.h"; path = "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.h"; sourceTree = SOURCE_ROOT; };
6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIGestureRecognizer+HYBHelperBlockKit.m"; path = "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.m"; sourceTree = SOURCE_ROOT; };
6920F86F1D33522F00D89D07 /* UIView+HYBHelperBlockKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+HYBHelperBlockKit.h"; path = "HYBHelperKitSources/UIView+HYBHelperBlockKit.h"; sourceTree = SOURCE_ROOT; };
6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+HYBHelperBlockKit.m"; path = "HYBHelperKitSources/UIView+HYBHelperBlockKit.m"; sourceTree = SOURCE_ROOT; };
6920F8761D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+HYBHelperKitUIKit.h"; path = "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.h"; sourceTree = SOURCE_ROOT; };
6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+HYBHelperKitUIKit.m"; path = "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.m"; sourceTree = SOURCE_ROOT; };
6920F8781D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIDevice+HYBHelperKitUIKit.h"; path = "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.h"; sourceTree = SOURCE_ROOT; };
6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIDevice+HYBHelperKitUIKit.m"; path = "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.m"; sourceTree = SOURCE_ROOT; };
6920F87A1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIView+HYBHelperKitUIKit.h"; path = "HYBHelperKitSources/UIView+HYBHelperKitUIKit.h"; sourceTree = SOURCE_ROOT; };
6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIView+HYBHelperKitUIKit.m"; path = "HYBHelperKitSources/UIView+HYBHelperKitUIKit.m"; sourceTree = SOURCE_ROOT; };
6920F8801D3352B200D89D07 /* HYBHelperBlocksKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HYBHelperBlocksKit.h; path = HYBHelperKitSources/HYBHelperBlocksKit.h; sourceTree = SOURCE_ROOT; };
6920F8811D3352B200D89D07 /* HYBHelperUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HYBHelperUIKit.h; path = HYBHelperKitSources/HYBHelperUIKit.h; sourceTree = SOURCE_ROOT; };
6920F8821D339D3D00D89D07 /* NSDate+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+HYBHelperKit.h"; sourceTree = "<group>"; };
6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+HYBHelperKit.m"; sourceTree = "<group>"; };
6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DictionaryTests.m; sourceTree = "<group>"; };
69489E801D23790E00F90205 /* HYBHelperKit.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HYBHelperKit.app; sourceTree = BUILT_PRODUCTS_DIR; };
69489E841D23790E00F90205 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
69489E861D23790E00F90205 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
69489E871D23790E00F90205 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
69489E891D23790E00F90205 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
69489E8A1D23790E00F90205 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
69489E8F1D23790E00F90205 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
69489E921D23790E00F90205 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
69489E941D23790E00F90205 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HYBHelperKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HYBHelperKitTests.m; sourceTree = "<group>"; };
69489E9F1D23790E00F90205 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
69489EC71D23BCDC00F90205 /* NSTimerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTimerTests.m; sourceTree = "<group>"; };
69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSUserDefaultsTests.m; sourceTree = "<group>"; };
69489ED01D23C11200F90205 /* NSStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSStringTests.m; sourceTree = "<group>"; };
6950290E1D366C2800773B69 /* NSNumber+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNumber+HYBHelperKit.h"; sourceTree = "<group>"; };
6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSNumber+HYBHelperKit.m"; sourceTree = "<group>"; };
6950297A1D3929B800773B69 /* UIAlertView+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+HYBHelperKit.h"; path = "HYBHelperKitSources/UIAlertView+HYBHelperKit.h"; sourceTree = SOURCE_ROOT; };
6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+HYBHelperKit.m"; path = "HYBHelperKitSources/UIAlertView+HYBHelperKit.m"; sourceTree = SOURCE_ROOT; };
6950297D1D39332B00773B69 /* UIActionSheet+HYBHelperKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+HYBHelperKit.h"; path = "HYBHelperKitSources/UIActionSheet+HYBHelperKit.h"; sourceTree = SOURCE_ROOT; };
6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+HYBHelperKit.m"; path = "HYBHelperKitSources/UIActionSheet+HYBHelperKit.m"; sourceTree = SOURCE_ROOT; };
69C383181D23C7FB00176B00 /* NSObjectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSObjectTests.m; sourceTree = "<group>"; };
69C383271D23DA4100176B00 /* ArrayTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ArrayTests.m; sourceTree = "<group>"; };
880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-HYBHelperKitTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
D4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HYBHelperKitTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.release.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
69489E7D1D23790E00F90205 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
5EE55DF079058957C1D7C04F /* libPods-HYBHelperKit.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
69489E961D23790E00F90205 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DC82BC5B03DBD5DC59B883D8 /* libPods-HYBHelperKitTests.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
6920F80A1D3351DB00D89D07 /* HYBHelperKitSources */ = {
isa = PBXGroup;
children = (
6920F87F1D33527200D89D07 /* UIKit */,
6920F8661D3351E000D89D07 /* CommonKit */,
6920F80E1D3351DB00D89D07 /* HYBHelperKit.h */,
6920F8671D3351EA00D89D07 /* ControllerKit */,
6920F8681D3351F500D89D07 /* FoudationKit */,
6920F8281D3351DB00D89D07 /* UIBlocksKit */,
6920F8751D33523F00D89D07 /* MasonryKit */,
);
path = HYBHelperKitSources;
sourceTree = SOURCE_ROOT;
};
6920F8281D3351DB00D89D07 /* UIBlocksKit */ = {
isa = PBXGroup;
children = (
6920F8801D3352B200D89D07 /* HYBHelperBlocksKit.h */,
6920F8691D33522F00D89D07 /* UIButton+HYBHelperBlockKit.h */,
6920F86A1D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m */,
6920F86B1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.h */,
6920F86C1D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m */,
6920F86D1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.h */,
6920F86E1D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m */,
6920F86F1D33522F00D89D07 /* UIView+HYBHelperBlockKit.h */,
6920F8701D33522F00D89D07 /* UIView+HYBHelperBlockKit.m */,
);
path = UIBlocksKit;
sourceTree = "<group>";
};
6920F8661D3351E000D89D07 /* CommonKit */ = {
isa = PBXGroup;
children = (
6920F80B1D3351DB00D89D07 /* HYBCommonKit.h */,
6920F80C1D3351DB00D89D07 /* HYBCommonKit.m */,
);
name = CommonKit;
sourceTree = "<group>";
};
6920F8671D3351EA00D89D07 /* ControllerKit */ = {
isa = PBXGroup;
children = (
6920F80F1D3351DB00D89D07 /* HYBHelperKitBaseController.h */,
6920F8101D3351DB00D89D07 /* HYBHelperKitBaseController.m */,
6920F8111D3351DB00D89D07 /* HYBHelperKitBaseURLController.h */,
6920F8121D3351DB00D89D07 /* HYBHelperKitBaseURLController.m */,
6920F8131D3351DB00D89D07 /* HYBHelperKitTestEntranceController.h */,
6920F8141D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m */,
);
name = ControllerKit;
sourceTree = "<group>";
};
6920F8681D3351F500D89D07 /* FoudationKit */ = {
isa = PBXGroup;
children = (
6920F8161D3351DB00D89D07 /* NSArray+HYBHelperKit.h */,
6920F8171D3351DB00D89D07 /* NSArray+HYBHelperKit.m */,
6920F8181D3351DB00D89D07 /* NSDictionary+HYBHelperKit.h */,
6920F8191D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m */,
6920F81A1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.h */,
6920F81B1D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m */,
6920F81C1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.h */,
6920F81D1D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m */,
6920F81E1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.h */,
6920F81F1D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m */,
6920F8201D3351DB00D89D07 /* NSObject+HYBHelperKit.h */,
6920F8211D3351DB00D89D07 /* NSObject+HYBHelperKit.m */,
6920F8221D3351DB00D89D07 /* NSString+HYBHelperKit.h */,
6920F8231D3351DB00D89D07 /* NSString+HYBHelperKit.m */,
6920F8241D3351DB00D89D07 /* NSTimer+HYBHelperKit.h */,
6920F8251D3351DB00D89D07 /* NSTimer+HYBHelperKit.m */,
6920F8261D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.h */,
6920F8271D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m */,
6920F8821D339D3D00D89D07 /* NSDate+HYBHelperKit.h */,
6920F8831D339D3D00D89D07 /* NSDate+HYBHelperKit.m */,
6950290E1D366C2800773B69 /* NSNumber+HYBHelperKit.h */,
6950290F1D366C2800773B69 /* NSNumber+HYBHelperKit.m */,
);
name = FoudationKit;
sourceTree = "<group>";
};
6920F8751D33523F00D89D07 /* MasonryKit */ = {
isa = PBXGroup;
children = (
6920F83E1D3351DB00D89D07 /* UILabel+HYBMasonryKit.h */,
6920F83F1D3351DB00D89D07 /* UILabel+HYBMasonryKit.m */,
6920F8151D3351DB00D89D07 /* HYBHelperMasonryMaker.h */,
6920F8321D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.h */,
6920F8331D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m */,
6920F8341D3351DB00D89D07 /* UIImageView+HYBMasonryKit.h */,
6920F8351D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m */,
6920F8401D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.h */,
6920F8411D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m */,
6920F8421D3351DB00D89D07 /* UITableView+HYBMasonryKit.h */,
6920F8431D3351DB00D89D07 /* UITableView+HYBMasonryKit.m */,
6920F8441D3351DB00D89D07 /* UITextField+HYBMasonryKit.h */,
6920F8451D3351DB00D89D07 /* UITextField+HYBMasonryKit.m */,
6920F8461D3351DB00D89D07 /* UIView+HYBMasonryKit.h */,
6920F8471D3351DB00D89D07 /* UIView+HYBMasonryKit.m */,
6920F8481D3351DB00D89D07 /* UIWebView+HYBMasonryKit.h */,
6920F8491D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m */,
);
name = MasonryKit;
sourceTree = "<group>";
};
6920F87F1D33527200D89D07 /* UIKit */ = {
isa = PBXGroup;
children = (
6920F8811D3352B200D89D07 /* HYBHelperUIKit.h */,
6920F8761D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.h */,
6920F8771D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m */,
6920F8781D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.h */,
6920F8791D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m */,
6920F87A1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.h */,
6920F87B1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m */,
6950297A1D3929B800773B69 /* UIAlertView+HYBHelperKit.h */,
6950297B1D3929B800773B69 /* UIAlertView+HYBHelperKit.m */,
6950297D1D39332B00773B69 /* UIActionSheet+HYBHelperKit.h */,
6950297E1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m */,
);
name = UIKit;
path = UIBlocksKit;
sourceTree = "<group>";
};
69489E771D23790E00F90205 = {
isa = PBXGroup;
children = (
69489E821D23790E00F90205 /* HYBHelperKit */,
69489E9C1D23790E00F90205 /* HYBHelperKitTests */,
69489E811D23790E00F90205 /* Products */,
A0654A6FA263E139658F66F9 /* Pods */,
EABF94265F022B8CD7ECFEC0 /* Frameworks */,
);
sourceTree = "<group>";
};
69489E811D23790E00F90205 /* Products */ = {
isa = PBXGroup;
children = (
69489E801D23790E00F90205 /* HYBHelperKit.app */,
69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
69489E821D23790E00F90205 /* HYBHelperKit */ = {
isa = PBXGroup;
children = (
6920F80A1D3351DB00D89D07 /* HYBHelperKitSources */,
6920F6891D320E9600D89D07 /* TestViewController1.h */,
6920F68A1D320E9600D89D07 /* TestViewController1.m */,
69489E861D23790E00F90205 /* AppDelegate.h */,
69489E871D23790E00F90205 /* AppDelegate.m */,
69489E891D23790E00F90205 /* ViewController.h */,
69489E8A1D23790E00F90205 /* ViewController.m */,
69489E8F1D23790E00F90205 /* Assets.xcassets */,
69489E911D23790E00F90205 /* LaunchScreen.storyboard */,
69489E941D23790E00F90205 /* Info.plist */,
69489E831D23790E00F90205 /* Supporting Files */,
);
path = HYBHelperKit;
sourceTree = "<group>";
};
69489E831D23790E00F90205 /* Supporting Files */ = {
isa = PBXGroup;
children = (
69489E841D23790E00F90205 /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
69489E9C1D23790E00F90205 /* HYBHelperKitTests */ = {
isa = PBXGroup;
children = (
69489EC11D23BB9A00F90205 /* FoundationKitTests */,
69489E9D1D23790E00F90205 /* HYBHelperKitTests.m */,
69489E9F1D23790E00F90205 /* Info.plist */,
);
path = HYBHelperKitTests;
sourceTree = "<group>";
};
69489EC11D23BB9A00F90205 /* FoundationKitTests */ = {
isa = PBXGroup;
children = (
69489EC71D23BCDC00F90205 /* NSTimerTests.m */,
69489ECA1D23BEEF00F90205 /* NSUserDefaultsTests.m */,
69489ED01D23C11200F90205 /* NSStringTests.m */,
69C383181D23C7FB00176B00 /* NSObjectTests.m */,
69C383271D23DA4100176B00 /* ArrayTests.m */,
6932F8D01D24D12600F2D2F0 /* DictionaryTests.m */,
);
name = FoundationKitTests;
sourceTree = "<group>";
};
A0654A6FA263E139658F66F9 /* Pods */ = {
isa = PBXGroup;
children = (
3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */,
3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */,
27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */,
D4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
};
EABF94265F022B8CD7ECFEC0 /* Frameworks */ = {
isa = PBXGroup;
children = (
2B9F4AC97535142014D9B17F /* libPods-HYBHelperKit.a */,
880E538D3E79C9676BE1490E /* libPods-HYBHelperKitTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
69489E7F1D23790E00F90205 /* HYBHelperKit */ = {
isa = PBXNativeTarget;
buildConfigurationList = 69489EA21D23790E00F90205 /* Build configuration list for PBXNativeTarget "HYBHelperKit" */;
buildPhases = (
44B2C4371B8E5D8CEAC74A1D /* 📦 Check Pods Manifest.lock */,
69489E7C1D23790E00F90205 /* Sources */,
69489E7D1D23790E00F90205 /* Frameworks */,
69489E7E1D23790E00F90205 /* Resources */,
1EFDCD21E8E8ECA0267B1586 /* 📦 Embed Pods Frameworks */,
81534C734CCEF3F4035504D7 /* 📦 Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
);
name = HYBHelperKit;
productName = HYBHelperKit;
productReference = 69489E801D23790E00F90205 /* HYBHelperKit.app */;
productType = "com.apple.product-type.application";
};
69489E981D23790E00F90205 /* HYBHelperKitTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 69489EA51D23790E00F90205 /* Build configuration list for PBXNativeTarget "HYBHelperKitTests" */;
buildPhases = (
D6C81BFCA53864F8884FFE81 /* 📦 Check Pods Manifest.lock */,
69489E951D23790E00F90205 /* Sources */,
69489E961D23790E00F90205 /* Frameworks */,
69489E971D23790E00F90205 /* Resources */,
6B8615C290B3105DB77F07FD /* 📦 Embed Pods Frameworks */,
2A2189E2041806595439F32F /* 📦 Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
69489E9B1D23790E00F90205 /* PBXTargetDependency */,
);
name = HYBHelperKitTests;
productName = HYBHelperKitTests;
productReference = 69489E991D23790E00F90205 /* HYBHelperKitTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
69489E781D23790E00F90205 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0730;
ORGANIZATIONNAME = huangyibiao;
TargetAttributes = {
69489E7F1D23790E00F90205 = {
CreatedOnToolsVersion = 7.3.1;
};
69489E981D23790E00F90205 = {
CreatedOnToolsVersion = 7.3.1;
TestTargetID = 69489E7F1D23790E00F90205;
};
};
};
buildConfigurationList = 69489E7B1D23790E00F90205 /* Build configuration list for PBXProject "HYBHelperKit" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 69489E771D23790E00F90205;
productRefGroup = 69489E811D23790E00F90205 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
69489E7F1D23790E00F90205 /* HYBHelperKit */,
69489E981D23790E00F90205 /* HYBHelperKitTests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
69489E7E1D23790E00F90205 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
69489E931D23790E00F90205 /* LaunchScreen.storyboard in Resources */,
69489E901D23790E00F90205 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
69489E971D23790E00F90205 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
1EFDCD21E8E8ECA0267B1586 /* 📦 Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
2A2189E2041806595439F32F /* 📦 Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
44B2C4371B8E5D8CEAC74A1D /* 📦 Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
6B8615C290B3105DB77F07FD /* 📦 Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
81534C734CCEF3F4035504D7 /* 📦 Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Copy Pods Resources";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-resources.sh\"\n";
showEnvVarsInLog = 0;
};
D6C81BFCA53864F8884FFE81 /* 📦 Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "📦 Check Pods Manifest.lock";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
69489E7C1D23790E00F90205 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6920F8621D3351DB00D89D07 /* UITableView+HYBMasonryKit.m in Sources */,
6920F8611D3351DB00D89D07 /* UIScrollView+HYBMasonryKit.m in Sources */,
6920F8601D3351DB00D89D07 /* UILabel+HYBMasonryKit.m in Sources */,
6920F8511D3351DB00D89D07 /* NSMutableArray+HYBHelperKit.m in Sources */,
6920F8711D33522F00D89D07 /* UIButton+HYBHelperBlockKit.m in Sources */,
6920F8501D3351DB00D89D07 /* NSFileManager+HYBHelperKit.m in Sources */,
6920F8531D3351DB00D89D07 /* NSObject+HYBHelperKit.m in Sources */,
6920F8631D3351DB00D89D07 /* UITextField+HYBMasonryKit.m in Sources */,
695029101D366C2800773B69 /* NSNumber+HYBHelperKit.m in Sources */,
6920F87D1D33526B00D89D07 /* UIDevice+HYBHelperKitUIKit.m in Sources */,
6920F8841D339D3D00D89D07 /* NSDate+HYBHelperKit.m in Sources */,
69489E8B1D23790E00F90205 /* ViewController.m in Sources */,
6920F8651D3351DB00D89D07 /* UIWebView+HYBMasonryKit.m in Sources */,
6920F85B1D3351DB00D89D07 /* UICollectionView+HYBMaonsryKit.m in Sources */,
6920F8561D3351DB00D89D07 /* NSUserDefaults+HYBHelperKit.m in Sources */,
6920F84C1D3351DB00D89D07 /* HYBHelperKitBaseURLController.m in Sources */,
6920F87E1D33526B00D89D07 /* UIView+HYBHelperKitUIKit.m in Sources */,
6920F8641D3351DB00D89D07 /* UIView+HYBMasonryKit.m in Sources */,
6920F8741D33522F00D89D07 /* UIView+HYBHelperBlockKit.m in Sources */,
6920F84A1D3351DB00D89D07 /* HYBCommonKit.m in Sources */,
6920F84F1D3351DB00D89D07 /* NSDictionary+HYBHelperKit.m in Sources */,
6920F8731D33522F00D89D07 /* UIGestureRecognizer+HYBHelperBlockKit.m in Sources */,
6920F68B1D320E9600D89D07 /* TestViewController1.m in Sources */,
6920F84E1D3351DB00D89D07 /* NSArray+HYBHelperKit.m in Sources */,
6950297C1D3929B800773B69 /* UIAlertView+HYBHelperKit.m in Sources */,
6920F8551D3351DB00D89D07 /* NSTimer+HYBHelperKit.m in Sources */,
6950297F1D39332B00773B69 /* UIActionSheet+HYBHelperKit.m in Sources */,
6920F8541D3351DB00D89D07 /* NSString+HYBHelperKit.m in Sources */,
6920F8521D3351DB00D89D07 /* NSMutableDictionary+HYBHelperKit.m in Sources */,
6920F85C1D3351DB00D89D07 /* UIImageView+HYBMasonryKit.m in Sources */,
6920F84B1D3351DB00D89D07 /* HYBHelperKitBaseController.m in Sources */,
69489E881D23790E00F90205 /* AppDelegate.m in Sources */,
6920F8721D33522F00D89D07 /* UIControl+HYBHelperBlockKit.m in Sources */,
6920F84D1D3351DB00D89D07 /* HYBHelperKitTestEntranceController.m in Sources */,
69489E851D23790E00F90205 /* main.m in Sources */,
6920F87C1D33526B00D89D07 /* UIColor+HYBHelperKitUIKit.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
69489E951D23790E00F90205 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
69489EC91D23BCDC00F90205 /* NSTimerTests.m in Sources */,
69489ED11D23C11200F90205 /* NSStringTests.m in Sources */,
69489ECC1D23BEEF00F90205 /* NSUserDefaultsTests.m in Sources */,
69C383191D23C7FB00176B00 /* NSObjectTests.m in Sources */,
6932F8D11D24D12600F2D2F0 /* DictionaryTests.m in Sources */,
69489E9E1D23790E00F90205 /* HYBHelperKitTests.m in Sources */,
69C383291D23DA4100176B00 /* ArrayTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
69489E9B1D23790E00F90205 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 69489E7F1D23790E00F90205 /* HYBHelperKit */;
targetProxy = 69489E9A1D23790E00F90205 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
69489E911D23790E00F90205 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
69489E921D23790E00F90205 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
69489EA01D23790E00F90205 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
};
name = Debug;
};
69489EA11D23790E00F90205 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.3;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};
name = Release;
};
69489EA31D23790E00F90205 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3E988714FC5DCCC6FE572EC4 /* Pods-HYBHelperKit.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = HYBHelperKit/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKit;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
69489EA41D23790E00F90205 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3D2427DF68D165E6D41371A3 /* Pods-HYBHelperKit.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = HYBHelperKit/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKit;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
69489EA61D23790E00F90205 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 27E98AAFD6B6C8A744E7B36C /* Pods-HYBHelperKitTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = HYBHelperKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKitTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HYBHelperKit.app/HYBHelperKit";
};
name = Debug;
};
69489EA71D23790E00F90205 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D4190D82170077172A8B3795 /* Pods-HYBHelperKitTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
INFOPLIST_FILE = HYBHelperKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.huangyibiao.HYBHelperKitTests;
PRODUCT_NAME = "$(TARGET_NAME)";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HYBHelperKit.app/HYBHelperKit";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
69489E7B1D23790E00F90205 /* Build configuration list for PBXProject "HYBHelperKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
69489EA01D23790E00F90205 /* Debug */,
69489EA11D23790E00F90205 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
69489EA21D23790E00F90205 /* Build configuration list for PBXNativeTarget "HYBHelperKit" */ = {
isa = XCConfigurationList;
buildConfigurations = (
69489EA31D23790E00F90205 /* Debug */,
69489EA41D23790E00F90205 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
69489EA51D23790E00F90205 /* Build configuration list for PBXNativeTarget "HYBHelperKitTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
69489EA61D23790E00F90205 /* Debug */,
69489EA71D23790E00F90205 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 69489E781D23790E00F90205 /* Project object */;
}
================================================
FILE: HYBHelperKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:HYBHelperKit.xcodeproj">
</FileRef>
</Workspace>
================================================
FILE: HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "1"
version = "2.0">
</Bucket>
================================================
FILE: HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/HYBHelperKit.xcscheme
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "69489E7F1D23790E00F90205"
BuildableName = "HYBHelperKit.app"
BlueprintName = "HYBHelperKit"
ReferencedContainer = "container:HYBHelperKit.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "69489E981D23790E00F90205"
BuildableName = "HYBHelperKitTests.xctest"
BlueprintName = "HYBHelperKitTests"
ReferencedContainer = "container:HYBHelperKit.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "69489E7F1D23790E00F90205"
BuildableName = "HYBHelperKit.app"
BlueprintName = "HYBHelperKit"
ReferencedContainer = "container:HYBHelperKit.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "69489E7F1D23790E00F90205"
BuildableName = "HYBHelperKit.app"
BlueprintName = "HYBHelperKit"
ReferencedContainer = "container:HYBHelperKit.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "69489E7F1D23790E00F90205"
BuildableName = "HYBHelperKit.app"
BlueprintName = "HYBHelperKit"
ReferencedContainer = "container:HYBHelperKit.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
================================================
FILE: HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/xcschememanagement.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>HYBHelperKit.xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>69489E7F1D23790E00F90205</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>69489E981D23790E00F90205</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>
================================================
FILE: HYBHelperKit.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:HYBHelperKit.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
================================================
FILE: HYBHelperKit.xcworkspace/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "0"
version = "2.0">
</Bucket>
================================================
FILE: HYBHelperKitSources/HYBCommonKit.h
================================================
//
// HYBCommonKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/10.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "Masonry.h"
// Get weak reference object.
#define kWeakObject(object) __weak __typeof(object) weakObject = object;
// Get weak reference object.
#define kWeak(caller, object) __weak __typeof(object) caller = object;
// Get strong reference object.
#define kStrongObject(object) __strong __typedef(object) strongObject = object;
// Get dispatch_get_main_queue()
#define kMainThread (dispatch_get_main_queue())
// Get default dispatch_get_global_queue
#define kGlobalThread dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
// Radians convert to degress.
#define kRadiansToDegrees(radians) ((radians) * (180.0 / M_PI))
// Degrees convert to randians.
#define kDegreesToRadians(angle) ((angle) / 180.0 * M_PI)
// Fast to get iOS system version
#define kIOSVersion ([UIDevice currentDevice].systemVersion.floatValue)
// More fast way to get app delegate
#define kAppDelegate ((AppDelegate *)[[UIApplication sharedApplication] delegate])
#pragma mark - Device Frame
// Get the screen's height.
#define kScreenHeight ([UIScreen mainScreen].bounds.size.height)
// Get the screen's width.
#define kScreenWidth ([UIScreen mainScreen].bounds.size.width)
// Get the screen's bounds.
#define kScreenBounds ([UIScreen mainScreen].bounds)
#pragma mark - Generate Color
// color
///< format:0xFFFFFF
#define k16RGBColor(rgbValue) \
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \
green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \
blue:((float)(rgbValue & 0xFF)) / 255.0 alpha:1.0]
///< format:22,22,22
#define kRGBColor(r, g, b) ([UIColor colorWithRed:(r) / 255.0 \
green:(g) / 255.0 \
blue:(b) / 255.0 \
alpha:1])
///< format:22,22,22,0.5
#define kRGBAColor(r, g, b, a) ([UIColor colorWithRed:(r) / 255.0 \
green:(g) / 255.0 \
blue:(b) / 255.0 \
alpha:(a)])
// More easy way to use hex color to generate color.
#define kHexRGB(rgb) k16RGBColor(rgb)
// More easy way to generate a color object.
#define kRGB(r,g,b) kRGBColor(r,g,b)
// More easy way to generate a color object with rgb and alpha.
#define kRGBA(r,g,b,a) kRGBAColor(r, g, b, a)
#pragma mark - Load Font
// Generate font with size
#define kFontWithSize(size) [UIFont systemFontOfSize:size]
// Generate bold font with size.
#define kBoldFontWithSize(size) [UIFont boldSystemFontOfSize:size]
#pragma mark - Load Image
// More easy way to load an image.
#define kImage(Name) ([UIImage imageNamed:Name])
// More easy to load an image from file.
#define kImageOfFile(Name) ([UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:Name ofType:nil]])
#pragma mark - System Singletons
// More easy way to get user default object.
#define kUserDefaults [NSUserDefaults standardUserDefaults]
// More easy way to get NSNotificationCenter object.
#define kNotificationCenter [NSNotificationCenter defaultCenter]
// More easy way to get [NSFileManager defaultManager]
#define kFileManager [NSFileManager defaultManager]
// More easy way to post a notification from notification center.
#define kPostNotificationWithName(notificationName) \
[kNotificationCenter postNotificationName:notificationName object:nil userInfo:nil]
// More easy way to post a notification with user info from notification center.
#define kPostNotificationWithNameAndUserInfo(notificationName, userInfo) \
[kNotificationCenter postNotificationName:notificationName object:nil userInfo:userInfo]
#pragma mark - Judge
// Judge whether it is an empty string.
#define kIsEmptyString(s) (s == nil || [s isKindOfClass:[NSNull class]] || ([s isKindOfClass:[NSString class]] && s.length == 0))
// Judge whether it is a nil or null object.
#define kIsEmptyObject(obj) (obj == nil || [obj isKindOfClass:[NSNull class]])
// Judge whether it is a vaid dictionary.
#define kIsDictionary(objDict) (objDict != nil && [objDict isKindOfClass:[NSDictionary class]])
// Judge whether it is a valid array.
#define kIsArray(objArray) (objArray != nil && [objArray isKindOfClass:[NSArray class]])
// Judge whether the device it is ipad.
#define kIsIPad \
([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)]\
&& [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
// Judge whether current orientation is landscape.
#define kIsLandscape (UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))
#pragma makr - Color
/**
* @author https://github.com/CoderJackyHuang
*
* The following macros are system colors.
*/
#define kBlackColor [UIColor blackColor]
#define kDarkGrayColor [UIColor darkGrayColor]
#define kLightGrayColor [UIColor lightGrayColor]
#define kWhiteColor [UIColor whiteColor]
#define kRedColor [UIColor redColor]
#define kBlueColor [UIColor blueColor]
#define kGreenColor [UIColor greenColor]
#define kCyanColor [UIColor cyanColor]
#define kYellowColor [UIColor yellowColor]
#define kMagentaColor [UIColor magentaColor]
#define kOrangeColor [UIColor orangeColor]
#define kPurpleColor [UIColor purpleColor]
#define kBrownColor [UIColor brownColor]
#define kClearColor [UIColor clearColor]
// Black opaque color, with rgba: 0, 0, 0, 0.5
#define kBlackOpaqueColor kHexColor(0, 0, 0, 0.5)
#pragma mark - Blocks
/**
* This is a common block for handling error.
*/
typedef void (^HYBErrorBlock)(NSError *error);
/**
* This is a void block.
*/
typedef void (^HYBVoidBlock)(void);
/**
* This is a common block for handling to return a string value.
*/
typedef void (^HYBStringBlock)(NSString *result);
/**
* For notification block.
*/
typedef void (^HYBNotificationBlock)(NSNotification *sender);
/**
* For return a bool block.
*/
typedef void (^HYBBOOLBlock)(BOOL result);
/**
* For return a array block.
*/
typedef void (^HYBArrayBlock)(NSArray *list);
/**
* For return a array and msg block.
*/
typedef void (^HYBArrayMessageBlock)(NSArray *list, NSString *msg);
/**
* For return a dictionary block.
*/
typedef void (^HYBDictionaryBlock)(NSDictionary *response);
/**
* For return a dictionary and a message block.
*/
typedef void (^HYBDictionaryMessageBlock)(NSDictionary *response, NSString *msg);
/**
* For only return number block.
*/
typedef void (^HYBNumberBlock)(NSNumber *resultNumber);
/**
* For number and message block.
*/
typedef void (^HYBNumberMessageBlock)(NSNumber *resultNumber, NSString *msg);
/**
* Common return object block.
*/
typedef void (^HYBIdBlock)(id result);
/**
* For single button block.
*/
typedef void(^HYBButtonBlock)(UIButton *sender);
/**
* @author https://github.com/CoderJackyHuang
*
* Common value change block.
*
* @param sender The responder
*/
typedef void(^HYBValueChangedBlock)(id sender);
/**
* @author https://github.com/CoderJackyHuang
*
* Common edit change block, eg: UITextField.
*
* @param sender The responder.
*/
typedef void(^HYBEditChangedBlock)(id sender);
/**
* For button array block.
*
* @param index index in the array.
* @param sender The responder.
*/
typedef void(^HYBButtonIndexBlock)(NSUInteger index, UIButton *sender);
/**
* Gesture block callback.
*/
typedef void(^HYBGestureBlock)(UIGestureRecognizer *sender);
/**
* @author https://github.com/CoderJackyHuang
*
* The long press gesture callback block.
*
* @param sender The long press gesture.
*/
typedef void(^HYBLongGestureBlock)(UILongPressGestureRecognizer *sender);
/**
* @author https://github.com/CoderJackyHuang
*
* The tap gesture callback block.
*
* @param sender The tap gesture.
*/
typedef void(^HYBTapGestureBlock)(UITapGestureRecognizer *sender);
/**
* @author https://github.com/CoderJackyHuang
*
* Masonry Kit Need To Use It.
*/
typedef void(^HYBConstraintMaker)(MASConstraintMaker *make);
#pragma mark - Cell
/**
* @author https://github.com/CoderJackyHuang
*
* The common cell identifier
*/
static NSString *kHYBCellIdentifier = @"HYBCommonCellIdentifier";
@interface HYBCommonKit : NSObject
@end
================================================
FILE: HYBHelperKitSources/HYBCommonKit.m
================================================
//
// HYBCommonKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/11.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "HYBCommonKit.h"
@implementation HYBCommonKit
@end
================================================
FILE: HYBHelperKitSources/HYBHelperBlocksKit.h
================================================
//
// HYBHelperBlocksKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "UIButton+HYBHelperBlockKit.h"
#import "UIControl+HYBHelperBlockKit.h"
#import "UIGestureRecognizer+HYBHelperBlockKit.h"
#import "UIView+HYBHelperBlockKit.h"
================================================
FILE: HYBHelperKitSources/HYBHelperKit.h
================================================
//
// HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
/**
* 使用此库的入口,可以通过引入此文件,达到统一引入全部文件的上的
*/
#import "HYBHelperBlocksKit.h"
#import "HYBHelperMasonryMaker.h"
#import "HYBHelperUIKit.h"
#import "HYBCommonKit.h"
#import "HYBHelperKitBaseController.h"
#import "HYBHelperKitBaseURLController.h"
#import "HYBHelperKitTestEntranceController.h"
// FoundationKit
#import "NSNumber+HYBHelperKit.h"
#import "NSObject+HYBHelperKit.h"
#import "NSString+HYBHelperKit.h"
#import "NSUserDefaults+HYBHelperKit.h"
#import "NSTimer+HYBHelperKit.h"
#import "NSMutableArray+HYBHelperKit.h"
#import "NSArray+HYBHelperKit.h"
#import "NSDictionary+HYBHelperKit.h"
#import "NSMutableDictionary+HYBHelperKit.h"
#import "NSFileManager+HYBHelperKit.h"
#import "NSDate+HYBHelperKit.h"
================================================
FILE: HYBHelperKitSources/HYBHelperKitBaseController.h
================================================
//
// HYBHelperKitBaseController.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/5.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "HYBCommonKit.h"
/**
* @author https://github.com/CoderJackyHuang
*
* This is an very useful view controller, that it will support many kinds of
* base APIs of UINavigationBar items and so no.
*/
@interface HYBHelperKitBaseController : UIViewController
/**
* @author https://github.com/CoderJackyHuang
*
* Get the left item which using a button as custom view. It may be nil if
* navigation item left items are empty.
*/
@property (nonatomic, strong, readonly) UIButton *hyb_leftButtonItem;
/**
* @author https://github.com/CoderJackyHuang
*
* Get all of left items that using button as custom view. It may be nil if
* navigation item left items are empty.
*/
@property (nonatomic, strong, readonly) NSArray<UIButton *> *hyb_leftButtonItems;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the first right button item. When using it to access right button, it usually
* just has a right item. It may be nil if there is no navigation right items.
*/
@property (nonatomic, strong, readonly) UIButton *hyb_rightButtonItem;
/**
* @author https://github.com/CoderJackyHuang
*
* Get all right button items. When using ti to access right buttons. It may be nil if
* there is no navigation right items.
*/
@property (nonatomic, strong, readonly) NSArray<UIButton *> *hyb_rightButtonItems;
/**
* @author https://github.com/CoderJackyHuang
*
* Adjust navigation title view to center, when it shows margin right, just because
* the previous navigation item's title is too long.
*/
- (void)hyb_adjustNavigationTitleToCenter;
#pragma mark - Config Navigaiton Item
/**
* @author https://github.com/CoderJackyHuang
*
* Set the navigation title or title view.
*
* @param title Title, titleView or a UIImage instance will be automatically
* created a title view.
*/
- (void)hyb_setNavTitle:(id)title;
/**
* @author https://github.com/CoderJackyHuang
*
* Add a title or title view to the navigation item, and add a button to the
* navigation item right item with callback.
*
* @param title The title view or a title.
* @param rightTitle The right button item title.
* @param rightBlock The button event callback.
*/
- (void)hyb_setNavTitle:(id)title
rightTitle:(NSString *)rightTitle
rightBlock:(HYBButtonBlock)rightBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Add a title or title view, right items with titles to the navigation item.
*
* @param title The title view
* @param rightTitles The right item button titles
* @param rightBlock The callback of button touch up event.
*/
- (void)hyb_setNavTitle:(id)title
rightTitles:(NSArray<NSString *> *)rightTitles
rightBlock:(HYBButtonIndexBlock)rightBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Add a title or title view, right items with images to the navigation item.
*
* @param title The title view
* @param rightImages The right item button normal images.
* @param rightBlock The callback of button touch up event.
*/
- (void)hyb_setNavTitle:(id)title
rightImages:(NSArray *)rightImages
rightBlock:(HYBButtonIndexBlock)rightBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Add a title or title view, right items with images to the navigation item.
*
* @param title The title view
* @param rightImages The right item button normal images.
* @param rightHgImages The right item button highlighted images.
* @param rightBlock The callback of button touch up event.
*/
- (void)hyb_setNavTitle:(id)title
rightImages:(NSArray *)rightImages
rightHgImages:(NSArray *)rightHgImages
rightBlock:(HYBButtonIndexBlock)rightBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Set navigation left item with button title.
*
* @param title The title of left item button.
* @param block The button touch up event callback.
*/
- (void)hyb_setNavLeftButtonTitle:(NSString *)title onCliked:(HYBButtonBlock)block;
/**
* @author https://github.com/CoderJackyHuang
*
* Config navigation left item with a image or image name.
*
* @param image UIImage instance or an image name.
* @param block The callback of item clicked.
*/
- (void)hyb_setNavLeftImage:(id)image block:(HYBButtonBlock)block;
#pragma mark - About indicator animating
/**
* @author https://github.com/CoderJackyHuang
*
* Create an UIActivityIndicatorView view with UIActivityIndicatorViewStyleGray style
*
* @return The instance of UIActivityIndicatorView
*/
- (UIActivityIndicatorView *)hyb_startIndicatorAnimating;
/**
* @author https://github.com/CoderJackyHuang
*
* Create an UIActivityIndicatorView view with specified style.
*
* @param style The indicator view style
*
* @return The instance of UIActivityIndicatorView
*/
- (UIActivityIndicatorView *)hyb_startIndicatorAnimatingWithStyle:(UIActivityIndicatorViewStyle)style;
/**
* @author https://github.com/CoderJackyHuang
*
* Stop animating of indicator and remove from super view.
*/
- (void)hyb_stopIndicatorAnimating;
#pragma mark - Notification
/**
* @author https://github.com/CoderJackyHuang
*
* Add a notification to the notification center with notification name.
*
* @param notificationName The name of notification
* @param callback The callback when received the notification.
*/
- (void)hyb_addObserverWithNotificationName:(NSString *)notificationName
callback:(HYBNotificationBlock)callback;
/**
* @author https://github.com/CoderJackyHuang
*
* Remove all notifications of the view controller.
*/
- (void)hyb_removeAllNotifications;
/**
* @author https://github.com/CoderJackyHuang
*
* Remove the specified notification with notification name from notification
* center.
*
* @param nofiticationName The notification name.
*/
- (void)hyb_removeAllNotificationWithName:(NSString *)nofiticationName;
@end
================================================
FILE: HYBHelperKitSources/HYBHelperKitBaseController.m
================================================
//
// HYBHelperKitBaseController.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/5.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "HYBHelperKitBaseController.h"
#import <objc/runtime.h>
#import "HYBHelperKit.h"
@interface HYBHelperKitBaseController ()
@property (nonatomic, strong) NSMutableArray *hyb_notificationNames;
@property (nonatomic, strong) UIActivityIndicatorView *hyb_loadingView;
@end
@implementation HYBHelperKitBaseController
- (void)dealloc {
[self hyb_removeAllNotifications];
#if DEBUG
NSLog(@"%@ dealloc", [[self class] description]);
#endif
}
- (void)viewDidLoad {
[super viewDidLoad];
self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;
self.view.backgroundColor = kWhiteColor;
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
#if DEBUG
NSLog(@"%@ viewDidAppear", [[self class] description]);
#endif
}
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
#if DEBUG
NSLog(@"%@ viewDidDisappear", [[self class] description]);
#endif
}
- (UIButton *)hyb_leftButtonItem {
return [[self hyb_leftButtonItems] hyb_objectAtIndex:0];
}
- (NSArray<UIButton *> *)hyb_leftButtonItems {
NSMutableArray *array = [[NSMutableArray alloc] init];
NSArray *leftItems = self.navigationItem.leftBarButtonItems;
for (UIBarButtonItem *item in leftItems) {
if ([item isKindOfClass:[UIBarButtonItem class]]) {
if ([item.customView isKindOfClass:[UIButton class]]) {
[array addObject:item.customView];
}
}
}
return array;
}
- (UIButton *)hyb_rightButtonItem {
return [[self hyb_rightButtonItems] hyb_objectAtIndex:0];
}
- (NSArray<UIButton *> *)hyb_rightButtonItems {
NSMutableArray *array = [[NSMutableArray alloc] init];
NSArray *rightItems = self.navigationItem.rightBarButtonItems;
for (UIBarButtonItem *item in rightItems) {
if ([item isKindOfClass:[UIBarButtonItem class]]) {
if ([item.customView isKindOfClass:[UIButton class]]) {
[array addObject:item.customView];
}
}
}
return array;
}
- (void)hyb_adjustNavigationTitleToCenter {
NSArray *viewControllerArray = [self.navigationController viewControllers];
long previousViewControllerIndex = [viewControllerArray indexOfObject:self] - 1;
UIViewController *previous;
if (previousViewControllerIndex >= 0) {
previous = [viewControllerArray objectAtIndex:previousViewControllerIndex];
previous.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
initWithTitle:@" "
style:UIBarButtonItemStylePlain
target:self
action:nil];
}
}
- (void)hyb_setNavTitle:(id)title
rightTitle:(NSString *)rightTitle
rightBlock:(HYBButtonBlock)rightBlock {
if (kIsEmptyString(rightTitle)) {
return [self hyb_setNavTitle:title];
}
return [self hyb_setNavTitle:title rightTitles:@[rightTitle] rightBlock:^(NSUInteger index, UIButton *sender) {
if (rightBlock) {
rightBlock(sender);
}
}];
}
- (void)hyb_setNavTitle:(id)title
rightTitles:(NSArray<NSString *> *)rightTitles
rightBlock:(HYBButtonIndexBlock)rightBlock {
[self hyb_setNavTitle:title];
if (kIsArray(rightTitles) && rightTitles.count >= 1) {
NSUInteger i = 0;
NSMutableArray *rightButtons = [[NSMutableArray alloc] init];
for (NSString *title in rightTitles) {
UIButton *btn = [UIButton hyb_buttonWithTitle:title superView:nil constraints:nil touchUp:^(UIButton *sender) {
if (rightBlock) {
rightBlock(i, sender);
}
}];
[rightButtons addObject:btn];
i++;
}
[self _hyb_setNavItems:rightButtons isLeft:NO];
}
}
- (void)hyb_setNavTitle:(id)title
rightImages:(NSArray *)rightImages
rightBlock:(HYBButtonIndexBlock)rightBlock {
return [self hyb_setNavTitle:title
rightImages:rightImages
rightHgImages:nil
rightBlock:rightBlock];
}
- (void)hyb_setNavTitle:(id)title
rightImages:(NSArray *)rightImages
rightHgImages:(NSArray *)rightHgImages
rightBlock:(HYBButtonIndexBlock)rightBlock {
[self hyb_setNavTitle:title];
if (kIsArray(rightImages) && rightHgImages.count >= 1) {
NSUInteger i = 0;
NSMutableArray *rightButtons = [[NSMutableArray alloc] init];
for (NSString *imgName in rightImages) {
NSString *last = [rightHgImages hyb_objectAtIndex:i];
UIButton *btn = [UIButton hyb_buttonWithImage:imgName superView:nil constraints:nil touchUp:^(UIButton *sender) {
if (rightBlock) {
rightBlock(i, sender);
}
}];
UIImage *hgImage = nil;
if ([last isKindOfClass:[UIImage class]]) {
hgImage = (UIImage *)last;
} else if ([last isKindOfClass:[NSString class]]) {
hgImage = kImage(last);
}
if (hgImage) {
[btn setImage:hgImage forState:UIControlStateHighlighted];
}
[rightButtons addObject:btn];
i++;
}
[self _hyb_setNavItems:rightButtons isLeft:NO];
}
}
- (void)hyb_setNavLeftButtonTitle:(NSString *)title onCliked:(HYBButtonBlock)block {
UIButton *btn = [UIButton hyb_buttonWithTitle:title
superView:nil
constraints:nil
touchUp:block];
[self _hyb_setNavItems:@[btn] isLeft:YES];
}
- (void)hyb_setNavLeftImage:(id)image block:(HYBButtonBlock)block {
UIImage *normalImage = image;
if ([normalImage isKindOfClass:[NSString class]]) {
normalImage = kImage(image);
}
UIButton *btn = [UIButton hyb_buttonWithImage:image
superView:nil
constraints:nil
touchUp:block];
[self _hyb_setNavItems:@[btn] isLeft:YES];
}
- (void)hyb_setNavTitle:(id)title {
if ([title isKindOfClass:[NSString class]]) {
self.navigationItem.title = title;
} else if ([title isKindOfClass:[UIView class]]) {
self.navigationItem.titleView = title;
} else if ([title isKindOfClass:[UIImage class]]) {
UIImageView *imageView = [[UIImageView alloc] initWithImage:(UIImage *)title];
self.navigationItem.titleView = imageView;
[imageView sizeToFit];
}
}
#pragma mark - Notification
- (void)hyb_addObserverWithNotificationName:(NSString *)notificationName
callback:(HYBNotificationBlock)callback {
if (kIsEmptyString(notificationName)) {
return;
}
[self hyb_addNotificationName:notificationName];
[kNotificationCenter addObserver:self
selector:@selector(hyb_onRecievedNotification:)
name:notificationName
object:nil];
objc_setAssociatedObject(self,
(__bridge const void *)(notificationName),
callback,
OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (void)hyb_removeAllNotifications {
// 移除监听
for (NSString *name in self.hyb_notificationNames) {
[kNotificationCenter removeObserver:self name:name object:nil];
// 取消关联
objc_setAssociatedObject(self,
(__bridge const void *)(name),
nil,
OBJC_ASSOCIATION_COPY_NONATOMIC);
}
[kNotificationCenter removeObserver:self];
}
- (void)hyb_removeAllNotificationWithName:(NSString *)nofiticationName {
if (kIsEmptyString(nofiticationName)) {
return;
}
// 移除监听
for (NSString *name in self.hyb_notificationNames) {
if ([name isEqualToString:nofiticationName]) {
[kNotificationCenter removeObserver:self name:name object:nil];
// 取消关联
objc_setAssociatedObject(self,
(__bridge const void *)(name),
nil,
OBJC_ASSOCIATION_COPY_NONATOMIC);
break;
}
}
}
- (UIActivityIndicatorView *)hyb_startIndicatorAnimating {
return [self hyb_startIndicatorAnimatingWithStyle:UIActivityIndicatorViewStyleGray];
}
- (UIActivityIndicatorView *)hyb_startIndicatorAnimatingWithStyle:(UIActivityIndicatorViewStyle)style {
if (self.hyb_loadingView == nil) {
self.hyb_loadingView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:style];
[self.view addSubview:self.hyb_loadingView];
kWeakObject(self);
if (self.navigationController && self.navigationController.navigationBarHidden == NO) {
[self.hyb_loadingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(weakObject.view);
make.centerY.equalTo(weakObject.view).offset(-64 / 2);
}];
} else {
[self.hyb_loadingView mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(weakObject.view);
}];
}
}
[self.view bringSubviewToFront:self.hyb_loadingView];
[self.hyb_loadingView startAnimating];
return self.hyb_loadingView;
}
- (void)hyb_stopIndicatorAnimating {
[self.hyb_loadingView stopAnimating];
[self.hyb_loadingView removeFromSuperview];
self.hyb_loadingView = nil;
}
#pragma mark - Private
- (void)_hyb_setNavItems:(NSArray *)buttons isLeft:(BOOL)isLeft {
UIBarButtonItem *negativeSpacer = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil
action:nil];
negativeSpacer.width = -8;
if (kIOSVersion < 7) {
negativeSpacer.width = 0;
}
NSMutableArray *items = [[NSMutableArray alloc] initWithCapacity:buttons.count];
[items addObject:negativeSpacer];
for (NSUInteger i = 0; i < buttons.count; ++i) {
UIButton *btn = [buttons hyb_objectAtIndex:i];
[btn sizeToFit];
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:btn];
[items addObject:item];
}
if (isLeft) {
self.navigationItem.leftBarButtonItems = items;
} else {
self.navigationItem.rightBarButtonItems = items;
}
}
- (void)hyb_addNotificationName:(NSString *)name {
for (NSString *notificationName in self.hyb_notificationNames) {
if ([notificationName isEqualToString:name]) {
return;
}
}
[self.hyb_notificationNames addObject:name];
}
- (void)hyb_onRecievedNotification:(NSNotification *)notification {
for (NSString *name in self.hyb_notificationNames) {
if ([name isEqualToString:notification.name]) {
HYBNotificationBlock block = objc_getAssociatedObject(self,
(__bridge const void *)(notification.name));
if (block) {
block(notification);
}
break;
}
}
}
- (NSMutableArray *)hyb_notificationNames {
if (_hyb_notificationNames == nil) {
_hyb_notificationNames = [[NSMutableArray alloc] init];
}
return _hyb_notificationNames;
}
@end
================================================
FILE: HYBHelperKitSources/HYBHelperKitBaseURLController.h
================================================
//
// HYBHelperKitBaseURLController.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "HYBHelperKitBaseController.h"
#import "HYBCommonKit.h"
/**
* @author https://github.com/CoderJackyHuang
*
* This is a helper controller, for developers showing a base url list
* in the tabbar controller, and need to select one url before any
* HTTP/HTTPS request is sent.
*
* @Note This class is only used in the debug mode.
*/
@interface HYBHelperKitBaseURLController : HYBHelperKitBaseController
/**
* @author https://github.com/CoderJackyHuang
*
* Show the base url list view controller to developers with selected callback.
*
* @param baseURLSources The base url list sources.
* @param callback The callback block when select one or input one.
*
* @return The controller instance.
*/
+ (instancetype)createWithBaseURLs:(NSArray *(^)(void))baseURLSources
onCallback:(HYBStringBlock)callback;
@end
================================================
FILE: HYBHelperKitSources/HYBHelperKitBaseURLController.m
================================================
//
// HYBHelperKitBaseURLController.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "HYBHelperKit.h"
@interface HYBHelperKitBaseURLController () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) UITextField *textField;
@property (nonatomic, copy) NSArray *baseURLs;
@property (nonatomic, copy) HYBStringBlock callback;
@end
@implementation HYBHelperKitBaseURLController
+ (instancetype)createWithBaseURLs:(NSArray *(^)(void))baseURLSources
onCallback:(HYBStringBlock)callback {
#ifdef DEBUG
HYBHelperKitBaseURLController *vc = [[HYBHelperKitBaseURLController alloc] init];
if (baseURLSources) {
vc.baseURLs = baseURLSources();
}
vc.callback = callback;
return vc;
#endif
return nil;
}
- (instancetype)init {
if (self = [super init]) {
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Base URL List";
self.tableView = [UITableView hyb_tableViewWithSuperview:self.view delegate:self];
[self.tableView registerClass:[UITableViewCell class]
forCellReuseIdentifier:kHYBCellIdentifier];
self.tableView.backgroundColor = kWhiteColor;
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, kScreenWidth, 44)];
self.textField = [UITextField hyb_textFieldWithHolder:@"Enter base url" delegate:nil superView:headerView constraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(10);
make.height.mas_equalTo(30);
make.width.mas_equalTo(kScreenWidth - 100);
make.centerY.mas_equalTo(headerView);
}];
self.textField.borderStyle = UITextBorderStyleRoundedRect;
UIButton *button = [UIButton hyb_buttonWithTitle:@"Go" superView:headerView constraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(headerView).offset(-10);
make.width.mas_equalTo(100 - 20);
make.centerY.mas_equalTo(self.textField);
make.height.mas_equalTo(30);
} touchUp:^(UIButton *sender) {
if (!kIsEmptyObject(self.textField.text)) {
if (self.callback) {
self.callback(self.textField.text);
}
}
}];
button.layer.cornerRadius = 3;
button.layer.masksToBounds = YES;
button.backgroundColor = kBlueColor;
headerView.backgroundColor = kHexRGB(0xf0f0f0);
self.tableView.tableHeaderView = headerView;
}
#pragma mark - UITableViewDelegate & UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.baseURLs.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kHYBCellIdentifier];
NSString *baseUrl = [self.baseURLs hyb_objectAtIndex:indexPath.row];
cell.textLabel.text = baseUrl;
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *baseUrl = [self.baseURLs hyb_objectAtIndex:indexPath.row];
if (self.callback) {
self.callback(baseUrl);
}
}
@end
================================================
FILE: HYBHelperKitSources/HYBHelperKitTestEntranceController.h
================================================
//
// HYBHelperKitTestEntranceController.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/1.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "HYBHelperKit.h"
/**
* @author https://github.com/CoderJackyHuang
*
* The model for HYBHelperKitTestEntranceController, we use it to add test controller
* to the test center.
*/
@interface HYBHelperKitTestEntranceModel : NSObject
/**
* @author https://github.com/CoderJackyHuang
*
* The view controller's Class
*/
@property (nonatomic, unsafe_unretained) Class vcClass;
/**
* @author https://github.com/CoderJackyHuang
*
* The title to show in the list, if it is nil, it will show the class name.
*/
@property (nonatomic, copy) NSString *title;
/**
* @author https://github.com/CoderJackyHuang
*
* Use this to create a model will be more convenience.
*
* @param vcClass The view controller's Class
* @param title The title
*
* @return The HYBHelperKitTestEntranceModel instance.
*/
+ (instancetype)modelWithClass:(Class)vcClass title:(NSString *)title;
@end
/**
* @author https://github.com/CoderJackyHuang
*
* When a team is going to develop a project, usually we will divide
* works into more detail task and assign to different team members.
*
* And the question is? We don't have test entrance, before each task
* links together. So, here I try to support a common test center entrance
* view controller, and each team member can use it to add current controller
* entrance.
*
* @Note Auto push to the next veiw controller when select an item.
*/
@interface HYBHelperKitTestEntranceController : HYBHelperKitBaseController
/**
* @author https://github.com/CoderJackyHuang
*
* Designed initialized.
*
* @param items To get HYBHelperKitTestEntranceModel items to show in the list.
*
* @return The HYBHelperKitTestEntranceController instance.
*/
- (instancetype)initWithItems:(NSArray<HYBHelperKitTestEntranceModel *> *(^)(void))items;
@end
================================================
FILE: HYBHelperKitSources/HYBHelperKitTestEntranceController.m
================================================
//
// HYBHelperKitTestEntranceController.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/1.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "HYBHelperKitTestEntranceController.h"
@implementation HYBHelperKitTestEntranceModel
+ (instancetype)modelWithClass:(Class)vcClass title:(NSString *)title {
HYBHelperKitTestEntranceModel *model = [[HYBHelperKitTestEntranceModel alloc] init];
model.vcClass = vcClass;
model.title = title;
return model;
}
@end
@interface HYBHelperKitTestEntranceController () <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) NSArray *sources;
@property (nonatomic, strong) UITableView *tableView;
@end
@implementation HYBHelperKitTestEntranceController
- (instancetype)initWithItems:(NSArray<HYBHelperKitTestEntranceModel *> *(^)(void))items {
if (self = [super init]) {
if (items) {
self.sources = items();
}
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Test Center Entrance";
self.tableView = [UITableView hyb_tableViewWithSuperview:self.view delegate:self];
[self.tableView registerClass:[UITableViewCell class]
forCellReuseIdentifier:kHYBCellIdentifier];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
}
#pragma mark - UITableViewDelegate & UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return self.sources.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kHYBCellIdentifier];
HYBHelperKitTestEntranceModel *model = [self.sources hyb_objectAtIndex:indexPath.row];
if ([model isKindOfClass:[HYBHelperKitTestEntranceModel class]]) {
if (kIsEmptyObject(model.title)) {
cell.textLabel.text = [model.vcClass description];
} else {
cell.textLabel.text = model.title;
}
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
HYBHelperKitTestEntranceModel *model = [self.sources hyb_objectAtIndex:indexPath.row];
if ([model isKindOfClass:[HYBHelperKitTestEntranceModel class]]) {
if (model.vcClass) {
UIViewController *vc = [[model.vcClass alloc] init];
[self.navigationController pushViewController:vc animated:YES];
}
}
}
@end
================================================
FILE: HYBHelperKitSources/HYBHelperMasonryMaker.h
================================================
//
// HYBHelperMasonryMaker.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "UITableView+HYBMasonryKit.h"
#import "UITextField+HYBMasonryKit.h"
#import "UIImageView+HYBMasonryKit.h"
#import "UILabel+HYBMasonryKit.h"
#import "UIScrollView+HYBMasonryKit.h"
#import "UIView+HYBMasonryKit.h"
#import "UICollectionView+HYBMaonsryKit.h"
#import "UIWebView+HYBMasonryKit.h"
================================================
FILE: HYBHelperKitSources/HYBHelperUIKit.h
================================================
//
// HYBHelperUIKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "UIView+HYBHelperKitUIKit.h"
#import "UIDevice+HYBHelperKitUIKit.h"
#import "UIColor+HYBHelperKitUIKit.h"
#import "UIAlertView+HYBHelperKit.h"
#import "UIActionSheet+HYBHelperKit.h"
================================================
FILE: HYBHelperKitSources/NSArray+HYBHelperKit.h
================================================
//
// NSArray+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSArray (HYBHelperKit)
/**
* It is safe to call this method to retrieve element.
*
* @param index The index.
*
* @return The element in the index if index is valid, otherwise nil.
*/
- (id)hyb_objectAtIndex:(NSUInteger)index;
/**
* Judge whether the array contains the string.
*
* @param string The specified string to be checked.
*
* @return YES if found, otherwise NO.
*/
- (BOOL)hyb_isContainsString:(NSString *)string;
/**
* Make the array elements reverse.
*
* @return The reversed array.
*/
- (NSArray *)hyb_reverseArray;
@end
================================================
FILE: HYBHelperKitSources/NSArray+HYBHelperKit.m
================================================
//
// NSArray+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSArray+HYBHelperKit.h"
@implementation NSArray (HYBHelperKit)
- (id)hyb_objectAtIndex:(NSUInteger)index {
NSUInteger count = [self count];
if (count > 0 && index < count) {
return [self objectAtIndex:index];
}
return nil;
}
- (BOOL)hyb_isContainsString:(NSString *)string {
for (NSString *element in self) {
if ([element isKindOfClass:[NSString class]] && [element isEqualToString:string]) {
return true;
}
}
return false;
}
- (NSArray *)hyb_reverseArray {
NSMutableArray *arrayTemp = [NSMutableArray arrayWithCapacity:[self count]];
NSEnumerator *enumerator = [self reverseObjectEnumerator];
for (id element in enumerator) {
[arrayTemp addObject:element];
}
return arrayTemp;
}
@end
================================================
FILE: HYBHelperKitSources/NSDate+HYBHelperKit.h
================================================
//
// NSDate+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/11.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSDate (HYBHelperKit)
//--------------------------------------------//
// Get day, month, year, hour, minute, second
//--------------------------------------------//
- (NSUInteger)hyb_day;
- (NSUInteger)hyb_month;
- (NSUInteger)hyb_year;
- (NSUInteger)hyb_hour;
- (NSUInteger)hyb_minute;
- (NSUInteger)hyb_second;
+ (NSUInteger)hyb_day:(NSDate *)hyb_date;
+ (NSUInteger)hyb_month:(NSDate *)hyb_date;
+ (NSUInteger)hyb_year:(NSDate *)hyb_date;
+ (NSUInteger)hyb_hour:(NSDate *)hyb_date;
+ (NSUInteger)hyb_minute:(NSDate *)hyb_date;
+ (NSUInteger)hyb_second:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Get how many days in the year.
*
* @return The days of the year.
*/
- (NSUInteger)hyb_daysInYear;
/**
* @author https://github.com/CoderJackyHuang
*
* Get how many days in the specified year.
*
* @param hyb_date The specified date
*
* @return The days of the year.
*/
+ (NSUInteger)hyb_daysInYear:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Judge whether this year is leap year or not.
*
* @return YES means leap year, otherwise NO.
*/
- (BOOL)hyb_isLeapYear;
/**
* @author https://github.com/CoderJackyHuang
*
* Judge whether the specified date of year is leap year or not.
*
* @param hyb_date The specified date.
*
* @return YES means leap year, otherwise NO.
*/
+ (BOOL)hyb_isLeapYear:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Judge whether this year is leap year or not.
*
* @param year The specified year
*
* @return YES means leap year, otherwise NO.
*/
+ (BOOL)hyb_isLeapYearWithYear:(int)year;
/**
* @author https://github.com/CoderJackyHuang
*
* Get which week in the year.
*
* @return Current week of year.
*/
- (NSUInteger)hyb_weekOfYear;
/**
* @author https://github.com/CoderJackyHuang
*
* Get which week in the specified date.
*
* @param hyb_date The specified date to get which week.
*
* @return Current week of the specified year.
*/
+ (NSUInteger)hyb_weekOfYear:(NSDate *)hyb_date;
/**
* 获取格式化为YYYY-MM-dd格式的日期字符串
*/
/**
* @author https://github.com/CoderJackyHuang
*
* Convert the date to a time string with yyyy-MM-dd format.
*
* @return The time string with yyyy-MM-dd
*/
- (NSString *)hyb_toStringWithFormatYMD;
/**
* @author https://github.com/CoderJackyHuang
*
* Convert the date to a time string with yyyy-MM-dd format.
*
* @param hyb_date The specified date to be converted to time string.
*
* @return The time string with yyyy-MM-dd
*/
+ (NSString *)hyb_toStringWithFormatYMD:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Get how many weeks in the month. It might have 4, 5, or 6 weeks.
*
* @return The weeks in the month.
*/
- (NSUInteger)hyb_howManyWeeksOfMonth;
/**
* @author https://github.com/CoderJackyHuang
*
* Get how many weeks in the month. It might have 4, 5, or 6 weeks.
*
* @param hyb_date The specified date
*
* @return The weeks in the month of the specified date.
*/
+ (NSUInteger)hyb_howManyWeeksOfMonth:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the first date of this month.
*
* @return The first date of this month.
*/
- (NSDate *)hyb_beginDayOfMonth;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the first date of this month.
*
* @param hyb_date The specified date.
*
* @return The first date of this month.
*/
+ (NSDate *)hyb_beginDayOfMonth:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the last date of this month.
*
* @return The last date of this month.
*/
- (NSDate *)hyb_lastDayOfMonth;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the last date of the specified month.
*
* @param hyb_date The specified date.
*
* @return The last date of this month.
*/
+ (NSDate *)hyb_lastDayOfMonth:(NSDate *)hyb_date;
/**
* @author https://github.com/CoderJackyHuang
*
* Add days
*
* @param days The added days.
*
* @return The new date after add days.
*/
- (NSDate *)hyb_dateAfterDay:(NSUInteger)days;
/**
* @author https://github.com/CoderJackyHuang
*
* Add days to the specified date.
*
* @param hyb_date The spcified date.
* @param days The added days.
*
* @return The new date after adding days.
*/
+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date day:(NSInteger)days;
/**
* @author https://github.com/CoderJackyHuang
*
* Add months to the date.
*
* @param months The added months.
*
* @return The new date after adding months.
*/
- (NSDate *)hyb_dateAfterMonth:(NSUInteger)months;
/**
* @author https://github.com/CoderJackyHuang
*
* Add months to the date.
*
* @param hyb_date The specified date.
* @param months The added months.
*
* @return The new date after adding months.
*/
+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date month:(NSInteger)months;
/**
* 返回numYears年后的日期
*/
/**
* @author https://github.com/CoderJackyHuang
*
* Get new date offset numYears.
*
* @param numYears The
*
*/
- (NSDate *)hyb_offsetYears:(int)numYears;
+ (NSDate *)hyb_offsetYears:(int)hyb_numYears fromDate:(NSDate *)hyb_fromDate;
- (NSDate *)hyb_offsetMonths:(int)hyb_numMonths;
+ (NSDate *)hyb_offsetMonths:(int)hyb_numMonths fromDate:(NSDate *)hyb_fromDate;
- (NSDate *)hyb_offsetDays:(int)hyb_numDays;
+ (NSDate *)hyb_offsetDays:(int)hyb_numDays fromDate:(NSDate *)hyb_fromDate;
- (NSDate *)hyb_offsetHours:(int)hyb_hours;
+ (NSDate *)hyb_offsetHours:(int)hyb_numHours fromDate:(NSDate *)hyb_fromDate;
- (NSUInteger)hyb_daysAgo;
+ (NSUInteger)hyb_daysAgo:(NSDate *)hyb_date;
/**
* 获取星期几
*
* @return Return weekday number
* [1 - Sunday]
* [2 - Monday]
* [3 - Tuerday]
* [4 - Wednesday]
* [5 - Thursday]
* [6 - Friday]
* [7 - Saturday]
*/
- (NSInteger)hyb_weekday;
+ (NSInteger)hyb_weekday:(NSDate *)hyb_date;
/**
* 获取星期几(名称)hyb_
*
* @return Return weekday as a localized string
* [1 - Sunday]
* [2 - Monday]
* [3 - Tuerday]
* [4 - Wednesday]
* [5 - Thursday]
* [6 - Friday]
* [7 - Saturday]
*/
- (NSString *)hyb_dayFromWeekday;
+ (NSString *)hyb_dayFromWeekday:(NSDate *)hyb_date;
/**
* Is the same date?
*
* @param anotherDate The another date to compare as NSDate
* @return Return YES if is same day, NO if not
*/
- (BOOL)hyb_isSameDate:(NSDate *)hyb_anotherDate;
/**
* Is today?
*
* @return Return if self is today
*/
- (BOOL)hyb_isToday;
/**
* Add days to self
*
* @param days The number of days to add
* @return Return self by adding the gived days number
*/
- (NSDate *)hyb_dateByAddingDays:(NSUInteger)hyb_days;
/**
* Get the month as a localized string from the given month number
*
* @param month The month to be converted in string
* [1 - January]
* [2 - February]
* [3 - March]
* [4 - April]
* [5 - May]
* [6 - June]
* [7 - July]
* [8 - August]
* [9 - September]
* [10 - October]
* [11 - November]
* [12 - December]
*
* @return Return the given month as a localized string
*/
+ (NSString *)hyb_monthWithMonthNumber:(NSInteger)hyb_month;
/**
* Convert date to string with format.
*/
+ (NSString *)hyb_stringWithDate:(NSDate *)hyb_date format:(NSString *)hyb_format;
- (NSString *)hyb_stringWithFormat:(NSString *)hyb_format;
/**
* Convert date string to NSDate instance.
*/
+ (NSDate *)hyb_dateWithString:(NSString *)hyb_string format:(NSString *)hyb_format;
/**
* Get how many days in the month.
*/
- (NSUInteger)hyb_daysInMonth:(NSUInteger)hyb_month;
+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date month:(NSUInteger)hyb_month;
+ (NSUInteger)hyb_dayInYear:(NSUInteger)year month:(NSUInteger)month;
/**
* Get how many days in the month.
*/
- (NSUInteger)hyb_daysInMonth;
+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date;
/**
* 返回x分钟前/x小时前/昨天/x天前/x个月前/x年前
*/
- (NSString *)hyb_timeInfo;
+ (NSString *)hyb_timeInfoWithDate:(NSDate *)hyb_date;
+ (NSString *)hyb_timeInfoWithDateString:(NSString *)hyb_dateString;
/**
* yyyy-MM-dd/HH:mm:ss/yyyy-MM-dd HH:mm:ss
*/
- (NSString *)hyb_ymdFormat;
- (NSString *)hyb_hmsFormat;
- (NSString *)hyb_ymdHmsFormat;
+ (NSString *)hyb_ymdFormat;
+ (NSString *)hyb_hmsFormat;
+ (NSString *)hyb_ymdHmsFormat;
+ (NSDateComponents *)hyb_dateComponentsWithDate:(NSDate *)date;
/**
* Convert date to time stamp.
*/
- (NSString *)hyb_toTimeStamp;
/**
* Convert time stamp to date.
*/
+ (NSDate *)hyb_toDateWithTimeStamp:(NSString *)timeStamp;
@end
================================================
FILE: HYBHelperKitSources/NSDate+HYBHelperKit.m
================================================
//
// NSDate+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/11.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSDate+HYBHelperKit.h"
@implementation NSDate (HYBHelperKit)
- (NSUInteger)hyb_day {
return [NSDate hyb_day:self];
}
- (NSUInteger)hyb_month {
return [NSDate hyb_month:self];
}
- (NSUInteger)hyb_year {
return [NSDate hyb_year:self];
}
- (NSUInteger)hyb_hour {
return [NSDate hyb_hour:self];
}
- (NSUInteger)hyb_minute {
return [NSDate hyb_minute:self];
}
- (NSUInteger)hyb_second {
return [NSDate hyb_second:self];
}
+ (NSUInteger)hyb_day:(NSDate *)hyb_date {
return [[self hyb_dateComponentsWithDate:hyb_date] day];
}
+ (NSUInteger)hyb_month:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMonth)fromDate:hyb_date];
#else
NSDateComponents *dayComponents = [calendar components:(NSMonthCalendarUnit)fromDate:hyb_date];
#endif
return [dayComponents month];
}
+ (NSUInteger)hyb_year:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitYear)fromDate:hyb_date];
#else
NSDateComponents *dayComponents = [calendar components:(NSYearCalendarUnit)fromDate:hyb_date];
#endif
return [dayComponents year];
}
+ (NSUInteger)hyb_hour:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitHour)fromDate:hyb_date];
#else
NSDateComponents *dayComponents = [calendar components:(NSHourCalendarUnit)fromDate:hyb_date];
#endif
return [dayComponents hour];
}
+ (NSUInteger)hyb_minute:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMinute)fromDate:hyb_date];
#else
NSDateComponents *dayComponents = [calendar components:(NSMinuteCalendarUnit)fromDate:hyb_date];
#endif
return [dayComponents minute];
}
+ (NSUInteger)hyb_second:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitSecond)fromDate:hyb_date];
#else
NSDateComponents *dayComponents = [calendar components:(NSSecondCalendarUnit)fromDate:hyb_date];
#endif
return [dayComponents second];
}
- (NSUInteger)hyb_daysInYear {
return [NSDate hyb_daysInYear:self];
}
+ (NSUInteger)hyb_daysInYear:(NSDate *)hyb_date {
return [self hyb_isLeapYear:hyb_date] ? 366 : 365;
}
- (BOOL)hyb_isLeapYear {
return [NSDate hyb_isLeapYear:self];
}
+ (BOOL)hyb_isLeapYear:(NSDate *)hyb_date {
int year = (int)[hyb_date hyb_year];
return [self hyb_isLeapYearWithYear:year];
}
+ (BOOL)hyb_isLeapYearWithYear:(int)year {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return YES;
}
return NO;
}
- (NSString *)hyb_toStringWithFormatYMD {
return [NSDate hyb_toStringWithFormatYMD:self];
}
+ (NSString *)hyb_toStringWithFormatYMD:(NSDate *)hyb_date {
return [NSString stringWithFormat:@"%ld-%02ld-%02ld",
(long)[hyb_date hyb_year],
(long)[hyb_date hyb_month],
(long)[hyb_date hyb_day]];
}
- (NSUInteger)hyb_howManyWeeksOfMonth {
return [NSDate hyb_howManyWeeksOfMonth:self];
}
+ (NSUInteger)hyb_howManyWeeksOfMonth:(NSDate *)hyb_date {
return [[hyb_date hyb_lastDayOfMonth] hyb_weekOfYear] - [[hyb_date hyb_beginDayOfMonth] hyb_weekOfYear] + 1;
}
- (NSUInteger)hyb_weekOfYear {
return [NSDate hyb_weekOfYear:self];
}
+ (NSUInteger)hyb_weekOfYear:(NSDate *)hyb_date {
NSUInteger i;
NSUInteger year = [hyb_date hyb_year];
NSDate *lastdate = [hyb_date hyb_lastDayOfMonth];
for (i = 1;[[lastdate hyb_dateAfterDay:-7 * i] hyb_year] == year; i++) {
}
return i;
}
- (NSDate *)hyb_dateAfterDay:(NSUInteger)hyb_day {
return [NSDate hyb_dateAfterDate:self day:hyb_day];
}
+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date day:(NSInteger)hyb_day {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];
[componentsToAdd setDay:hyb_day];
NSDate *dateAfterDay = [calendar dateByAddingComponents:componentsToAdd toDate:hyb_date options:0];
return dateAfterDay;
}
- (NSDate *)hyb_dateAfterMonth:(NSUInteger)hyb_month {
return [NSDate hyb_dateAfterDate:self month:hyb_month];
}
+ (NSDate *)hyb_dateAfterDate:(NSDate *)hyb_date month:(NSInteger)hyb_month {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];
[componentsToAdd setMonth:hyb_month];
NSDate *dateAfterMonth = [calendar dateByAddingComponents:componentsToAdd toDate:hyb_date options:0];
return dateAfterMonth;
}
- (NSDate *)hyb_beginDayOfMonth {
return [NSDate hyb_beginDayOfMonth:self];
}
+ (NSDate *)hyb_beginDayOfMonth:(NSDate *)hyb_date {
return [self hyb_dateAfterDate:hyb_date day:-[hyb_date hyb_day] + 1];
}
- (NSDate *)hyb_lastDayOfMonth {
return [NSDate hyb_lastDayOfMonth:self];
}
+ (NSDate *)hyb_lastDayOfMonth:(NSDate *)hyb_date {
NSDate *lastDate = [self hyb_beginDayOfMonth:hyb_date];
return [[lastDate hyb_dateAfterMonth:1] hyb_dateAfterDay:-1];
}
- (NSUInteger)hyb_daysAgo {
return [NSDate hyb_daysAgo:self];
}
+ (NSUInteger)hyb_daysAgo:(NSDate *)hyb_date {
NSCalendar *calendar = [NSCalendar currentCalendar];
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
NSDateComponents *components = [calendar components:(NSCalendarUnitDay)
fromDate:hyb_date
toDate:[NSDate date]
options:0];
#else
NSDateComponents *components = [calendar components:(NSDayCalendarUnit)
fromDate:hyb_date
toDate:[NSDate date]
options:0];
#endif
return [components day];
}
- (NSInteger)hyb_weekday {
return [NSDate hyb_weekday:self];
}
+ (NSInteger)hyb_weekday:(NSDate *)hyb_date {
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *comps = [gregorian components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekday) fromDate:hyb_date];
NSInteger weekday = [comps weekday];
return weekday;
}
- (NSString *)hyb_dayFromWeekday {
return [NSDate hyb_dayFromWeekday:self];
}
+ (NSString *)hyb_dayFromWeekday:(NSDate *)hyb_date {
switch([hyb_date hyb_weekday]) {
case 1:
return @"星期天";
break;
case 2:
return @"星期一";
break;
case 3:
return @"星期二";
break;
case 4:
return @"星期三";
break;
case 5:
return @"星期四";
break;
case 6:
return @"星期五";
break;
case 7:
return @"星期六";
break;
default:
break;
}
return @"";
}
- (BOOL)hyb_isSameDate:(NSDate *)hyb_anotherDate {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components1 = [calendar components:(NSCalendarUnitYear
| NSCalendarUnitMonth
| NSCalendarUnitDay)
fromDate:self];
NSDateComponents *components2 = [calendar components:(NSCalendarUnitYear
| NSCalendarUnitMonth
| NSCalendarUnitDay)
fromDate:hyb_anotherDate];
return ([components1 year] == [components2 year]
&& [components1 month] == [components2 month]
&& [components1 day] == [components2 day]);
}
- (BOOL)hyb_isToday {
return [self hyb_isSameDate:[NSDate date]];
}
- (NSDate *)hyb_dateByAddingDays:(NSUInteger)hyb_days {
NSDateComponents *c = [[NSDateComponents alloc] init];
c.day = hyb_days;
return [[NSCalendar currentCalendar] dateByAddingComponents:c toDate:self options:0];
}
/**
* Get the month as a localized string from the given month number
*
* @param month The month to be converted in string
* [1 - January]
* [2 - February]
* [3 - March]
* [4 - April]
* [5 - May]
* [6 - June]
* [7 - July]
* [8 - August]
* [9 - September]
* [10 - October]
* [11 - November]
* [12 - December]
*
* @return Return the given month as a localized string
*/
+ (NSString *)hyb_monthWithMonthNumber:(NSInteger)hyb_month {
switch(hyb_month) {
case 1:
return @"January";
break;
case 2:
return @"February";
break;
case 3:
return @"March";
break;
case 4:
return @"April";
break;
case 5:
return @"May";
break;
case 6:
return @"June";
break;
case 7:
return @"July";
break;
case 8:
return @"August";
break;
case 9:
return @"September";
break;
case 10:
return @"October";
break;
case 11:
return @"November";
break;
case 12:
return @"December";
break;
default:
break;
}
return @"";
}
+ (NSString *)hyb_stringWithDate:(NSDate *)hyb_date format:(NSString *)hyb_format {
return [hyb_date hyb_stringWithFormat:hyb_format];
}
- (NSString *)hyb_stringWithFormat:(NSString *)hyb_format {
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:hyb_format];
[outputFormatter setTimeZone:[NSTimeZone systemTimeZone]];
NSString *retStr = [outputFormatter stringFromDate:self];
return retStr;
}
+ (NSDate *)hyb_dateWithString:(NSString *)hyb_string format:(NSString *)hyb_format {
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:hyb_format];
[inputFormatter setTimeZone:[NSTimeZone systemTimeZone]];
NSDate *date = [inputFormatter dateFromString:hyb_string];
return date;
}
- (NSUInteger)hyb_daysInMonth:(NSUInteger)hyb_month {
return [NSDate hyb_daysInMonth:self month:hyb_month];
}
+ (NSUInteger)hyb_dayInYear:(NSUInteger)year month:(NSUInteger)month {
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 2:
return [self hyb_isLeapYearWithYear:(int)year] ? 29 : 28;
}
return 30;
}
+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date month:(NSUInteger)hyb_month {
switch (hyb_month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 2:
return [hyb_date hyb_isLeapYear] ? 29 : 28;
}
return 30;
}
- (NSUInteger)hyb_daysInMonth {
return [NSDate hyb_daysInMonth:self];
}
+ (NSUInteger)hyb_daysInMonth:(NSDate *)hyb_date {
return [self hyb_daysInMonth:hyb_date month:[hyb_date hyb_month]];
}
- (NSString *)hyb_timeInfo {
return [NSDate hyb_timeInfoWithDate:self];
}
+ (NSString *)hyb_timeInfoWithDate:(NSDate *)hyb_date {
return [self hyb_timeInfoWithDateString:[self hyb_stringWithDate:hyb_date format:[self hyb_ymdHmsFormat]]];
}
+ (NSString *)hyb_timeInfoWithDateString:(NSString *)hyb_dateString {
NSDate *date = [self hyb_dateWithString:hyb_dateString format:[self hyb_ymdHmsFormat]];
NSDate *curDate = [NSDate date];
NSTimeInterval time = -[date timeIntervalSinceDate:curDate];
int month = (int)([curDate hyb_month] - [date hyb_month]);
int year = (int)([curDate hyb_year] - [date hyb_year]);
int day = (int)([curDate hyb_day] - [date hyb_day]);
NSTimeInterval retTime = 1.0;
if (time < 3600) { // 小于一小时
retTime = time / 60;
retTime = retTime <= 0.0 ? 1.0 : retTime;
return [NSString stringWithFormat:@"%.0f分钟前", retTime];
} else if (time < 3600 * 24) { // 小于一天,也就是今天
retTime = time / 3600;
retTime = retTime <= 0.0 ? 1.0 : retTime;
return [NSString stringWithFormat:@"%.0f小时前", retTime];
} else if (time < 3600 * 24 * 2) {
return @"昨天";
}
// 第一个条件是同年,且相隔时间在一个月内
// 第二个条件是隔年,对于隔年,只能是去年12月与今年1月这种情况
else if ((abs(year) == 0 && abs(month) <= 1)
|| (abs(year) == 1 && [curDate hyb_month] == 1 && [date hyb_month] == 12)) {
int retDay = 0;
if (year == 0) { // 同年
if (month == 0) { // 同月
retDay = day;
}
}
if (retDay <= 0) {
// 获取发布日期中,该月有多少天
int totalDays = (int)[self hyb_daysInMonth:date month:[date hyb_month]];
// 当前天数 + (发布日期月中的总天数-发布日期月中发布日,即等于距离今天的天数)
retDay = (int)[curDate hyb_day] + (totalDays - (int)[date hyb_day]);
}
return [NSString stringWithFormat:@"%d天前", (abs)(retDay)];
} else {
if (abs(year) <= 1) {
if (year == 0) { // 同年
return [NSString stringWithFormat:@"%d个月前", abs(month)];
}
// 隔年
int month = (int)[curDate hyb_month];
int preMonth = (int)[date hyb_month];
if (month == 12 && preMonth == 12) {// 隔年,但同月,就作为满一年来计算
return @"1年前";
}
return [NSString stringWithFormat:@"%d个月前", (abs)(12 - preMonth + month)];
}
return [NSString stringWithFormat:@"%d年前", abs(year)];
}
return @"1小时前";
}
- (NSString *)hyb_ymdFormat {
return [NSDate hyb_ymdFormat];
}
- (NSString *)hyb_hmsFormat {
return [NSDate hyb_hmsFormat];
}
- (NSString *)hyb_ymdHmsFormat {
return [NSDate hyb_ymdHmsFormat];
}
+ (NSString *)hyb_ymdFormat {
return @"yyyy-MM-dd";
}
+ (NSString *)hyb_hmsFormat {
return @"HH:mm:ss";
}
+ (NSString *)hyb_ymdHmsFormat {
return [NSString stringWithFormat:@"%@ %@", [self hyb_ymdFormat], [self hyb_hmsFormat]];
}
- (NSDate *)hyb_offsetYears:(int)hyb_numYears {
return [NSDate hyb_offsetYears:hyb_numYears fromDate:self];
}
+ (NSDate *)hyb_offsetYears:(int)hyb_numYears fromDate:(NSDate *)hyb_fromDate {
if (hyb_fromDate == nil) {
return nil;
}
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
#else
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
#endif
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setYear:hyb_numYears];
return [gregorian dateByAddingComponents:offsetComponents
toDate:hyb_fromDate
options:0];
}
- (NSDate *)hyb_offsetMonths:(int)hyb_numMonths {
return [NSDate hyb_offsetMonths:hyb_numMonths fromDate:self];
}
+ (NSDate *)hyb_offsetMonths:(int)hyb_numMonths fromDate:(NSDate *)hyb_fromDate {
if (hyb_fromDate == nil) {
return nil;
}
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
#else
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
#endif
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:hyb_numMonths];
return [gregorian dateByAddingComponents:offsetComponents
toDate:hyb_fromDate
options:0];
}
- (NSDate *)hyb_offsetDays:(int)hyb_numDays {
return [NSDate hyb_offsetDays:hyb_numDays fromDate:self];
}
+ (NSDate *)hyb_offsetDays:(int)hyb_numDays fromDate:(NSDate *)hyb_fromDate {
if (hyb_fromDate == nil) {
return nil;
}
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
#else
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
#endif
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:hyb_numDays];
return [gregorian dateByAddingComponents:offsetComponents
toDate:hyb_fromDate
options:0];
}
- (NSDate *)hyb_offsetHours:(int)hyb_hours {
return [NSDate hyb_offsetHours:hyb_hours fromDate:self];
}
+ (NSDate *)hyb_offsetHours:(int)hyb_numHours fromDate:(NSDate *)hyb_fromDate {
if (hyb_fromDate == nil) {
return nil;
}
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
// NSDayCalendarUnit
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
#else
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
#endif
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setHour:hyb_numHours];
return [gregorian dateByAddingComponents:offsetComponents
toDate:hyb_fromDate
options:0];
}
+ (NSDateComponents *)hyb_dateComponentsWithDate:(NSDate *)date {
NSCalendar *calendar = nil;
NSUInteger flags = 0;
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
flags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour
| NSCalendarUnitMinute | NSCalendarUnitSecond;
#else
calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit
| NSMinuteCalendarUnit | NSSecondCalendarUnit;
#endif
[calendar setTimeZone:[NSTimeZone systemTimeZone]];
return [calendar components:flags fromDate:date];
}
- (NSString *)hyb_toTimeStamp {
return [NSString stringWithFormat:@"%lf", [self timeIntervalSince1970]];
}
+ (NSDate *)hyb_toDateWithTimeStamp:(NSString *)timeStamp {
NSString *arg = timeStamp;
if (![timeStamp isKindOfClass:[NSString class]]) {
arg = [NSString stringWithFormat:@"%@", timeStamp];
}
if (arg.length > 10) {
arg = [arg substringToIndex:10];
}
NSTimeInterval time = [arg doubleValue];
return [NSDate dateWithTimeIntervalSince1970:time];
}
@end
================================================
FILE: HYBHelperKitSources/NSDictionary+HYBHelperKit.h
================================================
//
// NSDictionary+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSDictionary (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* Get object from dictionary by key.
*
* @param key key
*
* @return object of key, or nil if key doesn't exist
*/
- (id)hyb_objectForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get int value from dictionary by key.
*
* @param key key
*
* @return int value of key, or zero if key doesn't exist
*/
- (int)hyb_intForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get double value from dictionary by key.
*
* @param key key
*
* @return double value of key, or zero if key doesn't exist
*/
- (double)hyb_doubleForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get float value from dictionary by key.
*
* @param key key
*
* @return float value of key, or zero if key doesn't exist
*/
- (float)hyb_floatForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get NSInteger value from dictionary by key.
*
* @param key key
*
* @return NSInteger value of key, or zero if key doesn't exist
*/
- (NSInteger)hyb_integerForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get NSString value from dictionary by key.
*
* @param key key
*
* @return NSString value of key, or nil if key doesn't exist
*/
- (NSString *)hyb_stringForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get NSDictionary value from dictionary by key.
*
* @param key key
*
* @return NSDictionary value of key, or nil if key doesn't exist
*/
- (NSDictionary *)hyb_dictionaryForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get NSArray value from dictionary by key.
*
* @param key key
*
* @return NSArray value of key, or nil if key doesn't exist
*/
- (NSArray *)hyb_arrayForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get NSNumber value from dictionary by key.
*
* @param key key
*
* @return NSNumber value of key, or nil if key doesn't exist
*/
- (NSNumber *)hyb_numberForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get BOOL value from dictionary by key.
*
* @param key key
*
* @return BOOL value of key, or false if key doesn't exist
*/
- (BOOL)hyb_boolForKey:(id<NSCopying>)key;
/**
* @author https://github.com/CoderJackyHuang
*
* Get the unsigned long long value form dict by key.
*
* @param key The key
*
* @return unsigned long long value of key, or 0 if key doesn't exist.
*/
- (unsigned long long)hyb_unsignedLongLongValue:(id<NSCopying>)key;
@end
================================================
FILE: HYBHelperKitSources/NSDictionary+HYBHelperKit.m
================================================
//
// NSDictionary+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSDictionary+HYBHelperKit.h"
#import "HYBCommonKit.h"
@implementation NSDictionary (HYBHelperKit)
- (id)hyb_objectForKey:(id<NSCopying>)key {
if (key == nil) {
return nil;
}
return [self objectForKey:key];
}
- (int)hyb_intForKey:(id)key {
if (key == nil) {
return 0;
}
NSNumber *number = [self hyb_numberForKey:key];
return [number intValue];
}
- (double)hyb_doubleForKey:(id)key {
if (key == nil) {
return 0;
}
NSNumber *number = [self hyb_numberForKey:key];
return [number doubleValue];
}
- (float)hyb_floatForKey:(id)key {
if (key == nil) {
return 0;
}
NSNumber *number = [self hyb_numberForKey:key];
return [number floatValue];
}
- (NSInteger)hyb_integerForKey:(id)key {
if (key == nil) {
return 0;
}
NSNumber *number = [self hyb_numberForKey:key];
return [number integerValue];
}
- (NSString *)hyb_stringForKey:(id)key {
if (key == nil) {
return 0;
}
id obj = [self hyb_objectForKey:key];
if ([obj isKindOfClass:[NSString class]]) {
return (NSString *)obj;
} else if ([obj isKindOfClass:[NSNumber class]]) {
return [NSString stringWithFormat:@"%@", obj];
}
return nil;
}
- (NSDictionary *)hyb_dictionaryForKey:(id)key {
if (key == nil) {
return 0;
}
id obj = [self hyb_objectForKey:key];
if ([obj isKindOfClass:[NSDictionary class]]) {
return (NSDictionary *)obj;
}
return nil;
}
- (NSArray *)hyb_arrayForKey:(id)key {
if (key == nil) {
return 0;
}
id obj = [self hyb_objectForKey:key];
if ([obj isKindOfClass:[NSArray class]]) {
return (NSArray *)obj;
}
return nil;
}
- (NSNumber *)hyb_numberForKey:(id)key {
if (key == nil) {
return 0;
}
id obj = [self hyb_objectForKey:key];
if ([obj isKindOfClass:[NSNumber class]]) {
return (NSNumber *)obj;
}
return nil;
}
- (BOOL)hyb_boolForKey:(id)key {
if (key == nil) {
return NO;
}
id number = [self hyb_objectForKey:key];
if ([number respondsToSelector:@selector(boolValue)]) {
return [number boolValue];
}
return NO;
}
- (unsigned long long)hyb_unsignedLongLongValue:(id<NSCopying>)key {
if (key == nil) {
return 0;
}
id number = [self hyb_objectForKey:key];
if ([number respondsToSelector:@selector(unsignedLongLongValue)]) {
return [number unsignedLongLongValue];
}
return 0;
}
@end
================================================
FILE: HYBHelperKitSources/NSFileManager+HYBHelperKit.h
================================================
//
// NSFileManager+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSFileManager (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* Judge whether file at path exists and check time out or not.
*
* @param filePath The file absolute path
* @param timeout The specified time out.
*
* @return NO if file exists and hasn't exceeded the specified time, otherwise YES.
*/
- (BOOL)hyb_isFileAtPath:(NSString *)filePath hasTimeOut:(NSTimeInterval)timeout;
/**
* @author https://github.com/CoderJackyHuang
*
* Get attributes of file at path.
*
* @param path The file path
*
* @return The file attributes if file exists, otherwise nil.
*/
- (NSDictionary *)hyb_fileAttributesAtPath:(NSString *)path;
/**
* @author https://github.com/CoderJackyHuang
*
* Get file size at path
*
* @param path The file path
*
* @return File real size at path, or 0 if file doesn't exist.
*/
- (unsigned long long)hyb_fileSizeAtPath:(NSString *)path;
@end
================================================
FILE: HYBHelperKitSources/NSFileManager+HYBHelperKit.m
================================================
//
// NSFileManager+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSFileManager+HYBHelperKit.h"
#import "NSDictionary+HYBHelperKit.h"
@implementation NSFileManager (HYBHelperKit)
- (BOOL)hyb_isFileAtPath:(NSString *)filePath hasTimeOut:(NSTimeInterval)timeout {
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSError *error = nil;
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath
error:&error];
if (error) {
return YES;
}
if ([attributes isKindOfClass:[NSDictionary class]] && attributes) {
NSString *createDate = [attributes objectForKey:@"NSFileModificationDate"];
createDate = [NSString stringWithFormat:@"%@", createDate];
if (createDate.length >= 19) {
createDate = [createDate substringToIndex:19];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *sinceDate = [formatter dateFromString:createDate];
NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:sinceDate];
BOOL isTimeOut = (long)interval > timeout;
return isTimeOut;
}
}
}
return YES;
}
- (NSDictionary *)hyb_fileAttributesAtPath:(NSString *)path {
NSError *error = nil;
NSDictionary *attrs = [[NSFileManager defaultManager] attributesOfItemAtPath:path
error:&error];
if (error) {
return nil;
}
return attrs;
}
- (unsigned long long)hyb_fileSizeAtPath:(NSString *)path {
NSDictionary *attrs = [self hyb_fileAttributesAtPath:path];
if (attrs == nil) {
return 0;
}
return [attrs hyb_unsignedLongLongValue:NSFileSize];
}
@end
================================================
FILE: HYBHelperKitSources/NSMutableArray+HYBHelperKit.h
================================================
//
// NSMutableArray+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSMutableArray (HYBHelperKit)
/**
* It is more safe to add object to the array.
*
* @param object The object to be added.
*
* @return YES if object can be added, otherwise NO.
*/
- (BOOL)hyb_addObject:(id)object;
/**
* It is more safe to insert object to the array.
*
* @param anObject The object to be inserted.
* @param index Index.
*
* @return YES if inserted successfully, otherwise NO.
*/
- (BOOL)hyb_insertObject:(id)anObject atIndex:(NSUInteger)index;
/**
* It it safe to remove object from the array.
*
* @param index The index
*
* @return YES if remove successfully, otherwise NO.
*/
- (BOOL)hyb_removeObjectAtIndex:(NSUInteger)index;
/**
* Exchange double elements.
*
* @param fromIndex The index to move from
* @param toIndex The index to move to
*
* @return YES if exchange successfully, otherwise NO.
*/
- (BOOL)hyb_exchangeObjectFromIndex:(NSUInteger)fromIndex
toIndex:(NSUInteger)toIndex;
@end
================================================
FILE: HYBHelperKitSources/NSMutableArray+HYBHelperKit.m
================================================
//
// NSMutableArray+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSMutableArray+HYBHelperKit.h"
#import "NSArray+HYBHelperKit.h"
@implementation NSMutableArray (HYBHelperKit)
- (BOOL)hyb_addObject:(id)object {
BOOL ret = NO;
if (object) {
ret = YES;
[self addObject:object];
}
return ret;
}
- (BOOL)hyb_insertObject:(id)anObject atIndex:(NSUInteger)index {
if (anObject == nil|| index > [self count] ) {
return NO;
}
if ([self containsObject:anObject]) {
return NO;
}
[self insertObject:anObject atIndex:index];
return YES;
}
- (BOOL)hyb_removeObjectAtIndex:(NSUInteger)index {
if (index >= [self count]) {
return NO;
}
[self removeObjectAtIndex:index];
return YES;
}
- (BOOL)hyb_exchangeObjectFromIndex:(NSUInteger)fromIndex toIndex:(NSUInteger)toIndex {
if ([self count] != 0 && toIndex != fromIndex
&& fromIndex < [self count] && toIndex < [self count]) {
[self exchangeObjectAtIndex:fromIndex withObjectAtIndex:toIndex];
return YES;
}
return NO;
}
@end
================================================
FILE: HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.h
================================================
//
// NSMutableDictionary+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSMutableDictionary (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* It is safe to use it to set object for key.
*
* @param anObject Object to be set.
* @param aKey The unique key of key-value
*
* @return YES if set object successfully, otherwise NO.
*/
- (BOOL)hyb_setObject:(id)anObject forKey:(id<NSCopying>)aKey;
/**
* @author https://github.com/CoderJackyHuang
*
* It is safe to use it to set value for key.
*
* @param value Value to be set.
* @param key The unique key of key-value.
*
* @return YES if set value successfully, otherwise NO.
*/
- (BOOL)hyb_setValue:(id)value forKey:(NSString *)key;
@end
================================================
FILE: HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.m
================================================
//
// NSMutableDictionary+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSMutableDictionary+HYBHelperKit.h"
@implementation NSMutableDictionary (HYBHelperKit)
- (BOOL)hyb_setObject:(id)anObject forKey:(id<NSCopying>)aKey {
if (aKey == nil || anObject == nil) {
return NO;
}
[self setObject:anObject forKey:aKey];
return YES;
}
- (BOOL)hyb_setValue:(id)value forKey:(NSString *)key {
if (key == nil || value == nil) {
return NO;
}
[self setValue:value forKey:key];
return YES;
}
@end
================================================
FILE: HYBHelperKitSources/NSNumber+HYBHelperKit.h
================================================
//
// NSNumber+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/13.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSNumber (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* Convert NSNumber object to a string object.
*
* @return A string.
*/
- (NSString *)hyb_toString;
@end
================================================
FILE: HYBHelperKitSources/NSNumber+HYBHelperKit.m
================================================
//
// NSNumber+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/13.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSNumber+HYBHelperKit.h"
@implementation NSNumber (HYBHelperKit)
- (NSString *)hyb_toString {
return [NSString stringWithFormat:@"%@", self];
}
@end
================================================
FILE: HYBHelperKitSources/NSObject+HYBHelperKit.h
================================================
//
// NSObject+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface NSObject (HYBHelperKit)
/**
* Get the name of currnet object's class.
*/
- (NSString *)hyb_className;
#pragma mark - Json to object and object to jason
/**
* Transform an object to json data.
*
* @param object Any kind of object.
*
* @return json data object if transform successfully, otherwise return nil.
*/
+ (NSMutableData *)hyb_toJsonDataWithObject:(id)object;
/**
* Transform self to json data.
*
* @return json data if transform successfully, otherwise return nil.
*/
- (NSMutableData *)hyb_toJsonData;
/**
* Transform an object to json string.
*
* @param object Any kind of object
*
* @return json string if transform successfully, otherwise return nil.
*/
+ (NSString *)hyb_toJsonStringWithObject:(id)object;
/**
* Transform self to json string.
*
* @return json string if transform successfully, otherwise return nil.
*/
- (NSString *)hyb_toJsonString;
#pragma mark - Filter Null and nil
/**
* Filter all nil and null object.
*/
- (id)hyb_filterNullNil;
/**
* Filter all nil and null object.
*
* @param object The object to be filtered.
*/
+ (id)hyb_filterNullNilFromObject:(id)object;
@end
================================================
FILE: HYBHelperKitSources/NSObject+HYBHelperKit.m
================================================
//
// NSObject+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSObject+HYBHelperKit.h"
@implementation NSObject (HYBHelperKit)
- (NSString *)hyb_className {
return NSStringFromClass([self class]);
}
- (NSMutableData *)hyb_toJsonData {
return [NSObject hyb_toJsonDataWithObject:self];
}
- (NSString *)hyb_toJsonString {
return [NSObject hyb_toJsonStringWithObject:self];
}
+ (NSMutableData *)hyb_toJsonDataWithObject:(id)object {
NSMutableData *jsonData = nil;
if ([NSJSONSerialization isValidJSONObject:object]) {
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:object
options:NSJSONWritingPrettyPrinted
error:&error];
if (error) {
NSLog(@"error: %@", error.description);
} else {
jsonData = [[NSMutableData alloc] initWithData:data];
}
}
return jsonData;
}
+ (NSString *)hyb_toJsonStringWithObject:(id)object {
NSMutableData *data = [self hyb_toJsonDataWithObject:object];
if (data.length) {
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
return nil;
}
- (id)hyb_filterNullNil {
return [NSObject hyb_filterNullNilFromObject:self];
}
+ (id)hyb_filterNullNilFromObject:(id)object {
if ([object isKindOfClass:[NSDictionary class]]) {
return [self _removeNullNilFromDict:(NSDictionary *)object];
} else if ([object isKindOfClass:[NSArray class]]) {
return [self _removeNullFromArray:(NSArray *)object];
} else if ([object isKindOfClass:[NSSet class]]) {
return [self _removeNullFromSet:(NSSet *)object];
} else if ([object isKindOfClass:[NSNull class]] || object == nil) {
return nil;
}
return object;
}
#pragma mark - Private
+ (NSDictionary *)_removeNullNilFromDict:(NSDictionary *)dict {
if (dict == nil || [dict isKindOfClass:[NSNull class]]) {
return nil;
}
NSMutableDictionary *resultDict = [NSMutableDictionary dictionaryWithCapacity:dict.count];
for (id key in dict.allKeys) {
id object = [dict objectForKey:key];
if ([object isKindOfClass:[NSNull class]] || object == nil) {
// 不添加
} else if ([object isKindOfClass:[NSDictionary class]]) {
object = [self _removeNullNilFromDict:(NSDictionary *)object];
if (object != nil) {
[resultDict setObject:object forKey:key];
}
} else if ([object isKindOfClass:[NSArray class]]) {
object = [self _removeNullFromArray:(NSArray *)object];
if (object != nil) {
[resultDict setObject:object forKey:key];
}
} else if ([object isKindOfClass:[NSSet class]]) {
object = [self _removeNullFromSet:(NSSet *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultDict setObject:object forKey:key];
}
} else {
[resultDict setObject:object forKey:key];
}
}
return resultDict;
}
+ (NSArray *)_removeNullFromArray:(NSArray *)array {
if (array == nil || [array isKindOfClass:[NSNull class]]) {
return nil;
}
if (array.count == 0) {
return array;
}
NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:array.count];
for (NSUInteger i = 0; i < array.count; ++i) {
id object = array[i];
if ([object isKindOfClass:[NSNull class]] || object == nil) {
// 不添加
} else if ([object isKindOfClass:[NSDictionary class]]) {
object = [self _removeNullNilFromDict:(NSDictionary *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultArray addObject:object];
}
} else if ([object isKindOfClass:[NSArray class]]) {
object = [self _removeNullFromArray:(NSArray *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultArray addObject:object];
}
} else if ([object isKindOfClass:[NSSet class]]) {
object = [self _removeNullFromSet:(NSSet *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultArray addObject:object];
}
} else {
[resultArray addObject:object];
}
}
return resultArray;
}
+ (NSSet *)_removeNullFromSet:(NSSet *)set {
if (set == nil || [set isKindOfClass:[NSNull class]]) {
return nil;
}
if (set.count == 0) {
return set;
}
NSMutableSet *resultSet = [[NSMutableSet alloc] initWithCapacity:set.count];
[set enumerateObjectsUsingBlock:^(id _Nonnull obj, BOOL * _Nonnull stop) {
id object = obj;
if ([object isKindOfClass:[NSNull class]] || object == nil) {
// 不添加
} else if ([object isKindOfClass:[NSDictionary class]]) {
object = [self _removeNullNilFromDict:(NSDictionary *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultSet addObject:object];
}
} else if ([object isKindOfClass:[NSArray class]]) {
object = [self _removeNullFromArray:(NSArray *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultSet addObject:object];
}
} else if ([object isKindOfClass:[NSSet class]]) {
object = [self _removeNullFromSet:(NSSet *)object];
if (object != nil && ![object isKindOfClass:[NSNull class]]) {
[resultSet addObject:object];
}
} else {
[resultSet addObject:object];
}
}];
return resultSet;
}
@end
================================================
FILE: HYBHelperKitSources/NSString+HYBHelperKit.h
================================================
//
// NSString+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSString (HYBHelperKit)
#pragma mark - Encrypt and decrypt
/**
* Convert the string to 32bit md5 string.
*
* @return 32bit md5
*/
- (NSString *)hyb_toMD5;
/**
* Convert the string to 16bit md5 string.
*
* @return 16bit md5
*/
- (NSString *)hyb_to16MD5;
/**
* Encrypt the string with sha1 argorithm.
*
* @return The sha1 string.
*/
- (NSString *)hyb_sha1;
/**
* Encrypt the string with sha256 argorithm.
*
* @return The sha256 string.
*/
- (NSString *)hyb_sha256;
/**
* Encrypt the string with sha512 argorithm.
*
* @return The sha512 string.
*/
- (NSString *)hyb_sha512;
#pragma mark - Data convert to string or string to data.
/**
* Convert the current string to data.
*
* @return data object if convert successfully, otherwise nil.
*/
- (NSData *)hyb_toData;
/**
* Convert a data object to string.
*
* @param data The data will be converted.
*
* @return string object if convert successfully, otherwise nil.
*/
+ (NSString *)hyb_toStringWithData:(NSData *)data;
#pragma mark - Check email, phone, tel, or persion id.
/**
* Check whether the string is a valid kind of email format.
*
* @return YES if it is a valid format, otherwise false.
*/
- (BOOL)hyb_isEmail;
/**
* Check whether the string is a valid kind of email format.
*
* @param email The string to be checked.
*
* @return YES if it is a valid format, otherwise false.
*/
+ (BOOL)hyb_isEmail:(NSString *)email;
/**
* Check whether the string is a valid kind of mobile phone format.
* Now only check 11 numbers and begin with 1.
*
* @return YES if passed, otherwise false.
*/
- (BOOL)hyb_isMobilePhone;
/**
* Check whether the string is a valid kind of mobile phone format.
*
* @param phone The phone to be checked.
*
* @return YES if passed, otherwise false.
*/
+ (BOOL)hyb_isMobilePhone:(NSString *)phone;
/**
* Check whether it is a valid kind of tel number format.
*
* @return YES if passed, otherwise false.
*/
- (BOOL)hyb_isTelNumber;
/**
* Check whether it is a valid kind of tel number format.
*
* @param telNumber The tel number to be checked.
*
* @return YES if passed, otherwise false.
*/
+ (BOOL)hyb_isTelNumber:(NSString *)telNumber;
/**
* Check whether it is a valid kind of Chinese Persion ID
*
* @return YES if it is valid kind of PID, otherwise false.
*/
- (BOOL)hyb_isPersonID;
/**
* Check whether it is a valid kind of Chinese Persion ID
*
* @param PID The Chinese Persion ID to be checked.
*
* @return YES if it is valid kind of PID, otherwise false.
*/
+ (BOOL)hyb_isPersonID:(NSString *)PID;
#pragma mark - Trim Character
/**
* Trim the left blank space
*
* @return The new string without left blank space.
*/
- (NSString *)hyb_trimLeft;
/**
* Trim the right blank space
*
* @return The new string without right blank space.
*/
- (NSString *)hyb_trimRight;
/**
* Trim the left and the right blank space
*
* @return The new string without left and right blank space.
*/
- (NSString *)hyb_trim;
/**
* Trim all blank space in the string.
*
* @return The new string without blank space.
*/
- (NSString *)hyb_trimAll;
/**
* Trim letters.
*
* @return The new string without letters.
*/
- (NSString *)hyb_trimLetters;
/**
* Trim all the specified characters.
*
* @param character The character to be trimed.
*
* @return The new string without the specified character.
*/
- (NSString *)hyb_trimCharacter:(unichar)character;
/**
* Trim white space.
*
* @return The new string without white space.
*/
- (NSString *)hyb_trimWhitespace;
/**
* Trim all whitespace and new line.
*
* @return The new string without white space and new line.
*/
- (NSString *)hyb_trimWhitespaceAndNewLine;
#pragma mark - Check letters, numbers or letter and numbers
/**
* Check whether it only contains letters.
*
* @return YES if only containing letters, otherwise NO.
*/
- (BOOL)hyb_isOnlyLetters;
/**
* Check whether it only contains digit numbers.
*
* @return YES if only containing digit numbers, otherwise NO.
*/
- (BOOL)hyb_isOnlyDigits;
/**
* Check whether it only contains letters and digit numbers.
*
* @return YES if only containing letters and digit numbers, otherwise NO.
*/
- (BOOL)hyb_isOnlyAlphaNumeric;
#pragma mark - URL
/**
* Try to convert the string to a NSURL object.
*
* @return NSURL object if converts successfully, otherwise nil.
*/
- (NSURL *)hyb_toURL;
/**
* Try to do a url encode.
*
* @return Encoded string.
*/
- (NSString *)hyb_URLEncode;
#pragma mark - HTML
/**
* Filter html tags in the string.
*
* @return A new string without html tags.
*/
- (NSString *)hyb_filterHtml;
/**
* Fileter html tags in the specified string.
*
* @param html The specified html string.
*
* @return A new string without html tags.
*/
+ (NSString *)hyb_filterHTML:(NSString *)html;
#pragma mark - Get document/tmp/Cache path
/**
* Get the absolute path of the document.
*
* @return Document path.
*/
+ (NSString *)hyb_documentPath;
/**
* Get the absolute path of tmp
*
* @return Tmp path
*/
+ (NSString *)hyb_tmpPath;
/**
* Get the absolute path of Cache.
*
* @return Cache absolute path
*/
+ (NSString *)hyb_cachePath;
#pragma mark - String operation
/**
* Check whether current string contains the substring.
*
* @param substring Substring
*
* @return YES if containing, otherwise NO.
*/
- (BOOL)hyb_isContainString:(NSString *)substring;
@end
================================================
FILE: HYBHelperKitSources/NSString+HYBHelperKit.m
================================================
//
// NSString+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSString+HYBHelperKit.h"
#import <CommonCrypto/CommonDigest.h>
@implementation NSString (HYBHelperKit)
- (NSString *)hyb_toMD5 {
if (self == nil || [self length] == 0) {
return nil;
}
unsigned char digest[CC_MD5_DIGEST_LENGTH], i;
CC_MD5([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
NSMutableString *ms = [NSMutableString string];
for (i = 0; i < CC_MD5_DIGEST_LENGTH; i++) {
[ms appendFormat:@"%02x", (int)(digest[i])];
}
return [ms copy];
}
- (NSString *)hyb_to16MD5 {
if (self == nil || [self length] == 0) {
return nil;
}
return [[self hyb_toMD5] substringWithRange:NSMakeRange(8, 16)];
}
- (NSString *)hyb_sha1 {
if (self == nil || [self length] == 0) {
return nil;
}
unsigned char digest[CC_SHA1_DIGEST_LENGTH], i;
CC_SHA1([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
NSMutableString *ms = [NSMutableString string];
for ( i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) {
[ms appendFormat:@"%02x", (int)(digest[i])];
}
return [ms copy];
}
- (NSString *)hyb_sha256 {
if (self == nil || [self length] == 0) {
return nil;
}
unsigned char digest[CC_SHA256_DIGEST_LENGTH], i;
CC_SHA256([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
NSMutableString *ms = [NSMutableString string];
for (i = 0; i < CC_SHA256_DIGEST_LENGTH; i++) {
[ms appendFormat: @"%02x", (int)(digest[i])];
}
return [ms copy];
}
- (NSString *)hyb_sha512 {
if (self == nil || [self length] == 0) {
return nil;
}
unsigned char digest[CC_SHA512_DIGEST_LENGTH], i;
CC_SHA512([self UTF8String], (int)[self lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
NSMutableString *ms = [NSMutableString string];
for (i = 0; i < CC_SHA512_DIGEST_LENGTH; i++) {
[ms appendFormat: @"%02x", (int)(digest[i])];
}
return [ms copy];
}
- (NSData *)hyb_toData {
return [self dataUsingEncoding:NSUTF8StringEncoding];
}
+ (NSString *)hyb_toStringWithData:(NSData *)data {
if (data && [data isKindOfClass:[NSData class]]) {
return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
return nil;
}
- (BOOL)hyb_isEmail {
return [NSString hyb_isEmail:self];
}
+ (BOOL)hyb_isEmail:(NSString *)email {
NSString *reg =
@"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}"
@"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\"
@"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-"
@"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5"
@"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-"
@"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21"
@"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", reg];
return [predicate evaluateWithObject:[email lowercaseString]];
}
- (BOOL)hyb_isMobilePhone {
return [NSString hyb_isMobilePhone:self];
}
+ (BOOL)hyb_isMobilePhone:(NSString *)phone {
NSString *pattern = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9])|(17[0,0-9]))\\d{8}$";
NSPredicate *mobilePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
if ([mobilePredicate evaluateWithObject:phone]) {
return YES;
}
return NO;
}
- (BOOL)hyb_isTelNumber {
return [NSString hyb_isTelNumber:self];
}
+ (BOOL)hyb_isTelNumber:(NSString *)telNumber {
NSString *pattern = @"^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];
return [predicate evaluateWithObject:telNumber];
}
- (BOOL)hyb_isPersonID {
return [NSString hyb_isPersonID:self];
}
+ (BOOL)hyb_isPersonID:(NSString *)PID {
// 判断位数
if (PID.length != 15 && PID.length != 18) {
return NO;
}
NSString *carid = PID;
long lSumQT = 0;
// 加权因子
int R[] ={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
// 校验码
unsigned char sChecker[11]={'1','0','X', '9', '8', '7', '6', '5', '4', '3', '2'};
// 将15位身份证号转换成18位
NSMutableString *mString = [NSMutableString stringWithString:PID];
if (PID.length == 15) {
[mString insertString:@"19" atIndex:6];
long p = 0;
const char *pid = [mString UTF8String];
for (int i = 0; i<= 16; i++) {
p += (pid[i] - 48) * R[i];
}
int o = p % 11;
NSString *string_content = [NSString stringWithFormat:@"%c", sChecker[o]];
[mString insertString:string_content atIndex:[mString length]];
carid = mString;
}
// 判断地区码
NSString * sProvince = [carid substringToIndex:2];
if (![self _areaCode:sProvince]) {
return NO;
}
// 判断年月日是否有效
// 年份
int strYear = [[self _substringWithString:carid begin:6 end:4] intValue];
// 月份
int strMonth = [[self _substringWithString:carid begin:10 end:2] intValue];
// 日
int strDay = [[self _substringWithString:carid begin:12 end:2] intValue];
NSTimeZone *localZone = [NSTimeZone localTimeZone];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeZone:localZone];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:[NSString stringWithFormat:@"%d-%d-%d 12:01:01",
strYear, strMonth, strDay]];
if (date == nil) {
return NO;
}
const char *PaperId = [carid UTF8String];
// 检验长度
if(18 != strlen(PaperId)) return NO;
// 校验数字
for (int i = 0; i < 18; i++) {
if ( !isdigit(PaperId[i]) && !(('X' == PaperId[i] || 'x' == PaperId[i]) && 17 == i) ) {
return NO;
}
}
// 验证最末的校验码
for (int i=0; i<=16; i++) {
lSumQT += (PaperId[i]-48) * R[i];
}
if (sChecker[lSumQT%11] != PaperId[17] ) {
return NO;
}
return YES;
}
- (NSString *)hyb_trimLeft {
NSInteger len = 0;
while (len < self.length) {
if ([self characterAtIndex:len] != ' ') {
break;
}
len++;
}
if (len >= self.length) {
len = self.length - 1;
}
if (len <= 0) {
return self;
}
return [self substringFromIndex:len];
}
- (NSString *)hyb_trimRight {
NSInteger index = self.length - 1;
for (NSInteger i = self.length - 1; i >= 0; --i) {
if ([self characterAtIndex:i] != ' ') {
break;
} else {
index--;
}
}
if (index + 1 < self.length) {
index++;
}
if (index + 1 >= self.length) {
return self;
}
return [self substringToIndex:index];
}
- (NSString *)hyb_trim {
NSString *str = [self hyb_trimLeft];
return [str hyb_trimRight];
}
- (NSString *)hyb_trimAll {
return [self stringByReplacingOccurrencesOfString:@" " withString:@""];
}
- (NSString *)hyb_trimLetters {
return [self stringByTrimmingCharactersInSet:[NSCharacterSet letterCharacterSet]];
}
- (NSString *)hyb_trimCharacter:(unichar)character {
NSString *str = [NSString stringWithFormat:@"%c", character];
return [self stringByReplacingOccurrencesOfString:str withString:@""];
}
- (NSString *)hyb_trimWhitespace {
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
}
- (NSString *)hyb_trimWhitespaceAndNewLine {
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
- (BOOL)hyb_isOnlyLetters {
NSCharacterSet *letterCharacterset = [[NSCharacterSet letterCharacterSet] invertedSet];
return ([self rangeOfCharacterFromSet:letterCharacterset].location == NSNotFound);
}
- (BOOL)hyb_isOnlyDigits {
NSCharacterSet *numSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
return ([self rangeOfCharacterFromSet:numSet].location == NSNotFound);
}
- (BOOL)hyb_isOnlyAlphaNumeric {
NSCharacterSet *numAndLetterCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
return ([self rangeOfCharacterFromSet:numAndLetterCharSet].location == NSNotFound);
}
- (NSURL *)hyb_toURL {
return [NSURL URLWithString:self];
}
- (NSString *)hyb_URLEncode {
NSString *result =
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&;=+$,/?%#[] "),
kCFStringEncodingUTF8));
return result;
}
- (NSString *)hyb_filterHtml {
return [NSString hyb_filterHTML:self];
}
+ (NSString *)hyb_filterHTML:(NSString *)html {
if (html == nil) {
return nil;
}
NSScanner *scanner = [NSScanner scannerWithString:html];
NSString *text = nil;
while ([scanner isAtEnd] == NO) {
[scanner scanUpToString:@"<" intoString:nil];
[scanner scanUpToString:@">" intoString:&text];
html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>",text]
withString:@""];
}
return html;
}
+ (NSString *)hyb_documentPath {
return [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
}
+ (NSString *)hyb_tmpPath {
return [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
}
+ (NSString *)hyb_cachePath {
return [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"];
}
- (BOOL)hyb_isContainString:(NSString *)substring {
return [self rangeOfString:substring].location != NSNotFound;
}
#pragma mark - Private
/**
* 功能:判断是否在地区码内
* 参数:地区码
*/
+ (BOOL)_areaCode:(NSString *)code {
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:@"北京" forKey:@"11"];
[dic setObject:@"天津" forKey:@"12"];
[dic setObject:@"河北" forKey:@"13"];
[dic setObject:@"山西" forKey:@"14"];
[dic setObject:@"内蒙古" forKey:@"15"];
[dic setObject:@"辽宁" forKey:@"21"];
[dic setObject:@"吉林" forKey:@"22"];
[dic setObject:@"黑龙江" forKey:@"23"];
[dic setObject:@"上海" forKey:@"31"];
[dic setObject:@"江苏" forKey:@"32"];
[dic setObject:@"浙江" forKey:@"33"];
[dic setObject:@"安徽" forKey:@"34"];
[dic setObject:@"福建" forKey:@"35"];
[dic setObject:@"江西" forKey:@"36"];
[dic setObject:@"山东" forKey:@"37"];
[dic setObject:@"河南" forKey:@"41"];
[dic setObject:@"湖北" forKey:@"42"];
[dic setObject:@"湖南" forKey:@"43"];
[dic setObject:@"广东" forKey:@"44"];
[dic setObject:@"广西" forKey:@"45"];
[dic setObject:@"海南" forKey:@"46"];
[dic setObject:@"重庆" forKey:@"50"];
[dic setObject:@"四川" forKey:@"51"];
[dic setObject:@"贵州" forKey:@"52"];
[dic setObject:@"云南" forKey:@"53"];
[dic setObject:@"西藏" forKey:@"54"];
[dic setObject:@"陕西" forKey:@"61"];
[dic setObject:@"甘肃" forKey:@"62"];
[dic setObject:@"青海" forKey:@"63"];
[dic setObject:@"宁夏" forKey:@"64"];
[dic setObject:@"新疆" forKey:@"65"];
[dic setObject:@"台湾" forKey:@"71"];
[dic setObject:@"香港" forKey:@"81"];
[dic setObject:@"澳门" forKey:@"82"];
[dic setObject:@"国外" forKey:@"91"];
if ([dic objectForKey:code] == nil) {
return NO;
}
return YES;
}
+ (NSString *)_substringWithString:(NSString *)str begin:(NSInteger)begin end:(NSInteger )end {
return [str substringWithRange:NSMakeRange(begin, end)];
}
@end
================================================
FILE: HYBHelperKitSources/NSTimer+HYBHelperKit.h
================================================
//
// NSTimer+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef void(^HYBTimerCallback)(NSTimer *timer);
@interface NSTimer (HYBHelperKit)
/**
* Create a timer with time interval, repeat or not, and callback.
*
* @param interval Time interval
* @param repeats Whether repeat to schedule.
* @param callback The callback block.
*
* @return Timer object.
*/
+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval
repeats:(BOOL)repeats
callback:(HYBTimerCallback)callback;
/**
* Create a timer with time interval, repeat count, and callback.
*
* @param interval Time interval
* @param count When count <= 0, it means repeat.
* @param callback The callback block
*
* @return Timer object
*/
+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval
count:(NSInteger)count
callback:(HYBTimerCallback)callback;
/**
* Start timer immediately.
*/
- (void)hyb_fireTimer;
/**
* Pause timer immediately
*/
- (void)hyb_unfireTimer;
/**
* Make timer invalidate.
*/
- (void)hyb_invalidate;
@end
================================================
FILE: HYBHelperKitSources/NSTimer+HYBHelperKit.m
================================================
//
// NSTimer+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSTimer+HYBHelperKit.h"
#import <objc/runtime.h>
static const void *s_hyb_private_currentCountTime = "s_hyb_private_currentCountTime";
@implementation NSTimer (HYBHelperKit)
- (NSNumber *)hyb_private_currentCountTime {
NSNumber *obj = objc_getAssociatedObject(self, s_hyb_private_currentCountTime);
if (obj == nil) {
obj = @(0);
[self setHyb_private_currentCountTime:obj];
}
return obj;
}
- (void)setHyb_private_currentCountTime:(NSNumber *)time {
objc_setAssociatedObject(self,
s_hyb_private_currentCountTime,
time, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval
count:(NSInteger)count
callback:(HYBTimerCallback)callback {
if (count <= 0) {
return [self hyb_scheduledTimerWithTimeInterval:interval
repeats:YES
callback:callback];
}
NSDictionary *userInfo = @{@"callback" : callback,
@"count" : @(count)};
return [NSTimer scheduledTimerWithTimeInterval:interval
target:self
selector:@selector(hyb_onTimerUpdateCountBlock:)
userInfo:userInfo
repeats:YES];
}
+ (NSTimer *)hyb_scheduledTimerWithTimeInterval:(NSTimeInterval)interval
repeats:(BOOL)repeats
callback:(HYBTimerCallback)callback {
return [NSTimer scheduledTimerWithTimeInterval:interval
target:self
selector:@selector(hyb_onTimerUpdateBlock:)
userInfo:callback
repeats:repeats];
}
- (void)hyb_fireTimer {
[self setFireDate:[NSDate distantPast]];
}
- (void)hyb_unfireTimer {
[self setFireDate:[NSDate distantFuture]];
}
- (void)hyb_invalidate {
if (self.isValid) {
[self invalidate];
}
}
#pragma mark - Private
+ (void)hyb_onTimerUpdateBlock:(NSTimer *)timer {
HYBTimerCallback block = timer.userInfo;
if (block) {
block(timer);
}
}
+ (void)hyb_onTimerUpdateCountBlock:(NSTimer *)timer {
NSInteger currentCount = [[timer hyb_private_currentCountTime] integerValue];
NSDictionary *userInfo = timer.userInfo;
HYBTimerCallback callback = userInfo[@"callback"];
NSNumber *count = userInfo[@"count"];
if (currentCount < count.integerValue) {
currentCount++;
[timer setHyb_private_currentCountTime:@(currentCount)];
if (callback) {
callback(timer);
}
} else {
currentCount = 0;
[timer setHyb_private_currentCountTime:@(currentCount)];
[timer hyb_unfireTimer];
[timer hyb_invalidate];
}
}
@end
================================================
FILE: HYBHelperKitSources/NSUserDefaults+HYBHelperKit.h
================================================
//
// NSUserDefaults+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSUserDefaults (HYBHelperKit)
/**
* Set safe object to the user defaults, it will filter all nil or Null object,
* to prevent app crashing.
*
* @param value The object to be saved.
* @param key The only key.
*/
- (BOOL)hyb_setSafeObject:(id)value forKey:(NSString *)key;
@end
================================================
FILE: HYBHelperKitSources/NSUserDefaults+HYBHelperKit.m
================================================
//
// NSUserDefaults+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/6/29.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "NSUserDefaults+HYBHelperKit.h"
#import "NSObject+HYBHelperKit.h"
@implementation NSUserDefaults (HYBHelperKit)
- (BOOL)hyb_setSafeObject:(id)value forKey:(NSString *)key {
if (key == nil) {
return NO;
}
if (value == nil || [value isKindOfClass:[NSNull class]]) {
[self removeObjectForKey:key];
return YES;
}
if ([value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSNumber class]]) {
[self setObject:value forKey:key];
[self synchronize];
return YES;
} else {
id result = [value hyb_filterNullNil];
if (result) {
[self setObject:result forKey:key];
[self synchronize];
return YES;
}
}
return NO;
}
@end
================================================
FILE: HYBHelperKitSources/UIActionSheet+HYBHelperKit.h
================================================
//
// UIActionSheet+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/15.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void(^HYBActionSheetClickedButtonBlock)(UIActionSheet *actionSheet, NSUInteger buttonIndex);
@interface UIActionSheet (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* The action sheet callback block
*/
@property (nonatomic, copy) HYBActionSheetClickedButtonBlock hyb_clickedButtonBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Show an action sheet in the view with a title, cancel button title,
* destructive title and other button titles.
*
* @param inView Which view show the action sheet.
* @param title The action sheet's title.
* @param cancelTitle The cancel button's title.
* @param destructiveTitle The destructive button title.
* @param otherTitles Other buton titles.
* @param callback The callback block
*
* @return The UIActionSheet instance.
*/
+ (instancetype)hyb_showInView:(UIView *)inView
title:(NSString *)title
cancelTitle:(NSString *)cancelTitle
destructiveTitle:(NSString *)destructiveTitle
otherTitles:(NSArray *)otherTitles
callback:(HYBActionSheetClickedButtonBlock)callback;
@end
================================================
FILE: HYBHelperKitSources/UIActionSheet+HYBHelperKit.m
================================================
//
// UIActionSheet+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/15.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "UIActionSheet+HYBHelperKit.h"
#import <objc/runtime.h>
#import "NSArray+HYBHelperKit.h"
@interface UIApplication (HDFActionSheet) <UIActionSheetDelegate>
@end
@implementation UIApplication (HDFActionSheet)
- (void)actionSheet:(nonnull UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (actionSheet.hyb_clickedButtonBlock) {
actionSheet.hyb_clickedButtonBlock(actionSheet, buttonIndex);
}
}
@end
static const void *s_HdfActionSheetClickedButtonBlock = "s_HdfActionSheetClickedButtonBlock";
@implementation UIActionSheet (HYBHelperKit)
- (void)setHyb_clickedButtonBlock:(HYBActionSheetClickedButtonBlock)hyb_clickedButtonBlock {
objc_setAssociatedObject(self,
s_HdfActionSheetClickedButtonBlock,
hyb_clickedButtonBlock,
OBJC_ASSOCIATION_COPY_NONATOMIC);
}
- (HYBActionSheetClickedButtonBlock)hyb_clickedButtonBlock {
return objc_getAssociatedObject(self, s_HdfActionSheetClickedButtonBlock);
}
+ (instancetype)hyb_showInView:(UIView *)inView
title:(NSString *)title
cancelTitle:(NSString *)cancelTitle
destructiveTitle:(NSString *)destructiveTitle
otherTitles:(NSArray *)otherTitles
callback:(HYBActionSheetClickedButtonBlock)callback {
UIActionSheet *as = [[UIActionSheet alloc] initWithTitle:title
delegate:[UIApplication sharedApplication]
cancelButtonTitle:cancelTitle
destructiveButtonTitle:destructiveTitle
otherButtonTitles:
[otherTitles hyb_objectAtIndex:0],
[otherTitles hyb_objectAtIndex:1],
[otherTitles hyb_objectAtIndex:2],
[otherTitles hyb_objectAtIndex:3],
[otherTitles hyb_objectAtIndex:4],
[otherTitles hyb_objectAtIndex:5],
[otherTitles hyb_objectAtIndex:6],
[otherTitles hyb_objectAtIndex:7],
[otherTitles hyb_objectAtIndex:8],
[otherTitles hyb_objectAtIndex:9],
[otherTitles hyb_objectAtIndex:10],
[otherTitles hyb_objectAtIndex:11],
[otherTitles hyb_objectAtIndex:12],
[otherTitles hyb_objectAtIndex:13],
[otherTitles hyb_objectAtIndex:14],
[otherTitles hyb_objectAtIndex:15],
[otherTitles hyb_objectAtIndex:16],
[otherTitles hyb_objectAtIndex:17],
[otherTitles hyb_objectAtIndex:18],
[otherTitles hyb_objectAtIndex:19],
[otherTitles hyb_objectAtIndex:20],
[otherTitles hyb_objectAtIndex:21],
[otherTitles hyb_objectAtIndex:22],
[otherTitles hyb_objectAtIndex:23],
[otherTitles hyb_objectAtIndex:24],
[otherTitles hyb_objectAtIndex:25],
[otherTitles hyb_objectAtIndex:26],
[otherTitles hyb_objectAtIndex:27],
[otherTitles hyb_objectAtIndex:28],
[otherTitles hyb_objectAtIndex:29],nil];
as.hyb_clickedButtonBlock = callback;
[as showInView:inView];
return as;
}
@end
================================================
FILE: HYBHelperKitSources/UIAlertView+HYBHelperKit.h
================================================
//
// UIAlertView+HYBHelperKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/7/15.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef void(^HYBAlertClickedButtonBlock)(UIAlertView *alertView,
NSUInteger buttonIndex);
@interface UIAlertView (HYBHelperKit)
/**
* @author https://github.com/CoderJackyHuang
*
* The action callback block
*/
@property (nonatomic, copy) HYBAlertClickedButtonBlock hyb_clickedButtonBlock;
/**
* @author https://github.com/CoderJackyHuang
*
* Show an alert view with a title, message and button titles.
*
* @param title Title
* @param message The content message
* @param buttonTitles The buttion titles array.
* @param block The callbac when clicked.
*
* @return The UIAlertView instance.
*/
+ (instancetype)hyb_showWithTitle:(NSString *)title
message:(NSString *)message
buttonTitles:(NSArray *)buttonTitles
block:(HYBAlertClickedButtonBlock)block;
@end
================================================
FILE: HYBHelperKitSources/UIAlertView+HYBHelperKit.m
================================================
//
// UIAlertView+HYBHelperKit.m
// HYBHelperKit
//
// Created by huangyibiao on 16/7/15.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import "UIAlertView+HYBHelperKit.h"
#import <objc/runtime.h>
#import "HYBCommonKit.h"
#import "NSArray+HYBHelperKit.h"
static const void *s_privateAlertViewKey = "s_privateAlertViewKey";
@interface UIApplication (HDFAlertView) <UIAlertViewDelegate>
@end
@implementation UIApplication (HDFAlertView)
#pragma mark - UIAlertViewDelegate
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (alertView.hyb_clickedButtonBlock) {
alertView.hyb_clickedButtonBlock(alertView, buttonIndex);
}
}
@end
@implementation UIAlertView (HYBHelperKit)
- (void)setHyb_clickedButtonBlock:(HYBAlertClickedButtonBlock)clickedButtonBlock {
objc_setAssociatedObject(self,
s_privateAlertViewKey,
clickedButtonBlock,
OBJC_ASSOCIATION_COPY);
}
- (HYBAlertClickedButtonBlock)hyb_clickedButtonBlock {
return objc_getAssociatedObject(self, s_privateAlertViewKey);
}
+ (instancetype)hyb_showWithTitle:(NSString *)title
message:(NSString *)message
buttonTitles:(NSArray *)buttonTitles
block:(HYBAlertClickedButtonBlock)block {
NSString *ok = nil;
if (kIsArray(buttonTitles) && buttonTitles.count > 0) {
ok = [buttonTitles hyb_objectAtIndex:0];
}
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:[UIApplication sharedApplication]
cancelButtonTitle:ok
otherButtonTitles:
[buttonTitles hyb_objectAtIndex:1],
[buttonTitles hyb_objectAtIndex:2],
[buttonTitles hyb_objectAtIndex:3],
[buttonTitles hyb_objectAtIndex:4],
[buttonTitles hyb_objectAtIndex:5],
[buttonTitles hyb_objectAtIndex:6],
[buttonTitles hyb_objectAtIndex:7],
[buttonTitles hyb_objectAtIndex:8],
[buttonTitles hyb_objectAtIndex:9],
[buttonTitles hyb_objectAtIndex:10],
[buttonTitles hyb_objectAtIndex:11],
[buttonTitles hyb_objectAtIndex:12],
[buttonTitles hyb_objectAtIndex:13],
[buttonTitles hyb_objectAtIndex:14],
nil];
alertView.hyb_clickedButtonBlock = block;
[alertView show];
return alertView;
}
@end
================================================
FILE: HYBHelperKitSources/UIButton+HYBHelperBlockKit.h
================================================
//
// UIButton+HYBHelperBlockKit.h
// HYBHelperKit
//
// Created by huangyibiao on 16/6/30.
// Copyright © 2016年 huangyibiao. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "HYBHelperBlocksKit.h"
#import "HYBCommonKit.h"
@interface UIButton (HYBHelperBlockKit)
/**
* @author https://github.com/CoderJackyHuang
*
* The most easy way to create a button with a touch up event callback block.
*
* @param onTouchUp The touch up event callback block.
*
* @return UIButton instance.
*/
+ (instancetype)hyb_buttonWithTouchUp:(HYBButtonBlock)onTouchUp;
/**
* @author https://github.com/CoderJackyHuang
*
* Create a button with super view, masonry auto layout, and touch up callback.
*
* @param superView Add the button to the superView.
* @param constraints Using Masonry to add constraints.
* @param touchUp The callback of touching up event.
*
* @return UIButton instance.
*/
+ (instancetype)hyb_buttonWithSuperView:(UIView *)superView
constraints:(HYBConstraintMaker)constraints
touchUp:(HYBButtonBlock)touchUp;
/**
* @author https://github.com/CoderJackyHuang
*
* Create a button with title, super view, masonry auto layout, and touch up callback.
*
* @param title Set title for the button.
* @param superView Add the button to the superView.
* @param constraints Using Masonry to add constraints.
* @param touchUp The callback of touching up event.
*
* @return UIButton instance.
*/
+ (instancetype)hyb_buttonWithTitle:(NSString *)title
superView:(UIView *)superView
constraints:(HYBConstraintMaker)constraints
touchUp:(HYBButtonBlock)touchUp;
/**
* @author https://github.com/CoderJackyHuang
*
* Create a button with image, super view, masonry auto layout, and touch up callback.
*
* @param image Set normal state image for the button, it can be
* a image name or a real UIImage.
* @param superView Add the button to the superView.
* @param constraints Using Masonry to add constraints.
* @param touchUp The callback of touching up event.
*
* @return UIButton instance.
*/
+ (instancetype)hyb_buttonWithImage:(id)image
superView:(UIView *)superView
constraints:(HYBConstraintMaker)constraints
touchUp:(HYBButtonBlock)touchUp;
/**
* @author https://github.com/CoderJackyHuang
*
* Create a button with normal image, selected image, super view,
* masonry auto layout, and touch up callback.
*
* @param image Set normal state image for the button, it can be
* a image name or a real UIImage.
* @param selectedImage Set selected state image for the button, it can be
* a image name or a real UIImage.
* @param superView
gitextract_grqcoj_k/ ├── .travis.yml ├── HYBHelperKit/ │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets/ │ │ └── AppIcon.appiconset/ │ │ └── Contents.json │ ├── Base.lproj/ │ │ └── LaunchScreen.storyboard │ ├── Info.plist │ ├── TestViewController1.h │ ├── TestViewController1.m │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── HYBHelperKit.podspec ├── HYBHelperKit.xcodeproj/ │ ├── project.pbxproj │ ├── project.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata/ │ │ └── huangyibiao.xcuserdatad/ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata/ │ └── huangyibiao.xcuserdatad/ │ ├── xcdebugger/ │ │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes/ │ ├── HYBHelperKit.xcscheme │ └── xcschememanagement.plist ├── HYBHelperKit.xcworkspace/ │ ├── contents.xcworkspacedata │ └── xcuserdata/ │ └── huangyibiao.xcuserdatad/ │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger/ │ └── Breakpoints_v2.xcbkptlist ├── HYBHelperKitSources/ │ ├── HYBCommonKit.h │ ├── HYBCommonKit.m │ ├── HYBHelperBlocksKit.h │ ├── HYBHelperKit.h │ ├── HYBHelperKitBaseController.h │ ├── HYBHelperKitBaseController.m │ ├── HYBHelperKitBaseURLController.h │ ├── HYBHelperKitBaseURLController.m │ ├── HYBHelperKitTestEntranceController.h │ ├── HYBHelperKitTestEntranceController.m │ ├── HYBHelperMasonryMaker.h │ ├── HYBHelperUIKit.h │ ├── NSArray+HYBHelperKit.h │ ├── NSArray+HYBHelperKit.m │ ├── NSDate+HYBHelperKit.h │ ├── NSDate+HYBHelperKit.m │ ├── NSDictionary+HYBHelperKit.h │ ├── NSDictionary+HYBHelperKit.m │ ├── NSFileManager+HYBHelperKit.h │ ├── NSFileManager+HYBHelperKit.m │ ├── NSMutableArray+HYBHelperKit.h │ ├── NSMutableArray+HYBHelperKit.m │ ├── NSMutableDictionary+HYBHelperKit.h │ ├── NSMutableDictionary+HYBHelperKit.m │ ├── NSNumber+HYBHelperKit.h │ ├── NSNumber+HYBHelperKit.m │ ├── NSObject+HYBHelperKit.h │ ├── NSObject+HYBHelperKit.m │ ├── NSString+HYBHelperKit.h │ ├── NSString+HYBHelperKit.m │ ├── NSTimer+HYBHelperKit.h │ ├── NSTimer+HYBHelperKit.m │ ├── NSUserDefaults+HYBHelperKit.h │ ├── NSUserDefaults+HYBHelperKit.m │ ├── UIActionSheet+HYBHelperKit.h │ ├── UIActionSheet+HYBHelperKit.m │ ├── UIAlertView+HYBHelperKit.h │ ├── UIAlertView+HYBHelperKit.m │ ├── UIButton+HYBHelperBlockKit.h │ ├── UIButton+HYBHelperBlockKit.m │ ├── UICollectionView+HYBMaonsryKit.h │ ├── UICollectionView+HYBMaonsryKit.m │ ├── UIColor+HYBHelperKitUIKit.h │ ├── UIColor+HYBHelperKitUIKit.m │ ├── UIControl+HYBHelperBlockKit.h │ ├── UIControl+HYBHelperBlockKit.m │ ├── UIDevice+HYBHelperKitUIKit.h │ ├── UIDevice+HYBHelperKitUIKit.m │ ├── UIGestureRecognizer+HYBHelperBlockKit.h │ ├── UIGestureRecognizer+HYBHelperBlockKit.m │ ├── UIImageView+HYBMasonryKit.h │ ├── UIImageView+HYBMasonryKit.m │ ├── UILabel+HYBMasonryKit.h │ ├── UILabel+HYBMasonryKit.m │ ├── UIScrollView+HYBMasonryKit.h │ ├── UIScrollView+HYBMasonryKit.m │ ├── UITableView+HYBMasonryKit.h │ ├── UITableView+HYBMasonryKit.m │ ├── UITextField+HYBMasonryKit.h │ ├── UITextField+HYBMasonryKit.m │ ├── UIView+HYBHelperBlockKit.h │ ├── UIView+HYBHelperBlockKit.m │ ├── UIView+HYBHelperKitUIKit.h │ ├── UIView+HYBHelperKitUIKit.m │ ├── UIView+HYBMasonryKit.h │ ├── UIView+HYBMasonryKit.m │ ├── UIWebView+HYBMasonryKit.h │ └── UIWebView+HYBMasonryKit.m ├── HYBHelperKitTests/ │ ├── ArrayTests.m │ ├── DictionaryTests.m │ ├── HYBHelperKitTests.m │ ├── Info.plist │ ├── NSObjectTests.m │ ├── NSStringTests.m │ ├── NSTimerTests.m │ └── NSUserDefaultsTests.m ├── LICENSE ├── Podfile ├── Pods/ │ ├── Masonry/ │ │ ├── LICENSE │ │ ├── Masonry/ │ │ │ ├── MASCompositeConstraint.h │ │ │ ├── MASCompositeConstraint.m │ │ │ ├── MASConstraint+Private.h │ │ │ ├── MASConstraint.h │ │ │ ├── MASConstraint.m │ │ │ ├── MASConstraintMaker.h │ │ │ ├── MASConstraintMaker.m │ │ │ ├── MASLayoutConstraint.h │ │ │ ├── MASLayoutConstraint.m │ │ │ ├── MASUtilities.h │ │ │ ├── MASViewAttribute.h │ │ │ ├── MASViewAttribute.m │ │ │ ├── MASViewConstraint.h │ │ │ ├── MASViewConstraint.m │ │ │ ├── Masonry.h │ │ │ ├── NSArray+MASAdditions.h │ │ │ ├── NSArray+MASAdditions.m │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ │ ├── View+MASAdditions.h │ │ │ ├── View+MASAdditions.m │ │ │ ├── View+MASShorthandAdditions.h │ │ │ ├── ViewController+MASAdditions.h │ │ │ └── ViewController+MASAdditions.m │ │ └── README.md │ ├── Pods.xcodeproj/ │ │ ├── project.pbxproj │ │ └── xcuserdata/ │ │ └── huangyibiao.xcuserdatad/ │ │ └── xcschemes/ │ │ ├── Masonry.xcscheme │ │ ├── Pods-HYBHelperKit.xcscheme │ │ ├── Pods-HYBHelperKitTests.xcscheme │ │ └── xcschememanagement.plist │ └── Target Support Files/ │ ├── Masonry/ │ │ ├── Masonry-dummy.m │ │ ├── Masonry-prefix.pch │ │ └── Masonry.xcconfig │ ├── Pods-HYBHelperKit/ │ │ ├── Pods-HYBHelperKit-acknowledgements.markdown │ │ ├── Pods-HYBHelperKit-acknowledgements.plist │ │ ├── Pods-HYBHelperKit-dummy.m │ │ ├── Pods-HYBHelperKit-frameworks.sh │ │ ├── Pods-HYBHelperKit-resources.sh │ │ ├── Pods-HYBHelperKit.debug.xcconfig │ │ └── Pods-HYBHelperKit.release.xcconfig │ └── Pods-HYBHelperKitTests/ │ ├── Pods-HYBHelperKitTests-acknowledgements.markdown │ ├── Pods-HYBHelperKitTests-acknowledgements.plist │ ├── Pods-HYBHelperKitTests-dummy.m │ ├── Pods-HYBHelperKitTests-frameworks.sh │ ├── Pods-HYBHelperKitTests-resources.sh │ ├── Pods-HYBHelperKitTests.debug.xcconfig │ └── Pods-HYBHelperKitTests.release.xcconfig ├── README.md └── codecov.yml
SYMBOL INDEX (5 symbols across 3 files)
FILE: Pods/Masonry/Masonry/MASUtilities.h
type UILayoutPriority (line 20) | typedef UILayoutPriority MASLayoutPriority;
type NSLayoutPriority (line 33) | typedef NSLayoutPriority MASLayoutPriority;
function id (line 76) | static inline id _MASBoxValue(const char *type, ...) {
FILE: Pods/Masonry/Masonry/NSArray+MASAdditions.h
type MASAxisTypeHorizontal (line 13) | typedef NS_ENUM(NSUInteger, MASAxisType) {
FILE: Pods/Masonry/Masonry/View+MASShorthandAdditions.h
function interface (line 17) | interface MAS_VIEW (MASShorthandAdditions)
Condensed preview — 150 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (507K chars).
[
{
"path": ".travis.yml",
"chars": 110,
"preview": "language: objective-c\nxcode_workspace: HYBHelperkit.xcworkspace\nxcode_scheme: HYBHelperKit\nscript: \n - date\n\n"
},
{
"path": "HYBHelperKit/AppDelegate.h",
"chars": 329,
"preview": "//\n// AppDelegate.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All r"
},
{
"path": "HYBHelperKit/AppDelegate.m",
"chars": 2847,
"preview": "//\n// AppDelegate.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All r"
},
{
"path": "HYBHelperKit/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 585,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"iphone\",\n \"size\" : \"29x29\",\n \"scale\" : \"2x\"\n },\n {\n \"idiom\""
},
{
"path": "HYBHelperKit/Base.lproj/LaunchScreen.storyboard",
"chars": 1666,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "HYBHelperKit/Info.plist",
"chars": 1038,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "HYBHelperKit/TestViewController1.h",
"chars": 253,
"preview": "//\n// TestViewController1.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/9.\n// Copyright © 2016年 huangyibiao"
},
{
"path": "HYBHelperKit/TestViewController1.m",
"chars": 1178,
"preview": "//\n// TestViewController1.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/9.\n// Copyright © 2016年 huangyibiao"
},
{
"path": "HYBHelperKit/ViewController.h",
"chars": 221,
"preview": "//\n// ViewController.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. Al"
},
{
"path": "HYBHelperKit/ViewController.m",
"chars": 1288,
"preview": "//\n// ViewController.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. Al"
},
{
"path": "HYBHelperKit/main.m",
"chars": 334,
"preview": "//\n// main.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All rights r"
},
{
"path": "HYBHelperKit.podspec",
"chars": 915,
"preview": "Pod::Spec.new do |s|\n\n s.name = \"HYBHelperKit\"\n s.version = \"0.2.0\"\n s.summary = \"日常开发必不可少的神器之一,UIB"
},
{
"path": "HYBHelperKit.xcodeproj/project.pbxproj",
"chars": 54757,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "HYBHelperKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 157,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:HYBHelperKit.xc"
},
{
"path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
"chars": 91,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n type = \"1\"\n version = \"2.0\">\n</Bucket>\n"
},
{
"path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/HYBHelperKit.xcscheme",
"chars": 3808,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0730\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "HYBHelperKit.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/xcschememanagement.plist",
"chars": 574,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "HYBHelperKit.xcworkspace/contents.xcworkspacedata",
"chars": 230,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"group:HYBHelperKit.x"
},
{
"path": "HYBHelperKit.xcworkspace/xcuserdata/huangyibiao.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist",
"chars": 91,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n type = \"0\"\n version = \"2.0\">\n</Bucket>\n"
},
{
"path": "HYBHelperKitSources/HYBCommonKit.h",
"chars": 8152,
"preview": "//\n// HYBCommonKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/10.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitSources/HYBCommonKit.m",
"chars": 204,
"preview": "//\n// HYBCommonKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/11.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitSources/HYBHelperBlocksKit.h",
"chars": 315,
"preview": "//\n// HYBHelperBlocksKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao"
},
{
"path": "HYBHelperKitSources/HYBHelperKit.h",
"chars": 852,
"preview": "//\n// HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitSources/HYBHelperKitBaseController.h",
"chars": 6131,
"preview": "//\n// HYBHelperKitBaseController.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/5.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/HYBHelperKitBaseController.m",
"chars": 11339,
"preview": "//\n// HYBHelperKitBaseController.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/5.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/HYBHelperKitBaseURLController.h",
"chars": 1038,
"preview": "//\n// HYBHelperKitBaseURLController.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 "
},
{
"path": "HYBHelperKitSources/HYBHelperKitBaseURLController.m",
"chars": 3190,
"preview": "//\n// HYBHelperKitBaseURLController.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 "
},
{
"path": "HYBHelperKitSources/HYBHelperKitTestEntranceController.h",
"chars": 1995,
"preview": "//\n// HYBHelperKitTestEntranceController.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/1.\n// Copyright © 20"
},
{
"path": "HYBHelperKitSources/HYBHelperKitTestEntranceController.m",
"chars": 2465,
"preview": "//\n// HYBHelperKitTestEntranceController.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/1.\n// Copyright © 20"
},
{
"path": "HYBHelperKitSources/HYBHelperMasonryMaker.h",
"chars": 449,
"preview": "//\n// HYBHelperMasonryMaker.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/HYBHelperUIKit.h",
"chars": 334,
"preview": "//\n// HYBHelperUIKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huangyibiao. Al"
},
{
"path": "HYBHelperKitSources/NSArray+HYBHelperKit.h",
"chars": 749,
"preview": "//\n// NSArray+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/NSArray+HYBHelperKit.m",
"chars": 909,
"preview": "//\n// NSArray+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/NSDate+HYBHelperKit.h",
"chars": 8619,
"preview": "//\n// NSDate+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/11.\n// Copyright © 2016年 huangyibia"
},
{
"path": "HYBHelperKitSources/NSDate+HYBHelperKit.m",
"chars": 18923,
"preview": "//\n// NSDate+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/11.\n// Copyright © 2016年 huangyibia"
},
{
"path": "HYBHelperKitSources/NSDictionary+HYBHelperKit.h",
"chars": 2873,
"preview": "//\n// NSDictionary+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/NSDictionary+HYBHelperKit.m",
"chars": 2563,
"preview": "//\n// NSDictionary+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/NSFileManager+HYBHelperKit.h",
"chars": 1105,
"preview": "//\n// NSFileManager+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/NSFileManager+HYBHelperKit.m",
"chars": 1954,
"preview": "//\n// NSFileManager+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/NSMutableArray+HYBHelperKit.h",
"chars": 1177,
"preview": "//\n// NSMutableArray+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/NSMutableArray+HYBHelperKit.m",
"chars": 1157,
"preview": "//\n// NSMutableArray+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.h",
"chars": 860,
"preview": "//\n// NSMutableDictionary+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 201"
},
{
"path": "HYBHelperKitSources/NSMutableDictionary+HYBHelperKit.m",
"chars": 621,
"preview": "//\n// NSMutableDictionary+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 201"
},
{
"path": "HYBHelperKitSources/NSNumber+HYBHelperKit.h",
"chars": 383,
"preview": "//\n// NSNumber+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/13.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSNumber+HYBHelperKit.m",
"chars": 313,
"preview": "//\n// NSNumber+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/13.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSObject+HYBHelperKit.h",
"chars": 1358,
"preview": "//\n// NSObject+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSObject+HYBHelperKit.m",
"chars": 5592,
"preview": "//\n// NSObject+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSString+HYBHelperKit.h",
"chars": 5593,
"preview": "//\n// NSString+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSString+HYBHelperKit.m",
"chars": 11595,
"preview": "//\n// NSString+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyib"
},
{
"path": "HYBHelperKitSources/NSTimer+HYBHelperKit.h",
"chars": 1313,
"preview": "//\n// NSTimer+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/NSTimer+HYBHelperKit.m",
"chars": 3190,
"preview": "//\n// NSTimer+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/NSUserDefaults+HYBHelperKit.h",
"chars": 499,
"preview": "//\n// NSUserDefaults+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/NSUserDefaults+HYBHelperKit.m",
"chars": 874,
"preview": "//\n// NSUserDefaults+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/UIActionSheet+HYBHelperKit.h",
"chars": 1365,
"preview": "//\n// UIActionSheet+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/15.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UIActionSheet+HYBHelperKit.m",
"chars": 3765,
"preview": "//\n// UIActionSheet+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/15.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UIAlertView+HYBHelperKit.h",
"chars": 1080,
"preview": "//\n// UIAlertView+HYBHelperKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/15.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UIAlertView+HYBHelperKit.m",
"chars": 2893,
"preview": "//\n// UIAlertView+HYBHelperKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/15.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UIButton+HYBHelperBlockKit.h",
"chars": 3356,
"preview": "//\n// UIButton+HYBHelperBlockKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UIButton+HYBHelperBlockKit.m",
"chars": 3774,
"preview": "//\n// UIButton+HYBHelperBlockKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UICollectionView+HYBMaonsryKit.h",
"chars": 4237,
"preview": "//\n// UICollectionView+HYBMaonsryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/7.\n// Copyright © 2016年 "
},
{
"path": "HYBHelperKitSources/UICollectionView+HYBMaonsryKit.m",
"chars": 4084,
"preview": "//\n// UICollectionView+HYBMaonsryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/7.\n// Copyright © 2016年 "
},
{
"path": "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.h",
"chars": 1241,
"preview": "//\n// UIColor+HYBHelperKitUIKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UIColor+HYBHelperKitUIKit.m",
"chars": 975,
"preview": "//\n// UIColor+HYBHelperKitUIKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UIControl+HYBHelperBlockKit.h",
"chars": 964,
"preview": "//\n// UIControl+HYBHelperBlockKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/UIControl+HYBHelperBlockKit.m",
"chars": 3725,
"preview": "//\n// UIControl+HYBHelperBlockKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hu"
},
{
"path": "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.h",
"chars": 2968,
"preview": "//\n// UIDevice+HYBHelperKitUIKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UIDevice+HYBHelperKitUIKit.m",
"chars": 8416,
"preview": "//\n// UIDevice+HYBHelperKitUIKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 hua"
},
{
"path": "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.h",
"chars": 818,
"preview": "//\n// UIGestureRecognizer+HYBHelperBlockKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright "
},
{
"path": "HYBHelperKitSources/UIGestureRecognizer+HYBHelperBlockKit.m",
"chars": 2578,
"preview": "//\n// UIGestureRecognizer+HYBHelperBlockKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright "
},
{
"path": "HYBHelperKitSources/UIImageView+HYBMasonryKit.h",
"chars": 1511,
"preview": "//\n// UIImageView+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UIImageView+HYBMasonryKit.m",
"chars": 3122,
"preview": "//\n// UIImageView+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UILabel+HYBMasonryKit.h",
"chars": 2623,
"preview": "//\n// UILabel+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/UILabel+HYBMasonryKit.m",
"chars": 2108,
"preview": "//\n// UILabel+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangyibi"
},
{
"path": "HYBHelperKitSources/UIScrollView+HYBMasonryKit.h",
"chars": 1509,
"preview": "//\n// UIScrollView+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UIScrollView+HYBMasonryKit.m",
"chars": 1374,
"preview": "//\n// UIScrollView+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UITableView+HYBMasonryKit.h",
"chars": 2655,
"preview": "//\n// UITableView+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UITableView+HYBMasonryKit.m",
"chars": 2171,
"preview": "//\n// UITableView+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UITextField+HYBMasonryKit.h",
"chars": 3179,
"preview": "//\n// UITextField+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UITextField+HYBMasonryKit.m",
"chars": 3450,
"preview": "//\n// UITextField+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huan"
},
{
"path": "HYBHelperKitSources/UIView+HYBHelperBlockKit.h",
"chars": 1216,
"preview": "//\n// UIView+HYBHelperBlockKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangy"
},
{
"path": "HYBHelperKitSources/UIView+HYBHelperBlockKit.m",
"chars": 1543,
"preview": "//\n// UIView+HYBHelperBlockKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangy"
},
{
"path": "HYBHelperKitSources/UIView+HYBHelperKitUIKit.h",
"chars": 1191,
"preview": "//\n// UIView+HYBHelperKitUIKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UIView+HYBHelperKitUIKit.m",
"chars": 2066,
"preview": "//\n// UIView+HYBHelperKitUIKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huang"
},
{
"path": "HYBHelperKitSources/UIView+HYBMasonryKit.h",
"chars": 5556,
"preview": "//\n// UIView+HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangyibia"
},
{
"path": "HYBHelperKitSources/UIView+HYBMasonryKit.m",
"chars": 5538,
"preview": "//\n// UIView+HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/6.\n// Copyright © 2016年 huangyibia"
},
{
"path": "HYBHelperKitSources/UIWebView+HYBMasonryKit.h",
"chars": 1737,
"preview": "//\n// HYBMasonryKit.h\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/9.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitSources/UIWebView+HYBMasonryKit.m",
"chars": 1569,
"preview": "//\n// HYBMasonryKit.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/7/9.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitTests/ArrayTests.m",
"chars": 1775,
"preview": "//\n// ArrayTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All ri"
},
{
"path": "HYBHelperKitTests/DictionaryTests.m",
"chars": 4138,
"preview": "//\n// DictionaryTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/30.\n// Copyright © 2016年 huangyibiao. A"
},
{
"path": "HYBHelperKitTests/HYBHelperKitTests.m",
"chars": 1320,
"preview": "//\n// HYBHelperKitTests.m\n// HYBHelperKitTests\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyi"
},
{
"path": "HYBHelperKitTests/Info.plist",
"chars": 733,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "HYBHelperKitTests/NSObjectTests.m",
"chars": 864,
"preview": "//\n// NSObjectTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All"
},
{
"path": "HYBHelperKitTests/NSStringTests.m",
"chars": 2038,
"preview": "//\n// NSStringTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All"
},
{
"path": "HYBHelperKitTests/NSTimerTests.m",
"chars": 900,
"preview": "//\n// NSTimerTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibiao. All "
},
{
"path": "HYBHelperKitTests/NSUserDefaultsTests.m",
"chars": 1467,
"preview": "//\n// NSUserDefaultsTests.m\n// HYBHelperKit\n//\n// Created by huangyibiao on 16/6/29.\n// Copyright © 2016年 huangyibia"
},
{
"path": "LICENSE",
"chars": 1077,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2016 JackyHuang\n\nPermission is hereby granted, free of charge, to any person obtain"
},
{
"path": "Podfile",
"chars": 164,
"preview": "source 'https://github.com/CocoaPods/Specs.git'\n\nplatform :ios, '7.0'\n\ntarget 'HYBHelperKit' do\n\npod 'Masonry', '~> 1.0."
},
{
"path": "Pods/Masonry/LICENSE",
"chars": 1089,
"preview": "Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry\n\nPermission is hereby granted, free of charge, to any "
},
{
"path": "Pods/Masonry/Masonry/MASCompositeConstraint.h",
"chars": 494,
"preview": "//\n// MASCompositeConstraint.h\n// Masonry\n//\n// Created by Jonas Budelmann on 21/07/13.\n// Copyright (c) 2013 cloudl"
},
{
"path": "Pods/Masonry/Masonry/MASCompositeConstraint.m",
"chars": 4730,
"preview": "//\n// MASCompositeConstraint.m\n// Masonry\n//\n// Created by Jonas Budelmann on 21/07/13.\n// Copyright (c) 2013 cloudl"
},
{
"path": "Pods/Masonry/Masonry/MASConstraint+Private.h",
"chars": 1785,
"preview": "//\n// MASConstraint+Private.h\n// Masonry\n//\n// Created by Nick Tymchenko on 29/04/14.\n// Copyright (c) 2014 cloudlin"
},
{
"path": "Pods/Masonry/Masonry/MASConstraint.h",
"chars": 7227,
"preview": "//\n// MASConstraint.h\n// Masonry\n//\n// Created by Jonas Budelmann on 22/07/13.\n// Copyright (c) 2013 cloudling. All "
},
{
"path": "Pods/Masonry/Masonry/MASConstraint.m",
"chars": 7965,
"preview": "//\n// MASConstraint.m\n// Masonry\n//\n// Created by Nick Tymchenko on 1/20/14.\n//\n\n#import \"MASConstraint.h\"\n#import \"M"
},
{
"path": "Pods/Masonry/Masonry/MASConstraintMaker.h",
"chars": 5629,
"preview": "//\n// MASConstraintBuilder.h\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudlin"
},
{
"path": "Pods/Masonry/Masonry/MASConstraintMaker.m",
"chars": 10293,
"preview": "//\n// MASConstraintBuilder.m\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudlin"
},
{
"path": "Pods/Masonry/Masonry/MASLayoutConstraint.h",
"chars": 505,
"preview": "//\n// MASLayoutConstraint.h\n// Masonry\n//\n// Created by Jonas Budelmann on 3/08/13.\n// Copyright (c) 2013 Jonas Bude"
},
{
"path": "Pods/Masonry/Masonry/MASLayoutConstraint.m",
"chars": 227,
"preview": "//\n// MASLayoutConstraint.m\n// Masonry\n//\n// Created by Jonas Budelmann on 3/08/13.\n// Copyright (c) 2013 Jonas Bude"
},
{
"path": "Pods/Masonry/Masonry/MASUtilities.h",
"chars": 6273,
"preview": "//\n// MASUtilities.h\n// Masonry\n//\n// Created by Jonas Budelmann on 19/08/13.\n// Copyright (c) 2013 Jonas Budelmann."
},
{
"path": "Pods/Masonry/Masonry/MASViewAttribute.h",
"chars": 1217,
"preview": "//\n// MASAttribute.h\n// Masonry\n//\n// Created by Jonas Budelmann on 21/07/13.\n// Copyright (c) 2013 cloudling. All r"
},
{
"path": "Pods/Masonry/Masonry/MASViewAttribute.m",
"chars": 1191,
"preview": "//\n// MASAttribute.m\n// Masonry\n//\n// Created by Jonas Budelmann on 21/07/13.\n// Copyright (c) 2013 cloudling. All r"
},
{
"path": "Pods/Masonry/Masonry/MASViewConstraint.h",
"chars": 1275,
"preview": "//\n// MASConstraint.h\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudling. All "
},
{
"path": "Pods/Masonry/Masonry/MASViewConstraint.m",
"chars": 13159,
"preview": "//\n// MASConstraint.m\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudling. All "
},
{
"path": "Pods/Masonry/Masonry/Masonry.h",
"chars": 802,
"preview": "//\n// Masonry.h\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudling. All rights"
},
{
"path": "Pods/Masonry/Masonry/NSArray+MASAdditions.h",
"chars": 2753,
"preview": "//\n// NSArray+MASAdditions.h\n//\n//\n// Created by Daniel Hammond on 11/26/13.\n//\n//\n\n#import \"MASUtilities.h\"\n#import \""
},
{
"path": "Pods/Masonry/Masonry/NSArray+MASAdditions.m",
"chars": 6275,
"preview": "//\n// NSArray+MASAdditions.m\n// \n//\n// Created by Daniel Hammond on 11/26/13.\n//\n//\n\n#import \"NSArray+MASAdditions.h\""
},
{
"path": "Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h",
"chars": 1016,
"preview": "//\n// NSArray+MASShorthandAdditions.h\n// Masonry\n//\n// Created by Jonas Budelmann on 22/07/13.\n// Copyright (c) 2013"
},
{
"path": "Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h",
"chars": 326,
"preview": "//\n// NSLayoutConstraint+MASDebugAdditions.h\n// Masonry\n//\n// Created by Jonas Budelmann on 3/08/13.\n// Copyright (c"
},
{
"path": "Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.m",
"chars": 5718,
"preview": "//\n// NSLayoutConstraint+MASDebugAdditions.m\n// Masonry\n//\n// Created by Jonas Budelmann on 3/08/13.\n// Copyright (c"
},
{
"path": "Pods/Masonry/Masonry/View+MASAdditions.h",
"chars": 4091,
"preview": "//\n// UIView+MASAdditions.h\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudling"
},
{
"path": "Pods/Masonry/Masonry/View+MASAdditions.m",
"chars": 5522,
"preview": "//\n// UIView+MASAdditions.m\n// Masonry\n//\n// Created by Jonas Budelmann on 20/07/13.\n// Copyright (c) 2013 cloudling"
},
{
"path": "Pods/Masonry/Masonry/View+MASShorthandAdditions.h",
"chars": 3776,
"preview": "//\n// UIView+MASShorthandAdditions.h\n// Masonry\n//\n// Created by Jonas Budelmann on 22/07/13.\n// Copyright (c) 2013 "
},
{
"path": "Pods/Masonry/Masonry/ViewController+MASAdditions.h",
"chars": 891,
"preview": "//\n// UIViewController+MASAdditions.h\n// Masonry\n//\n// Created by Craig Siemens on 2015-06-23.\n//\n//\n\n#import \"MASUti"
},
{
"path": "Pods/Masonry/Masonry/ViewController+MASAdditions.m",
"chars": 1302,
"preview": "//\n// UIViewController+MASAdditions.m\n// Masonry\n//\n// Created by Craig Siemens on 2015-06-23.\n//\n//\n\n#import \"ViewCo"
},
{
"path": "Pods/Masonry/README.md",
"chars": 16050,
"preview": "#Masonry [](https://travis-ci.org/SnapKit/Masonr"
},
{
"path": "Pods/Pods.xcodeproj/project.pbxproj",
"chars": 40016,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Masonry.xcscheme",
"chars": 2087,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0700\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Pods-HYBHelperKit.xcscheme",
"chars": 2107,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0700\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/Pods-HYBHelperKitTests.xcscheme",
"chars": 2117,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0700\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Pods/Pods.xcodeproj/xcuserdata/huangyibiao.xcuserdatad/xcschemes/xcschememanagement.plist",
"chars": 860,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Pods/Target Support Files/Masonry/Masonry-dummy.m",
"chars": 118,
"preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Masonry : NSObject\n@end\n@implementation PodsDummy_Masonry\n@end\n"
},
{
"path": "Pods/Target Support Files/Masonry/Masonry-prefix.pch",
"chars": 48,
"preview": "#ifdef __OBJC__\n#import <UIKit/UIKit.h>\n#endif\n\n"
},
{
"path": "Pods/Target Support Files/Masonry/Masonry.xcconfig",
"chars": 575,
"preview": "CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Masonry\nGCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\n"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-acknowledgements.markdown",
"chars": 1236,
"preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\n\n## Masonry\n\nCopyright (c) 2011-20"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-acknowledgements.plist",
"chars": 2063,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-dummy.m",
"chars": 138,
"preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_HYBHelperKit : NSObject\n@end\n@implementation PodsDummy_Pods_"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-frameworks.sh",
"chars": 3374,
"preview": "#!/bin/sh\nset -e\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_D"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit-resources.sh",
"chars": 5093,
"preview": "#!/bin/sh\nset -e\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n\nRESOURCES_TO_COPY=${PODS_ROOT}/re"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.debug.xcconfig",
"chars": 585,
"preview": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\""
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKit/Pods-HYBHelperKit.release.xcconfig",
"chars": 585,
"preview": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\""
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-acknowledgements.markdown",
"chars": 133,
"preview": "# Acknowledgements\nThis application makes use of the following third party libraries:\nGenerated by CocoaPods - https://c"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-acknowledgements.plist",
"chars": 805,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-dummy.m",
"chars": 148,
"preview": "#import <Foundation/Foundation.h>\n@interface PodsDummy_Pods_HYBHelperKitTests : NSObject\n@end\n@implementation PodsDummy_"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-frameworks.sh",
"chars": 3374,
"preview": "#!/bin/sh\nset -e\n\necho \"mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\nmkdir -p \"${CONFIGURATION_BUILD_D"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests-resources.sh",
"chars": 5093,
"preview": "#!/bin/sh\nset -e\n\nmkdir -p \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\"\n\nRESOURCES_TO_COPY=${PODS_ROOT}/re"
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.debug.xcconfig",
"chars": 454,
"preview": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\""
},
{
"path": "Pods/Target Support Files/Pods-HYBHelperKitTests/Pods-HYBHelperKitTests.release.xcconfig",
"chars": 454,
"preview": "GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1\nHEADER_SEARCH_PATHS = $(inherited) \"${PODS_ROOT}/Headers/Public\""
},
{
"path": "README.md",
"chars": 2881,
"preview": "# HYBHelperKit\n\n\n[](https://travis-"
},
{
"path": "codecov.yml",
"chars": 86,
"preview": "coverage:\n ignore:\n - HYBHelperKitTests/*\n - Pods/*\n status:\n patch: false\n"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the CoderJackyHuang/HYBHelperKit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 150 files (459.0 KB), approximately 131.6k tokens, and a symbol index with 5 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.