Commit b1011432 authored by 陈业泓's avatar 陈业泓

更新了JKCategories版本

parent 1da105e4
This diff is collapsed.
......@@ -7,7 +7,7 @@
//
#import "NSData+JKAPNSToken.h"
#import <UIKit/UIKit.h>
@implementation NSData (JKAPNSToken)
/**
* @brief 将APNS NSData类型token 格式化成字符串
......@@ -15,10 +15,21 @@
* @return 字符串token
*/
- (NSString *)jk_APNSToken {
return [[[[self description]
stringByReplacingOccurrencesOfString: @"<" withString: @""]
stringByReplacingOccurrencesOfString: @">" withString: @""]
stringByReplacingOccurrencesOfString: @" " withString: @""];
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 13) {
if (![self isKindOfClass:[NSData class]]) {
return @"";
}
NSUInteger len = [self length];
char *chars = (char *)[self bytes];
NSMutableString *hexString = [[NSMutableString alloc]init];
for (NSUInteger i=0; i<len; i++) {
[hexString appendString:[NSString stringWithFormat:@"%0.2hhx" , chars[i]]];
}
return hexString;
} else {
NSString *myToken = [[self description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
myToken = [myToken stringByReplacingOccurrencesOfString:@" " withString:@""];
return myToken;
}
}
@end
......@@ -429,13 +429,12 @@
if (time < 3600) { // 小于一小时
retTime = time / 60;
retTime = retTime <= 0.0 ? 1.0 : retTime;
// return [NSString stringWithFormat:@"%.0f分钟前", retTime];
return retTime < 1.0 ? @"刚刚" : [NSString stringWithFormat:@"%.0f分钟前", retTime];
return retTime < 1.0 ? @"刚刚" : [NSString stringWithFormat:@"%d分钟前", (int)retTime];
} else if (time < 3600 * 24) { // 小于一天,也就是今天
retTime = time / 3600;
retTime = retTime <= 0.0 ? 1.0 : retTime;
return [NSString stringWithFormat:@"%.0f小时前", retTime];
return [NSString stringWithFormat:@"%d小时前", (int)retTime];
} else if (time < 3600 * 24 * 2) {
return @"昨天";
}
......
......@@ -12,7 +12,7 @@
* @brief A Cocoa / Objective-C NSFileHandle category that adds the ability to read a file line by line.
*
* @param theDelimier 分隔符
* @param theDelimiter 分隔符
*
* @return An NSData* object is returned with the line if found, or nil if no more lines were found
*/
......
......@@ -21,7 +21,7 @@
* @brief GCD主线程执行代码块
*
* @param block 代码块
* @param wait 是否同步请求
* @param shouldWait 是否同步请求
*/
- (void)jk_performOnMainThread:(void(^)(void))block wait:(BOOL)shouldWait {
if (shouldWait) {
......@@ -45,4 +45,4 @@
dispatch_after(popTime, dispatch_get_main_queue(), block);
}
@end
\ No newline at end of file
@end
......@@ -10,7 +10,9 @@
@interface UIDevice (JKHardware)
//返回机型代号 例如 iPhone10,2
+ (NSString *)jk_platform;
//返回机型名称 例如 iPhone 8 Plus
+ (NSString *)jk_platformString;
......
......@@ -71,9 +71,16 @@
if ([platform isEqualToString:@"iPhone12,1"]) return @"iPhone 11";
if ([platform isEqualToString:@"iPhone12,3"]) return @"iPhone 11 Pro";
if ([platform isEqualToString:@"iPhone12,5"]) return @"iPhone 11 Pro Max";
if ([platform isEqualToString:@"iPhone12,8"]) return @"iPhone SE (2nd generation)";
if ([platform isEqualToString:@"iPhone12,8"]) return @"iPhone SE 2";
if ([platform isEqualToString:@"iPhone13,1"]) return @"iPhone 12 Mini";
if ([platform isEqualToString:@"iPhone13,2"]) return @"iPhone 12";
if ([platform isEqualToString:@"iPhone13,3"]) return @"iPhone 12 Pro";
if ([platform isEqualToString:@"iPhone13,4"]) return @"iPhone 12 Pro Max";
if ([platform isEqualToString:@"iPhone14,4"]) return @"iPhone 13 Mini";
if ([platform isEqualToString:@"iPhone14,5"]) return @"iPhone 13";
if ([platform isEqualToString:@"iPhone14,2"]) return @"iPhone 13 Pro";
if ([platform isEqualToString:@"iPhone14,3"]) return @"iPhone 13 Pro Max";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return @"iPod Touch 3G";
......@@ -121,24 +128,43 @@
if ([platform isEqualToString:@"iPad7,4"]) return @"iPad Pro 10.5-inch (Cellular)";
if ([platform isEqualToString:@"iPad7,5"]) return @"iPad 6 (WiFi)";
if ([platform isEqualToString:@"iPad7,6"]) return @"iPad 6 (Cellular)";
if ([platform isEqualToString:@"iPad8,1"]) return @"iPad Pro 3rd Gen 11-inch (WiFi)";
if ([platform isEqualToString:@"iPad8,2"]) return @"iPad Pro 3rd Gen 11-inch (WiFi)"; // 1TB
if ([platform isEqualToString:@"iPad8,3"]) return @"iPad Pro 3rd Gen 11-inch (Cellular)";
if ([platform isEqualToString:@"iPad8,4"]) return @"iPad Pro 3rd Gen 11-inch (Cellular)"; // 1TB
if ([platform isEqualToString:@"iPad8,5"]) return @"iPad Pro 3rd Gen 12.9-inch (WiFi)";
if ([platform isEqualToString:@"iPad8,6"]) return @"iPad Pro 3rd Gen 12.9-inch (WiFi)"; // 1TB
if ([platform isEqualToString:@"iPad8,7"]) return @"iPad Pro 3rd Gen 12.9-inch (Cellular)";
if ([platform isEqualToString:@"iPad8,8"]) return @"iPad Pro 3rd Gen 12.9-inch (Cellular)"; // 1TB
if ([platform isEqualToString:@"iPad8,9"]) return @"iPad Pro 2rd Gen 11-inch";
if ([platform isEqualToString:@"iPad8,10"]) return @"iPad Pro 2rd Gen 11-inch";
if ([platform isEqualToString:@"iPad8,11"]) return @"iPad Pro 4rd Gen 12.9-inch";
if ([platform isEqualToString:@"iPad8,12"]) return @"iPad Pro 4rd Gen 12.9-inch";
if ([platform isEqualToString:@"iPad7,11"]) return @"iPad 7 (WiFi)";
if ([platform isEqualToString:@"iPad7,12"]) return @"iPad 7 (Cellular)";
if ([platform isEqualToString:@"iPad8,1"]) return @"iPad Pro 11-inch (WiFi)";
if ([platform isEqualToString:@"iPad8,2"]) return @"iPad Pro 11-inch (WiFi, 1TB)";
if ([platform isEqualToString:@"iPad8,3"]) return @"iPad Pro 11-inch (Cellular)";
if ([platform isEqualToString:@"iPad8,4"]) return @"iPad Pro 11-inch (Cellular, 1TB)";
if ([platform isEqualToString:@"iPad8,5"]) return @"iPad Pro 12.9-inch 3 (WiFi)";
if ([platform isEqualToString:@"iPad8,6"]) return @"iPad Pro 12.9-inch 3 (WiFi, 1TB)";
if ([platform isEqualToString:@"iPad8,7"]) return @"iPad Pro 12.9-inch 3 (Cellular)";
if ([platform isEqualToString:@"iPad8,8"]) return @"iPad Pro 12.9-inch 3 (Cellular, 1TB)";
if ([platform isEqualToString:@"iPad8,9"]) return @"iPad Pro 11-inch 2 (WiFi)";
if ([platform isEqualToString:@"iPad8,10"]) return @"iPad Pro 11-inch 2 (Cellular)";
if ([platform isEqualToString:@"iPad8,11"]) return @"iPad Pro 12.9-inch 4 (WiFi)";
if ([platform isEqualToString:@"iPad8,12"]) return @"iPad Pro 12.9-inch 4 (Cellular)";
if ([platform isEqualToString:@"iPad11,1"]) return @"iPad Mini 5 (WiFi)";
if ([platform isEqualToString:@"iPad11,2"]) return @"iPad Mini 5 (Cellular)";
if ([platform isEqualToString:@"iPad11,3"]) return @"iPad Air 3 (WiFi)";
if ([platform isEqualToString:@"iPad11,4"]) return @"iPad Air 3 (Cellular)";
if ([platform isEqualToString:@"iPad11,6"]) return @"iPad 8 (WiFi)";
if ([platform isEqualToString:@"iPad11,7"]) return @"iPad 8 (Cellular)";
if ([platform isEqualToString:@"iPad13,1"]) return @"iPad Air 4 (WiFi)";
if ([platform isEqualToString:@"iPad13,2"]) return @"iPad Air 4 (Cellular)";
if ([platform isEqualToString:@"iPad12,1"]) return @"iPad 9";
if ([platform isEqualToString:@"iPad12,2"]) return @"iPad 9";
if ([platform isEqualToString:@"iPad14,1"]) return @"iPad Mini 6";
if ([platform isEqualToString:@"iPad14,2"]) return @"iPad Mini 6";
if ([platform isEqualToString:@"iPad11,1"]) return @"iPad Mini 5 (WiFi)";
if ([platform isEqualToString:@"iPad11,2"]) return @"iPad Mini 5";
if ([platform isEqualToString:@"iPad11,3"]) return @"iPad Air 3 (WiFi)";
if ([platform isEqualToString:@"iPad11,4"]) return @"iPad Air 3";
if ([platform isEqualToString:@"AirPods1,1"]) return @"AirPods";
if ([platform isEqualToString:@"AirPods2,1"]) return @"AirPods 2";
if ([platform isEqualToString:@"AirPods8,1"]) return @"AirPods Pro";
if ([platform isEqualToString:@"AudioAccessory1,1"]) return @"HomePod";
if ([platform isEqualToString:@"AudioAccessory1,2"]) return @"HomePod";
if ([platform isEqualToString:@"AudioAccessory5,1"]) return @"HomePod mini";
if ([platform isEqualToString:@"i386"]) return [UIDevice currentDevice].model;
if ([platform isEqualToString:@"x86_64"]) return [UIDevice currentDevice].model;
......
......@@ -113,7 +113,7 @@
/**
* @brief 旋转图片
*
* @param degrees 弧度
* @param radians 弧度
*
* @return 旋转后图片
*/
......
......@@ -15,6 +15,7 @@
interpolationQuality:(CGInterpolationQuality)quality;
- (UIImage *)jk_resizedImage:(CGSize)newSize
interpolationQuality:(CGInterpolationQuality)quality;
- (UIImage *)jk_resizedImage:(CGSize)newSize;
- (UIImage *)jk_resizedImageWithContentMode:(UIViewContentMode)contentMode
bounds:(CGSize)bounds
interpolationQuality:(CGInterpolationQuality)quality;
......
......@@ -75,6 +75,15 @@
interpolationQuality:quality];
}
- (UIImage *)jk_resizedImage:(CGSize)newSize
{
UIGraphicsBeginImageContextWithOptions(newSize, NO, UIScreen.mainScreen.scale);
[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
// Resizes the image according to the given content mode, taking into account the image's orientation
- (UIImage *)jk_resizedImageWithContentMode:(UIViewContentMode)contentMode
bounds:(CGSize)bounds
......
......@@ -10,9 +10,9 @@
@interface UIView (JKFind)
/**
* @brief 找到指定类名的SubVie对象
* @brief 找到指定类名的SubView对象
*
* @param clazz SubVie类名
* @param clazz SubView类名
*
* @return view对象
*/
......@@ -27,7 +27,7 @@
- (id)jk_findSuperViewWithSuperViewClass:(Class)clazz;
/**
* @brief 找到并且resign第一响应者
* @brief 找到并且释放第一响应者
*
* @return 结果
*/
......@@ -43,4 +43,15 @@
* @brief 找到当前view所在的viewcontroler
*/
@property (readonly) UIViewController *jk_viewController;
/**
* @brief 找到当前view所在的navigationController
*/
@property (readonly) UINavigationController *jk_navigationController;
/**
* @brief 找到当前view所在的tabBarController
*/
@property (readonly) UITabBarController *jk_tabBarController;
@end
......@@ -100,4 +100,38 @@
return nil;
}
/**
* @brief 找到当前view所在的navigationController
*/
- (UINavigationController *)jk_navigationController
{
UIResponder *responder = self.nextResponder;
do {
if ([responder isKindOfClass:[UINavigationController class]]) {
return (UINavigationController *)responder;
}
responder = responder.nextResponder;
} while (responder);
return nil;
}
/**
* @brief 找到当前view所在的tabBarController
*/
- (UITabBarController *)jk_tabBarController
{
UIResponder *responder = self.nextResponder;
do {
if ([responder isKindOfClass:[UITabBarController class]]) {
return (UITabBarController *)responder;
}
responder = responder.nextResponder;
} while (responder);
return nil;
}
@end
......@@ -9,6 +9,7 @@
#import <UIKit/UIKit.h>
@interface UIView (JKFrame)
// shortcuts for frame properties
@property (nonatomic, assign) CGPoint jk_origin;
@property (nonatomic, assign) CGSize jk_size;
......@@ -17,12 +18,14 @@
@property (nonatomic) CGFloat jk_centerX;
@property (nonatomic) CGFloat jk_centerY;
// shortcuts for the coords
@property (nonatomic) CGFloat jk_top;
@property (nonatomic) CGFloat jk_bottom;
@property (nonatomic) CGFloat jk_right;
@property (nonatomic) CGFloat jk_left;
@property (nonatomic) CGFloat jk_right;
// shortcuts for the size
@property (nonatomic) CGFloat jk_width;
@property (nonatomic) CGFloat jk_height;
@end
......@@ -9,117 +9,110 @@
#import "UIView+JKFrame.h"
@implementation UIView (JKFrame)
#pragma mark - Shortcuts for the coords
- (CGFloat)jk_top
{
return self.frame.origin.y;
#pragma mark - Shortcuts for frame properties
- (CGPoint)jk_origin {
return self.frame.origin;
}
- (void)setJk_top:(CGFloat)y
{
- (void)setJk_origin:(CGPoint)origin {
CGRect frame = self.frame;
frame.origin.y = y;
frame.origin = origin;
self.frame = frame;
}
- (CGFloat)jk_right
{
return self.frame.origin.x + self.frame.size.width;
- (CGSize)jk_size {
return self.frame.size;
}
- (void)setJk_right:(CGFloat)right
{
- (void)setJk_size:(CGSize)size {
CGRect frame = self.frame;
frame.origin.x = right - self.frame.size.width;
frame.size = size;
self.frame = frame;
}
- (CGFloat)jk_bottom
{
return self.frame.origin.y + self.frame.size.height;
#pragma mark - Shortcuts for positions
- (CGFloat)jk_centerX {
return self.center.x;
}
- (void)setJk_bottom:(CGFloat)bottom
{
CGRect frame = self.frame;
frame.origin.y = bottom - self.frame.size.height;
self.frame = frame;
- (void)setJk_centerX:(CGFloat)centerX {
self.center = CGPointMake(centerX, self.center.y);
}
- (CGFloat)jk_left
{
return self.frame.origin.x;
- (CGFloat)jk_centerY {
return self.center.y;
}
- (void)setJk_left:(CGFloat)x
{
CGRect frame = self.frame;
frame.origin.x = x;
self.frame = frame;
- (void)setJk_centerY:(CGFloat)centerY {
self.center = CGPointMake(self.center.x, centerY);
}
- (CGFloat)jk_width
{
return self.frame.size.width;
#pragma mark - Shortcuts for the coords
- (CGFloat)jk_top {
return CGRectGetMinY(self.frame);
}
- (void)setJk_width:(CGFloat)width
{
- (void)setJk_top:(CGFloat)y {
CGRect frame = self.frame;
frame.size.width = width;
frame.origin.y = y;
self.frame = frame;
}
- (CGFloat)jk_height
{
return self.frame.size.height;
- (CGFloat)jk_bottom {
CGRect frame = self.frame;
return CGRectGetMinY(frame) + CGRectGetHeight(frame);
}
- (void)setJk_height:(CGFloat)height
{
- (void)setJk_bottom:(CGFloat)bottom {
CGRect frame = self.frame;
frame.size.height = height;
frame.origin.y = bottom - self.frame.size.height;
self.frame = frame;
}
#pragma mark - Shortcuts for frame properties
- (CGPoint)jk_origin {
return self.frame.origin;
- (CGFloat)jk_left {
return CGRectGetMinX(self.frame);
}
- (void)setJk_origin:(CGPoint)origin {
- (void)setJk_left:(CGFloat)x {
CGRect frame = self.frame;
frame.origin = origin;
frame.origin.x = x;
self.frame = frame;
}
- (CGSize)jk_size {
return self.frame.size;
- (CGFloat)jk_right {
return CGRectGetMinX(self.frame) + CGRectGetWidth(self.frame);
}
- (void)setJk_size:(CGSize)size {
- (void)setJk_right:(CGFloat)right {
CGRect frame = self.frame;
frame.size = size;
frame.origin.x = right - CGRectGetWidth(self.frame);
self.frame = frame;
}
#pragma mark - Shortcuts for positions
- (CGFloat)jk_centerX {
return self.center.x;
#pragma mark - Shortcuts for the size
- (CGFloat)jk_width {
return CGRectGetWidth(self.frame);
}
- (void)setJk_centerX:(CGFloat)centerX {
self.center = CGPointMake(centerX, self.center.y);
- (void)setJk_width:(CGFloat)width {
CGRect frame = self.frame;
frame.size.width = width;
self.frame = frame;
}
- (CGFloat)jk_centerY {
return self.center.y;
- (CGFloat)jk_height {
return CGRectGetHeight(self.frame);
}
- (void)setJk_centerY:(CGFloat)centerY {
self.center = CGPointMake(self.center.x, centerY);
- (void)setJk_height:(CGFloat)height {
CGRect frame = self.frame;
frame.size.height = height;
self.frame = frame;
}
@end
......@@ -34,8 +34,7 @@
*
* @brief 截图一个view中所有视图 包括旋转缩放效果
*
* @param aView 一个view
* @param limitWidth 限制缩放的最大宽度 保持默认传0
* @param maxWidth 限制缩放的最大宽度 保持默认传0
*
* @return 截图
*/
......
......@@ -96,7 +96,7 @@
"name": "JKCategories",
"dependencies": {
"JKCategories": [
"1.9.1"
"1.9.3"
]
}
},
......
This diff is collapsed.
......@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.9.1</string>
<string>1.9.3</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
......
......@@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'SYCSDK'
s.version = '0.1.9'
s.version = '0.2.0'
s.summary = 'A short description of SYCSDK.'
# This description is used to generate tags and improve search results.
......@@ -76,7 +76,7 @@ TODO: common three party.
end
s.subspec 'JKCategories' do |s|
s.dependency 'JKCategories', '1.9.1'
s.dependency 'JKCategories', '1.9.3'
end
s.subspec 'MBProgressHUD' do |s|
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment