- 博客(128)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 游戏学习,游戏策划
游戏实际上就是一套娱乐规则: 游戏开发首先需要的是一份策划 游戏策划师的主要工作即是创建和完善游戏策划,制定规则开发基本流程: 开发之前,要先对市场进行调研 对于原创类游戏,为了规避风险,在投入力量之前,可以考虑先进入Prototype(原型)开发阶段 这是一个快速尝试各种想法的阶段,通过较少的投入,开发较少的内容,体现游戏的核心乐趣 之后对初始的...
2018-07-16 22:02:03
2250
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 VS快捷键大全
VS的基本所有快捷键都在这里了初学者用要慢慢掌握,提高码代码效率Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+B,C: 清除全部标签Ctrl+I: 渐进式搜索Ctrl+Shift+I: 反向渐进式搜索Ctrl+F: 查找Ctrl+Shift+F: 在文件中查找F3: 查找下一个Shift+F...
2018-03-07 21:29:23
281
原创 HTTPS之TLS 学习(未完待续)
HTTPSHTTPS 其实是一个“非常简单”的协议,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。也就是说,除了协议名“http”和端口号 80 这两点不同,HTTPS 协议在语法、语义上和 HTTP 完全一样,优缺点也“照单全收”(当然要除去“明文”和“不安全”)。SSL/TLS是位于TCP、IP7层协议中的会话层,用于认证用户和服
2022-04-07 17:10:07
683
原创 QT Creater 使用
Qt Creator 新建项目新建项目对话框里有五类项目模板:项目模板说明ApplicationQt 应用程序,包括普通窗体程序和 QtQuick 程序。Library可以创建动态库、静态库以及 QtQuick 扩展插件、QtCreator 自身插件。其他项目可以创建单元测试项目、Qt4 设计师自定义控件、子目录项目等。Non-Qt Project非 Qt 项目。可以创建纯 C 或 纯 C++ 项目。Import Project导入项目。从版本控制系
2021-12-30 15:55:58
658
1
原创 WKProcessPool 理解
WKProcessPool用来配置进程池,与网页视图的资源共享有关提示:WKProcessPool类中没有暴露任何属性和方法,配置为同一个进程池的WebView会共享数据,例如Cookie、用户凭证等,开发着烤肉呀通过编写管理类来分配不同维度的WebView在不同进程池中。WKProcessPool是什么?一个WKProcessPool对象表示WebContent进程池,进程池关联一个指定WebViewConfiguration的WebView,每个Web视图都有自己的Web内容进程,直到达到实现定义
2021-12-23 20:59:27
2011
原创 Block详解------已完结
1.Block的使用Block是什么?块,封装了函数调用以及调用环境的OC对象,Block的声明//1.@property (nonatomic, copy) void(^myBlock1)(void);// 2.BlockType:类型别名typedef void(^BlockType)(void);//3.//返回值类型(^block变量名)(参数1类型,参数2类型, ...)void(^block)(void);Block的定义// ^返回值类型(参数1,参数2,...){
2021-12-02 21:25:56
2405
原创 Swift快速入门
传统建议新语言的第一个程序应该打印“Hello, world!”字样。屏幕上。在 Swift 中,这可以在一行中完成:1. print("Hello, world!")2. // Prints "Hello, world!"如果你用 C 或 Objective-C 写过代码,你会觉得这个语法很熟悉——在 Swift 中,这行代码就是一个完整的程序。您不需要为输入/输出或字符串处理等功能导入单独的库。在全局范围内编写的代码用作程序的入口点,因此您不需要main()函数。您也不需要在每个语句的末
2021-12-02 15:08:24
1067
原创 CURLOPT_FOLLOWLOCATION 使用
CURLOPT_FOLLOWLOCATION-遵循HTTP 3xx 重定向 #include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FOLLOWLOCATION, long enable);描述:设置为 1 的长参数告诉库遵循服务器作为 3xx 响应中 HTTP 标头的一部分发送的任何 Location: 标头。Location: 标头可以指定要遵循的相对或绝对 URL。libcurl 将发出
2021-12-01 10:31:00
2904
原创 Swift学习笔记之基础知识
基础知识Swift 是一种用于 iOS、macOS、watchOS 和 tvOS 应用程序开发的新编程语言。尽管如此,根据您使用 C 和 Objective-C 进行开发的经验,您将熟悉 Swift 的许多部分。雨燕提供了自己的所有基本C和Objective-C类型的版本,包括Int为整数,Double并Float为浮点值,Bool布尔值,并String为文本数据。Swift 还提供了三种主要集合类型Array、Set、 和 的强大版本Dictionary,如集合类型 中所述。与 C 一样,Swift
2021-11-19 19:27:30
1454
原创 Objective-C基础
Objective-C是C语言的严格超集,--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。Objective-C的面向对象语法源于Smalltalk消息传递风格。所有其他非面向对象的语法,包括变量类型,预处理器(preprocessing),流程控制,函数声明与调用皆与C语言完全一致。但有些C语言语法合法代码
2021-11-19 14:28:00
2116
原创 WKWebView白屏问题
WKWebView白屏问题WKWebView自诩拥有更多的加载速度,更低的内存占用,但实际上WKWebView是一个多进程组件,Network Loading以及UI Rendering在其他进程中执行。初次适配WKWebView的时候,我们也惊讶于打开WebView后,app进程内存消耗反而大幅下降,但是仔细观察会发现,orther process的内存占用会增加。在一些用webGL渲染的复杂页面,使用WKWebView总体的内存占用(app process memory + other process
2021-11-17 15:33:20
2855
原创 2021-11-15
iOS8.0之后我们可以使用WebKit框架中的WKWebView来加载网页,WKWebView可将网页处理限制在App的网页视图中,从而确保不安全的网站内容不会影响到App的其他部分,并且苹果表示2020年12月起将不再接受使用UIWebView的App更新,因此我对WKWebView的使用方法及在使用WKWebView的过程中遇到的问题进行了总结。首先WKWebView的优点很多了,内存开销比UIWebView小很多,支持了更多的HTML5特性,流程粒度上更加细致,可以在请求时候询问是否请求数据还可以
2021-11-15 11:07:54
168
原创 C++设计模式之桥接模式
桥接模式:将抽象部分与现实部分分离,使它们都可以独立变换。以下情形考虑使用桥接模式:1.当一个对象有多个变化因素的时候,考虑依赖于抽象的实现,而不是具体的实现。2.当多个变化因素在多个对象间共享时,考虑将这部分变化的部分抽象出来再聚合/合成进来。3.当一个对象的多个变化因素可以动态变化的时候。优点:将实现抽离出来,再实现抽象,使得对象的具体实现依赖于抽象,满足了依赖倒转原则。更好的可扩展性。可动态的切换实现。桥接模式实现了抽象和实现的分离,在实现桥接模式时,就可以实现动态的选择具体的实现。
2021-11-04 11:28:32
404
原创 C++模板
模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公司。库容器,比如迭代器和算法,都是泛型编程的例子,它们都是用了模板的概念。每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如vector或vector.您可以使用模板来定义函数和类,接下来让我们一起来看看使用。函数模板//模板函数定义的一般形式如下所示:temlate <typename type> ret-type func-name(parameter
2021-11-02 16:14:17
203
原创 C++设计模式之模板方法模式
模板方法模式由两部分结构组成:抽象父类和具体的实现子类。通常在抽象父类中封装了子类的算法框架,也包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。所以我们可以定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。当多个类有相同的方法,并且逻辑相同,只是细节上有差异时,可以考虑使用模板模式。具体的实现上可以将相同的核心算法设计为模板方法,具体的实现细节由子
2021-11-01 20:56:26
403
原创 C++设计模式之职责链模式
职责链模式职责链模式是使多个对象都有机会处理请求,从而避免请求的发送者和接受者之前的耦合关系。在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这条链上传递,直到链上的某一个对象决定处理此请求。在公司中不同的岗位拥有不同的职责与权限。以上述的请假流程为例,当X请一天假的时候,只要组长审批就可以了,不需要流转到主管和总监。如果职责链上的某个环节无法处理当前的请求,若含有下个环节,则会把请求转交给下个环节来处理。职责链上的处理负责处理请求,客户只需要将请求发送到职责链上即可,
2021-10-29 16:44:32
240
原创 C++设计模式之策略模式
策略模式(Strategy Pattern)定义了一些列的算法,把它们一个个封装起来,并且使它们可以相互替换。策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活、可维护、可扩展。exp:一些主流的Web站点中,都提供了多种不同的登录方式。比如账号密码登录、手机验证码登录和第三方登录。为了方便维护不同的登录方式。这使得算法可以独立于它的客户端而变化,也就是说这些算法所完成的功能类型是一样的,对外接口也是一样的,只是不同的策略为引起环境角色表现出不同的行为。相比于使用大量的
2021-10-28 19:56:59
234
原创 EnumerateObjectsUsingBlock使用
遍历字典时Block版本的字典遍历可以同时取key和value而for in只能取key再手动取valueNSDictionary *dict = @{@"a": @"1", @"b": @"2"};[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { NSLog(@"key: %@, value: %@", key, obj);}];对于耗时且顺序无关的遍历,使用并发版本的blck,-(v
2021-10-28 14:42:43
768
原创 对象dealloc监控demo
学习了部分runtime的知识后,准备动手做个有意思的东西来见证自己最近学习的成果。就写一个debug环境下对象的监控的demo吧。在OC中,所有对象均是继承来自NSObject,所以实现步骤:1.我们要利用Category创建一个NSObject的分类,就叫Debug.h吧,加入两个接口用来供外界启动检测。2.延迟判断该对象是否正常销毁,需要创建一个服务类,为了避免服务类自身的循环引用,需要创建一个代理类来保存启动的服务对象(是否必要?__weak 代替),在服务类的初始化中初始化代理类,然后启
2021-10-26 20:13:42
913
原创 objc_setAssociatedObject 关联详解
objc_setAssociatedObject 关联详解1.关联 关联是指把两个对象互相关联起来,使得其中的一个对象作为另一个对象的一部分。 关联特性是在Mac OS 10.6及以后的版本上才是可用的。2.关联本质-在类的定义之外为类增加额外的存储空间使用关联,我们可以不用修改类的定义而为对象增加额外的存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容的时候是非常有用。关联是基于关键字的,因此,我们可以为任何对象增加任意多的关联,每个都使用不同的关键字即可。关联是可以保证被关联
2021-10-26 16:44:13
384
原创 Runtime详解(三)Category底层原理
Category(分类)简介Category(分类)是Objective-C 2.0 添加的语言特性,主要作用是为已经存在的类添加分类。Category可以做到既不子类化,也不侵入一个类的源码的情况下,为原有的类添加新的方法,从而实现扩展一个类或者分离一个类的目的。在日常开发中我们常常使用Category为已有的类扩展功能。虽然继承也能为已有类增加新的方法,而且还能直接增加属性,但继承关系增加了不必要的代码复杂度,在运行时,也无法与父类的原始方法进行区分。所以我们可以优先考虑使用自定义Category(
2021-10-26 10:16:33
158
原创 C++设计模式之观察者模式和发布订阅模式
在软件工程中,设计模式(Design Pattern)是对软件设计普遍存在(反复出现)的各种问题,锁提出的解决防范。根据模式的目的来划分的话,GoF(Gang of Four) 设计模式可以分为以下三种类型:1.创建型模式:用来描述“如何创建对象”,它的主要特点是“将对象的创建和使用分离”。包括单例、原型、工厂方法、抽象工厂和建造者5种模式。2.结构型模式:用来描述如何将类或对象按照某种布局组成更大的结构。包括代理、适配器、侨接、装饰、外观、享元和组合7种模式。3.行为型模式:用来识别对象之间的常用
2021-10-15 20:09:59
1976
2
原创 C++设计模式之适配器模式
在软件工程中,设计模式(Design Pattern)是对软件设计普遍存在(反复出现)的各种问题,锁提出的解决防范。根据模式的目的来划分的话,GoF(Gang of Four) 设计模式可以分为以下三种类型:1.创建型模式:用来描述“如何创建对象”,它的主要特点是“将对象的创建和使用分离”。包括单例、原型、工厂方法、抽象工厂和建造者5种模式。2.结构型模式:用来描述如何将类或对象按照某种布局组成更大的结构。包括代理、适配器、侨接、装饰、外观、享元和组合7种模式。3.行为型模式:用来识别对象之间的常用
2021-10-15 15:33:40
314
原创 C++设计模式之单例模式
在软件工程中,设计模式(Design Pattern)是对软件设计普遍存在(反复出现)的各种问题,锁提出的解决防范。根据模式的目的来划分的话,GoF(Gang of Four) 设计模式可以分为以下三种类型:1.创建型模式:用来描述“如何创建对象”,它的主要特点是“将对象的创建和使用分离”。包括单例、原型、工厂方法、抽象工厂和建造者5种模式。2.结构型模式:用来描述如何将类或对象按照某种布局组成更大的结构。包括代理、适配器、侨接、装饰、外观、享元和组合7种模式。3.行为型模式:用来识别对象之间的常用
2021-10-14 17:10:17
108
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人