
开发笔记
开发笔记
一如既往yes
这个作者很懒,什么都没留下…
展开
-
TableView-下拉顶部图片变大
#import "ViewController.h"/** * 屏幕宽度 */#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)/** * 屏幕高度 */#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)#define ImgHight 200.0f@interface ViewController ()<UITable.原创 2022-04-01 16:01:06 · 296 阅读 · 0 评论 -
解决model属性与系统重名
+ (NSDictionary *)replacedKeyFromPropertyName { return @{ @"detailId" : @"id", @"videoformat" : @"video_format", @"introduce":@"description", @"thumb":@"icon", };}原创 2022-04-01 16:00:12 · 418 阅读 · 0 评论 -
UIWebView控件中,字体大小和字体样式的修改
修改UIWebView控件中字体的样式:NSString *htmlString = [NSString stringWithContentsOfFile:self.webPath encoding:NSUTF8StringEncoding error:nil];UIFont *font = [UIFont systemFontOfSize:12];NSString *newHtmlString = [NSString stringWithFormat:@"<font face='%@' &g.原创 2022-04-01 15:58:37 · 192 阅读 · 0 评论 -
使用终端命令行将本地项目上传到Github并提交代码
第一步: 在Github上创建自己的repository第二步:建立本地仓库cd到你的本地项目根目录下,执行git命令1:$cd 到你的项目目录下2:$git init第三步:将本地项目工作区的所有文件添加到暂存区3:$git add .第三步:将暂存区的文件提交到本地仓库4:$git commit -m "注释"第五步:将本地仓库关联到Github上5:$git remote add originhttps://github.com/zhibinhsu/S...原创 2022-04-01 15:56:08 · 838 阅读 · 0 评论 -
iOSWebViewJavascriptBridge初步尝试与图文详细讲解
iOS WebViewJavascriptBridge初步尝试与图文详细讲解 - 那一抹风情 - 博客园iOS端如何使用 第一步:开启日志 // 开启日志,方便调试 [WebViewJavascriptBridgeenableLogging]; 第二步:给ObjC与JS建立桥梁 // 给哪个webview建立JS与OjbC的沟通桥梁 self.bridge=[WebViewJavascriptBridgebridgeForWebView:w...原创 2022-04-01 15:49:01 · 1455 阅读 · 0 评论 -
查看dSYM文件的UUID
通过命令查看UUIDxcrun dwarfdump--uuid xxx(dSYM的路径)原创 2022-01-04 15:54:53 · 1060 阅读 · 0 评论 -
iOS runtime使用(交换两个方法)
举例 在创建了如下代码NSString *str=nil;NSURL *url =[NSURL URLWithString:str];NSLog(@"%@",url);但是想使用自己的方法并对传入的字符串做为空判断举例 自己写了一个方法+ (instancetype)SJUrlWithStr:(NSString *)str 替代系统方法[NSURL URLWithString:]但是如果项目现在已经进行到了后期 就会涉及到很多界面要导入头文件 并修改使用这个方法 很不方便..原创 2021-12-14 16:09:49 · 321 阅读 · 0 评论 -
iOS中Swift和Objective-C混编
通过Xcode创建的Swift工程,以MJRefresh为例情况一:使用Cocoapods中的use_frameworks!关键字引入Objective-C库,在需要用的地方直接import即可Podfile文件:source 'https://github.com/CocoaPods/Specs.git'platform :ios, ‘8.0’use_frameworks!target 'XXX' do pod 'Alamofire' pod 'SwiftyJSON'原创 2021-10-09 16:12:13 · 326 阅读 · 0 评论 -
host文件
Host文件的位置,Mac 系统:按快捷键组合 Shift+Command+G 三个组合按键,并输入 Hosts 文件的所在路径:/etc/hosts ,如图所示:1、Hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”。2、当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析,如果发现.原创 2021-08-06 10:02:36 · 568 阅读 · 0 评论 -
Swift中代理的使用
和OC使用一样。import UIKit//定义协议protocol CollectionViewControllerDelegate : NSObjectProtocol { //定义协议方法 func clickEvent(value: String)}class CollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {原创 2021-08-03 10:27:34 · 502 阅读 · 0 评论 -
Swift中Block的使用
在Swift中,可以用闭包代替OC中的Block。1.首先在B中声明一个闭包,然后把闭包声明成属性:import UIKittypealias collectionViewblcok = (String) ->()class CollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {2.在B中,选中部分为按钮点击事件:func colle原创 2021-08-03 09:51:06 · 1240 阅读 · 0 评论 -
Swift-UICollectionView基本使用
import UIKitclass CollectionViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate { var collectionView : UICollectionView! = nil func collectionView(_ collectionView: UICollectionView, numberOfItemsInSe.原创 2021-08-03 08:45:58 · 1004 阅读 · 0 评论 -
在iOS中MVC与MVVM之间的区别
作为一个iOS开发者,我不止一次听到我的一些开发者朋友跟我说我写的iOS代码看起来好舒服,很整洁,为什么咱们iOS开发的相当一大部分应用软件都给人以美的享受,究竟是什么使得iOS上的应用可以如此漂亮?因为他们使用了将代码和界面分开的开发结构框架MVC。MVC的低耦合性、高重用性、可维护性等优点显而易见,使得原本复杂的代码与界面的交互变得简单、清晰、明了,开发者可以把更多的精力放在前端界面的设计上,而不用绞尽脑汁去思考究竟应该如何使界面得到同步,这样减轻了设计压力,也从另一方面使用户得到更多更好的享受体验原创 2021-07-26 15:12:51 · 1101 阅读 · 0 评论 -
iOS NSDate日期操作总结
/*** @method** @brief 获取两个日期之间的天数* @param fromDate 起始日期* @param toDate 终止日期* @return 总天数*/+ (NSInteger)numberOfDaysWithFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate { NSCalendar *calendar = [[NSCalendar alloc] initW.原创 2021-07-22 16:43:29 · 317 阅读 · 0 评论 -
时间格式AM/PM
NSDate *date = [NSDate date];NSDateFormatter *formatter = [[NSDateFormatter alloc] init];formatter.AMSymbol = @"AM";formatter.PMSymbol = @"PM";formatter.dateFormat = @"yyyy-MM-dd hh:mm:ss a”; // hh 是十二小时制,HH 二十四小时制 注意后面加的字母aNSString *ff = [formatter .原创 2021-07-13 14:39:07 · 867 阅读 · 0 评论 -
iOS-WebView清除缓存
WkWebView清除缓存 // allWebsiteDataTypes清除所有缓存 NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0]; [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websit.原创 2021-07-13 10:47:54 · 1091 阅读 · 0 评论 -
iOS - 判断程序每天只执行一次
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];NSDate *currentDate = [NSDate date];NSDate *agoDate = [userDefault objectForKey:@"currentDate"]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];[dateFormatter set.原创 2021-07-22 08:48:29 · 454 阅读 · 0 评论 -
iOS Block循环引用的理解
当block被定义成属性,copy类型,被他所属的类强引用,这个时候这个block引用的时候需要__weak。在定义block为属性的时候,block用strong和copy来修饰效果是一样的,他都会拷贝出来分配一个新的地址给他,会把block放到堆区里面,官方建议copy。但是如果使用assgin或者retain,retain他只是把block的计数+1,效果和assgin一样,这个block还是在栈区里面。在堆区:内存释放由用户自己管理。在栈区:内存释放由系统管理,block可能是被系统给释放回原创 2021-04-29 14:50:07 · 289 阅读 · 0 评论 -
Swift-WKWebView
WKWebView 的navigationDelegate方法含义// 页面开始加载时调用 func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { } // 当内容开始返回时调用 func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)原创 2021-04-20 10:20:22 · 655 阅读 · 0 评论 -
Swift - UITableView简单使用
import UIKitclass TableViewController: UIViewController { var tableView = UITableView() var dataList: NSMutableArray = [] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading .原创 2021-04-08 14:23:58 · 258 阅读 · 0 评论 -
Charles 抓包使用教程
charles使用教程原创 2021-03-12 09:51:18 · 247 阅读 · 0 评论 -
iOS AES加密方式,加密模式ECB,填充方式pkcs7padding
#import <CommonCrypto/CommonCryptor.h>// AES加密之ECB128模式 Padding- (NSString *)cs_aes128EncryptECBModeWithkey:(NSString *)key { if (key.length == 0) { key = @"AES128Key"; } char keyPtr[kCCKeySizeAES128+1]; memset...原创 2020-06-17 10:11:19 · 1364 阅读 · 0 评论 -
M1上模拟器无法运行的项目,可以用Rosetta打开
M1芯片的Xcode运行旧项目报“building for iOS Simulator, but linking in object file built for iOS, for architecture arm64”,可以用Rosetta打开访达-应用程序-Xcode-右键-显示简介-通用-使用Rosetta打开完全退出Xcode后,再打开项目,就不会再报错。...原创 2021-02-26 12:28:53 · 10906 阅读 · 2 评论 -
iOS开发 | 自定义不规则label
这个label顶部的两个角是圆角,底部的两个角是直角,底部还有一个小三角。思路CAShapeLayer联合UIBezierPath画一个不规则的layer作为label.layer的mask。具体实现1.自定义一个继承自UILabel的IrregularLabelimport "IrregularLabel.h"@interface IrregularLabel ()/** 遮罩 */@property (nonatomic, strong) CAShapeLayer *maskLa.原创 2021-02-26 12:43:25 · 254 阅读 · 0 评论 -
iOS 用For循环实现九宫格的实现
在这里插入代码片// 总列数int totalColumns = 3;// 每一格的尺寸CGFloat cellW = 50;CGFloat cellH = 50;// 间隙CGFloat margin =(self.view.frame.size.width - totalColumns * cellW) / (totalColumns + 1);// 根据格子个数创建对应的框框for(int index = 0; index< self.array.count; index原创 2020-11-23 10:04:58 · 468 阅读 · 0 评论 -
Mac环境生成ssh密钥
测试输入以下命令 git version返回版本号就表示成功 如 git version 2.20.1 (Apple Git-117)检测本地是否有sshcd ~/.ssh 此命令可以进入到.ssh文件目录下ls 此命令显示目录下的所有文件生成ssh密钥ssh-keygen -t rsa -C "email@xxx.com"生成成功会提示以下代码Generating public/private rsa key pair.Enter file in which原创 2021-02-25 14:45:03 · 1348 阅读 · 0 评论 -
NSURLProtocol对WKWebView的处理
.h#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGINFOUNDATION_EXTERN NSString *const HTTP_KEY;FOUNDATION_EXTERN NSString *const HTTPS_KEY;@interface NSURLProtocol (CSWebKitSupport)+ (void)wk_registerScheme:(NSString*)sc...原创 2020-11-23 09:53:02 · 439 阅读 · 0 评论 -
iOS CocoaPods的注意事项
关于.gitignore当执行pod install之后,除了Podfile外,CocoaPods还会生成一个名为Podfile.lock的文件,这个文件不应该加入到.gitignore中。 因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 也不会更改版本,只有执行pod update才会改变Podfile.lock。 在多人协作的时候,这样可以防止第三方库升级时造成大家各自的第三方库版本不一致。不更新podspecCocoaPods在执行pod in原创 2020-06-17 10:05:44 · 284 阅读 · 0 评论 -
WKWebView加载HTML标签字体问题
WKPreferences*preferences = [[WKPreferencesalloc]init]; preferences.minimumFontSize=15.0f; NSMutableString*javascript = [NSMutableStringstring]; [javascript...原创 2020-02-24 11:41:42 · 917 阅读 · 0 评论 -
网页后缀html、htm、shtml、shtm有什么区别?
每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。首先介绍一下html与htm关于HTML,HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。设计HTML语言的目...原创 2018-04-12 09:28:03 · 919 阅读 · 0 评论 -
View 添加毛玻璃效果
第一种方法:UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:effect]; effectView.alpha = 0.9;effectView.frame = CGRectMake(0, 0, bgImageView.frame.size.w原创 2021-03-12 09:28:19 · 266 阅读 · 0 评论 -
iOS截屏方法
- (UIImage *)captureScreen { UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; CGRect rect = [keyWindow bounds]; UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); [keyWind.原创 2021-03-12 09:26:19 · 276 阅读 · 0 评论 -
Xcode调试技巧
获取线程的跟踪栈:threadbacktrace(简写bt)使用命令threadbacktrace(简写bt)可以查看线程的跟踪栈,若要查看所有线程的调用栈则可以使用命令:threadbacktraceall(简写bt all)。...原创 2021-02-26 13:57:47 · 258 阅读 · 0 评论 -
setValue和setObject的区别
setObject:forked:中object是不能够为nil的,不然会报错。setValue:forKey:中value能够为nil,但是当value为nil的时候,会自动调用 removeObject:forKey方法。setValue:forKey:中key的参数只能够是NSString类型,而setObject:forKey:的可以是任何类型。...原创 2021-02-26 12:31:21 · 291 阅读 · 0 评论