- 博客(70)
- 资源 (36)
- 收藏
- 关注
原创 MacOS访问性权限来监听鼠标/键盘事件
方法一、 使用CGEventPost(kCGHIDEventTap, push);方法二、使用AXIsProcessTrustedWithOptions();这种方法想要生效,必须禁用沙盒功能,需要将App Sandbox 设置成 NO。2. Apple 沙盒应用程序不能具有该级别的控制(即完全的鼠标/窗口控制)1. Mac App Store 中的应用无法获得辅助功能权限。注意:Intel 架构没问题,终端输入。但辅助功能里面,仍存在该app。虽然m1 架构,也提示。
2023-05-09 16:13:48
1446
原创 android:layerType=“software“ 与 HTML5 canvas
layout/web.xml<WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/progressbar" android:visibility="visible" android:lay
2022-04-14 15:46:45
3099
1
原创 Could not find com.android.tools.build:gradle:
Could not find com.android.tools.build:gradle:4.0.0.Searched in the following locations: - https://jcenter.bintray.com/com/android/tools/build/gradle/4.0.0/gradle-4.0.0.pom - https://jcenter.bintray.com/com/android/tools/build/gradle/4.0.0/gradle-4.0.
2022-02-28 15:30:24
5261
原创 iOS Xcode GoMobile .framework 编译通过,运行链接报错
panic: seq.Inc: unknown refnum: -24goroutine 17 [running, locked to thread]:golang.org/x/mobile/bind/seq.Inc(0x1ffffffe8)/var/folders/qr/mcc50f6n0z364vdjny2s012m0000gn/T/gomobile-work-283351333/iossimulator/pkg/mod/golang.org/x/mobile@v0.0.0-201907
2022-02-22 17:59:03
2226
原创 用两个栈实现队列
描述用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n≤1000n≤1000要求:存储n个元素的空间复杂度为O(n)O(n),插入与删除的时间复杂度都是O(1)O(1)示例1输入:["PSH1","PSH2","POP","POP"]复制返回值:1,2复制说明:"PSH1":代表将1插入队列...
2021-10-29 10:19:08
356
原创 NSURLSession同步请求
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:@“url”];NSURLResponse *response= nil; // 4 创建连接对象(同步)NSError *error;NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];.
2021-10-27 17:13:10
673
原创 架构总结iOS
适合的才是最好的我理解的架构划分+组装,就是用最简单的办法在遵循单一责任原则的前提下把责任划分到多个实体,然后再把实体进行组装,达到便于维护和使用的目的。MVCModel-View-Controller。MVC简单地将一个模块分为3部分:View是展示给外部的界面Model是Controller内部管理的数据模型,和各种数据操作工具Controller负责将Model的变化更新到ViewController负责处理来自View的事件MVC的划分粒度很粗,View依赖于VC的生
2021-10-27 14:57:24
123
原创 组件化-Protocol
HomeVC.m#import "HomeVC.h"#import "ProtocolManager.h"#import "AllProtocol.h"@interface HomeVC ()<Home_Protocol>@end@implementation HomeVC- (IBAction)btnAction:(id)sender { Class cls = [[ProtocolManager sharedInstance] classForPr...
2021-10-11 16:23:32
208
原创 组件化-CTMediator
CTMediator (Mine)分类主要供Home使用,里面声明了可以调用的组件接口NSString * const HomeGetTarget_Mine = @“Mine”;NSString * const HomePerform_Action_mineNavigationPush = @“mineNavigationPush”;- (UIViewController *)HomeMediator_MineAction:(NSDictionary *)param{UIViewContro...
2021-10-11 16:19:07
119
原创 组件化-MGJRouter
//HomeVC.m#import "HomeVC.h"#import <MGJRouter/MGJRouter.h>@interface HomeVC ()@end@implementation HomeVC- (IBAction)mg_cAction:(id)sender { [MGJRouter openURL:@"NIU://home/pageMine” withUserInfo:@{@"VC" : self} completion:nil]; ...
2021-10-11 16:15:59
199
原创 Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime
Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime经排查,发现针对mac系统,有指定的node版本,https://github.com/sass/node-sass/releases/tag/v4.13.1,mac最高支持node13,而我新安装的Node版本已经到了15,所以只能使用nvm选择指定的node版本。brew install nvm1
2020-12-16 14:34:58
755
原创 atos符号化
准备MyApp.app.dSYM我们使用atos命令来完成符号化,具体命令如下:$atos -arch <Binary Architecture> -o <Path to dSYM file>/Contents/Resources/DWARF/<binary image name> -l <load address> <address to symbolicate>$atos -arch arm64 -o MyApp -l 0x00000.
2020-12-16 14:34:26
1651
转载 CocoaPods安装
每年因为MAC系统的更新或者镜像源的变化,导致在pod安装过程中遇见许多问题,因为这玩意一旦安装完之后就没人去管它,所以很多变化之后的操作就产生莫名其妙的错误,很是头疼,今天我来给大家稍作整理,如有不全之处,敬请指点!1.更新gem一般情况下,新MAC都有最新的MAC源,但是为了保险起见,我们还是升级一下比较好.以前的安装方法是这样的sudo gem update --syste...
2019-06-05 14:09:52
4219
原创 has conflicting provisioning settings.
项目中的单元测试报错如下:xxx has conflicting provisioning settings.xxx is automatically signed, but provisioning profile b9c32186-a5ad-43dd-a910-1c639b1ad5c3 has been manually specified. Set the provisioning pr...
2019-05-14 15:53:25
4873
转载 扩大UIButton 响应区域
根据设置按钮图片方法可分为两种方式1.setImage: 设置图片内容显示模式为居中,然后再设置图片的边距和按钮的大小[[button imageView] setContentMode: UIViewContentModeCenter];[[button setImage:[UIImage imageNamed:@"xxx.png"] forState:UIControlStateN...
2018-09-27 16:27:39
895
原创 sizeThatFits 和 sizeToFit的区别
1. UIView 有个 sizeToFit 方法来计算 UIView 合适的 bounds.size, 注意 autolayout 约束过的 view 该方法失效.testLabel.numberOfLines = 0; ///相当于不限制行数,对sizeToFit也会有影响2.- (void)sizeToFit- (CGSize)sizeThatFits:(CGSize)si...
2018-09-25 19:03:42
487
原创 NSProxy
什么是NSProxy:NSProxy是一个抽象的基类,是根类,与NSObject类似NSProxy和NSObject都实现了<NSObject>协议提供了消息转发的通用接口如何使用NSProxy来转发消息? 1.需要继承NSProxy 2.重写如下的2个方法:methodSignatureForSelector:forwardInvocation:methodSignatureForS...
2018-07-03 14:56:42
6127
1
原创 Method总结
SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:1typedef struct objc_selector *SEL;objc_selector结构体的详细定义没有在头文件中找到。方法的selector用于表示运行时方 法的名字。Objective-C在编译时,会依据每一个方法的名字、参数序列,生成一个唯一的整型标识(Int类型的地址),这个标识就是SEL。如下 代码所...
2018-07-03 11:02:25
441
原创 代理未实现警告
警告信息: Assigning to 'id<UINavigationControllerDelegate> _Nullable' from incompatible type 'CBNavigationController *__weak or __strong' 解决方法,很简单,(在 @interface 文件中继承它的代理即可)如下:重新编译一下就可以了。...
2018-05-28 10:26:08
315
转载 Http 缓存
前言Http 缓存机制作为 web 性能优化的重要手段,对于从事 Web 开发的同学们来说,应该是知识体系库中的一个基础环节,同时对于有志成为前端架构师的同学来说是必备的知识技能。但是对于很多前端同学来说,仅仅只是知道浏览器会对请求的静态文件进行缓存,但是为什么被缓存,缓存是怎样生效的,却并不是很清楚。在此,我会尝试用简单明了的文字,像大家系统的介绍HTTP缓存机制,期望对各位正确的理解前端缓存有...
2018-05-21 15:09:53
136
转载 iOS(CGD)
前言对初学者来说,GCD似乎是一道迈不过去的坎,很多人在同步、异步、串行、并行和死锁这几个名词的漩涡中渐渐放弃治疗。本文将使用图文表并茂的方式给大家形象地解释其中的原理和规律。线程、任务和队列的概念异步、同步 & 并行、串行的特点一条重要的准则一般来说,我们使用GCD的最大目的是在新的线程中同时执行多个任务,这意味着我们需要两项条件:
2018-05-21 14:19:03
290
转载 Runloop不死线程
@interface ViewController ()@property(nonatomic,strong)NSThread *thread;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.thread = [[NSThread alloc] initWithTar...
2018-05-21 14:17:39
276
原创 swift - import
1.swift 第三方库,我copy到项目中,为什么不能import答:同个xcodeproject不需要import. 使用另一个 module才需要import.2.使用cocoaPods import导入时没有提示的解决办法答:cocoaPods 导入的第三方库 ,必须用 xcode 对工程将进行编译后,才可以有提示。...
2018-05-21 14:17:13
4496
转载 Block三
摘要:下文的讨论基于ARC平时开发中我们遇到block里面引用self的情况,大部分都是这样处理的__weaktypeof(self)weakSelf=self;self.myBlock=^{__strongtypeof(self)strongSelf=weakSelf;[strongSelfdoSomething];[strongSelfdoSomethingElse];};我们习惯了这样用,貌...
2018-05-21 14:16:22
190
原创 Block二
C语言内存分配Objective-C从名字来看就可以知道是一门超C语言,所以了解C语言的内存模型对于理解Objective-C的内存管理有很大的帮助。C语言内存模型图如下:1-1 C内存分配.png从图中可以看出内存被分成了5个区,每个区存储的内容如下:栈区(stack):存放函数的参数值、局部变量的值等,由编译器自动分配释放,通常在函数执行结束后就释放了,其操作方式类似数据结构中的栈。栈内存分配...
2018-05-21 14:16:12
303
原创 Block
概述代码块Block是苹果在iOS4开始引入的对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,特殊地,Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开发中,常用于GCD、动画、排序及各类回调注: Block的声明与赋值只是保存了一段代码段,必须调用才能执行内部代码Block变量的声明、赋值与调用B...
2018-05-21 14:15:58
135
转载 weak的实现原理
实现 weakweak 的作用weak 关键字的作用弱引用,所引用对象的计数器不会加一,并在引用对象被释放的时候自动被设置为 nil。如何实现 weak现在我们将 weak 的思路整理一下:整个系统中存在很多个对象,这些对象都可能会被弱引用,那么我们需要一个容器来容纳这些被弱引用的对象,比如数组,在此将这个容器的数据结构标识为 objectContainerDataStructure;一个对象可...
2018-05-21 14:15:42
1591
原创 private、fileprivate、public、open
1、private 修饰符private只允许在当前类所在源文件中调用, 修饰的方法不可以被代码域之外的地方访问 ,本类源码文件的extension除外。Person.swiftimport Foundationimport UIKitclass Person: NSObject { private let name = "niu" override init() { ...
2018-05-21 14:15:26
2176
转载 cocoapods安装失败
在安装cocoapods时提示:YAML safe loading is not available.Please upgrade psych to version that supports safe loading(>=2.0)查看本机支持的镜像 gem --version输出YAML safe loading is not available. Please upgrade psyc...
2018-05-21 14:15:06
1856
转载 __weak与__block
准备工作首先我定义了一个类 MyObject 继承 NSObject,并添加了一个属性 text,重写了description方法,返回 text 的值。这个主要是因为编译器本身对 NSString 是有优化的,创建的 string 对象有可能是静态存储区永不释放的,为了避免使用 NSString 引起一些问题,还是创建一个 NSObject 对象比较合适。另外我自定义了一个 TLog 方法输出对...
2018-05-21 14:14:40
149
转载 NSString到底是用copy还是strong?
我想通过一个最简单的例子来说明它们的区别:首先我们来看看使用strong会出现什么样的情况:.h@property (nonatomic, strong) NSString *name;.mNSMutableString *mStr = [NSMutableString stringWithString:@"张三"];self.name = mStr;NSLog(@"使用strong第一次得到的名...
2018-05-21 14:14:01
398
转载 消息转发
对于对象无法处理的消息,如果不做转发处理的话,程序最终会调用NSObjective的doesNotRecognizeSelector:消息将程序crash掉。Objective-C提供了两种消息转发选项快速转发:NSObject类的子类A可以通过重写NSObject类的forwardingTargetForSelector:方法,将A的实例无法识别的消息转发给目标对象B,从而实现快速转发。该技巧就...
2018-05-21 14:13:30
358
原创 CDN
1、GSLB全局负载均衡和iDNS智能DNS是一个意思,并不是两个东西。在实现方式上,有F5 GTM等成熟的厂家产品,也可以自己用开源软件,比如bind去实现。2、CDN包括GSLB+缓存,这里面的缓存又包括本地负载均衡(lvs/nginx/haproxy)、缓存服务器(squid或者varnish)等东西,都是开源软件。3、目前CDN主要有蓝汛和网宿两个内地厂家,但一线互联网
2018-05-10 14:12:42
355
转载 面试
花絮:从上一篇文章的发表到这篇文章的发表已经有很长一段时间了,一直在摸索适合自己的学习方式,到现在还是没有找到适合自己的,尝试如下:1.每天上班都是活跃在各大iOS开发群,碰到别人的问题,自己不懂的都悄悄记下来,自己去百度,也能学到一些东西,但是不能系统的学习.2.下班都是看看别人写好的博客,也能学到一些技术,但是这样只能依赖于别人。3.周六日自己在看别人源码,试着去学习别人写框架的逻辑。4.还试...
2018-05-10 14:11:43
283
转载 iOS9.3-闪退BUG-图片资源格式的问题
最近上架的app出现了一个诡异的BUG 有多诡异呢 这么说吧 之前公司测试的时候没有任何问题 然后上线了之后 公司有个9.2系统的5S然后就各种闪退 启动了之后 点击tabbar中的任意一个 就会高概率的出现闪退现象 项目中有接入友盟统计 也用符号表查了下崩溃原因 错误根本没办法定位 很可惜啥都没发现。于是就各种在网上找相关的资料喽 终于功夫不负有心人 找到了问题的原因所在:图片资源的问题导...
2018-05-10 14:10:39
856
转载 苹果热更新方案简介
一、动态库可以做demo用,真实使用的时候会被苹果禁止。因为 打包发到AppStore的ipa安装包 里的每个动态库 都有唯一的编码,iOS系统会进行验证,所以动态通过网络获取 新的动态库 也用不了。WWDC2014:允许使用动态库、允许第三方键盘、App Extension。从目前来看,iOS仍然不允许进程间共享动态库,即iOS
2018-02-01 10:42:48
1014
原创 iOS 苹果审核被拒
1. ios开发 苹果手机作为奖品, 上线被拒Guideline 5.2.4 - LegalYour app includes a contest that provides Apple products as prizes. The offer can be found at 首页.Apps that include such offerings create a
2018-01-23 17:15:55
470
原创 ios开发实用工具
1. Assets.carTool(.car解压)Mac上解压Assets.car文件的小工具,iOS开发中,如果使用了Images.xcassets管理图片,打包的时候会生成一个Assets.car文件,所有的图片都在这里面。本工具可以直接解压该文件。下载地址:点击打开链接2. LSUnusedResources(项目无用图片检测)一个Mac工程,
2018-01-23 16:47:25
364
转载 typedef
关于typedef的用法总结 不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于总结的很好,我就不加修改的引用过来了,以下是引用的内容(红色部分是我
2017-10-26 14:40:42
420
明小子4.3.3网站漏洞检测
2012-09-02
2012年3月四级网络工程师真题打包下载.rar
2012-08-28
C++语言概述 数据的输入与输出 基本数据类型和表达式
2011-09-06
自动控制原理线性系统的时域分析法
2011-09-06
DeveloperDiskImage12.4(16G77).zip
2019-09-03
iOS-private-api-checker-master.zip
2019-06-17
Assets.carTool
2018-01-23
列表下拉加载更多
2013-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人