大师网-带你快速走向大师之路 解决你在学习过程中的疑惑,带你快速进入大师之门。节省时间,提升效率

key社

Key是ビジュアルアーツ(Visual Art's)旗下的一个品牌,创立于1998年7月21日,是日本大阪市的一所游戏制作公司,以制作感人的Galgame而著称于业界。Key的游戏剧情充满幻想与温情,其充满张力的剧情总是能令人感动得泪流不止,也正因为如此,Key的游戏都被称作为泣きゲーム(令人哭泣的游戏)。由于Key也被叫做“键”,因此在爱好者人群中,Key与Leaf会社(“叶”)常常并称为“键叶”或“叶键”(网上主要使用后者)。而Key迷则被称作是“键っ子”。

iOS实现几种会用到的加密方式

iOS实现几种会用到的加密方式 这些加密方法都是封装好的,只需要.h实现一下调用即可 1. MD5加密 传入需要加密的字符串 /** MD5加密方法 */ + (NSString *) md5:(NSString *) input { const char *cStr = [input UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5( cStr, (CC_LONG)strlen(cStr)

高德地图-拖拽地图定位

高德地图-拖拽地图定位 图片发自简书App 前几天,有个朋友托我帮他写个Demo,高德地图拖拽定位,我之前写过百度的,参考的是 张哥 的这个例子。写之前大概搜了一下,关于百度地图的实例比较多,高德地图比较少。于是就自己按照官方Demo写了一个简单地拖拽定位,整理一下,记录下来~ 老规矩,先看图: 高德地图. __weak typeof(self) weakSelf = self; return annotationView;

iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌

@end 第1层模型:实现文件需要指明数组里面装的类名 Status.m #import "Status.h" @implementation Status + (NSDictionary *)arrayContainModelClass { return @{@"cellMdlArr" : @"CellModel"}; /* 2. 遍历字典 */ [dict enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { /* 3. 判断 key 是否字 propertyList 中 */ if ([propertyList containsObject:key]) { // 获取成员属性类型 // 类型经常变,抽出来 NSString *ivarType;

SDWebImage下载透明图片显示白底的问题

NSData * imageData = UIImagePNGRepresentation(image); } 这样做,很好的解决了,但是,不是很完美,能不能再继续优化呐,和同事讨论后,采用SDWebImage的实现逻辑方式,把图片的data数据命名为key,(iconUrl的MD5加密后的值),这样的代码看着才舒服嘛~ NSString * diskCachePath = [NSFileManager mar_getCacheDirectoryForFile:@"mxrimageCache"];isDirectory) { UIImage *resultImage = [UIImage imageWithContentsOfFile:imagePath];

Swift4中Codable的使用(三)

y) } } class Ponit3D: Ponit2D { var z = 0.0 // 标记为private private enum CodingKeys: String, CodingKey { case z } override func encode(to encoder: Encoder) throws { //调用父类的encode方法将父类的属性encode try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(z, forKey: .(intValue: Int) {return nil} var stringValue: String //json中的key // 根据key来创建Codingkeys,来读取key中的值 init?

双向链表

} @end @implementation TwoWayLinkedListNode @end /** 链表 */ @interface TwoWayLinkedList () { @package TwoWayLinkedListNode *_head; // 链表字典 } @end @implementation TwoWayLinkedList - (instancetype)init { self = [super init]; } } 将某个节点移到最前端 /** 将某个节点移到最前端 @param node node */ - (void)bringNodeToHead:(TwoWayLinkedListNode *)node { if (_head == node) { return; _tail = nil; _dic = [NSMutableDictionary dictionaryWithCapacity:0];

Android - 打包之多渠道打包

Android - 打包之多渠道打包 老婆保佑,代码无BUG 前言 开发环境 MAC AS 3.0 目录 一:程序签名 (1)选择Generate Signed APK (2)新建一个签名文件 (3)填写信息 WX20180109-094212@2x.png 二:友盟多渠道打包 (1) 友盟集成文档 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

Android缓存策略

long maxSize = 10 * 1024 * 1024; } 由于各种数据类型大小测量的标准不统一,具体测量的方法应该由使用者来实现 保存数据 下面代码来自 http://blog.csdn.net/shakespeare001/article/details/51695358 /** * 给对应key缓存value,并且将该value移动到链表的尾部。 */ public final V put(K key, V value) { if (key == null || value == null) { throw new NullPointerException("key == null || value == null");sizeOf() is reporting inconsistent results!

lua table深拷贝

lua table深拷贝 一、代码引入: function clone(object) local lookup_table = {} local function copy(object) if type(object) ~= "table" then return object elseif lookup_table[object] then return lookup_table[object] end local new_table = {} lookup_table[object] = new_table for key, value in pairs(object) do new_table[copy(key)] = copy(value) end return setmetatable(new_table

Lua内存分析工具

但是还有一些不需要GC的数据类型,所以又定义了一个Value的联合体 /* ** Union of all Lua values */ typedef union { GCObject *gc; if (strchr(mode, 'k')) { weakk = true; 这样在lua代码里,我们就可以通过 local snapLib = require "snapshot37" 来引入我们的函数了 总结 Lua内存分析工具的一些解决方案 Lua中各种数据类型是怎么表示的 遍历GCObject的步骤 具体的一些LUA C API有不明白的可以多查看Lua官方文档

Kotlin —  Destructuring Declarations(解构声明)

Kotlin —  Destructuring Declarations(解构声明) 什么是解构? 解构是从存储在(可能是嵌套的)对象和数组中的数据中提取多个值的一种便捷方式。 有时候,将对象拆分为多个变量是很方便的,例如: val (name,age)=user 现在,你可以单独的使用name和age了: println(name) println(age) 我们可以通过函数返回两个值,例如: data class User(val name:String,val age:Int) fun getUser():User{ return User(name

Kotlin学习之Map常用工具函数

apply { putAll(pairs) } inline fun linkedMapOf(): LinkedHashMap = LinkedHashMap () fun linkedMapOf(vararg pairs: Pair ): LinkedHashMap = LinkedHashMap (mapCapacity(pairs.size)).apply { putAll(pairs) } 四、解构函数 解构函数就是用operator关键字修饰的componentN()函数,这里的N是从1到5的整数。 Maps.kt中定义了两个解构函数: inline operator fun Map.Entry .component1(): K = key inline operator fun Map.Entry .

iOS-排序算法简介

iOS-排序算法简介 1.选择排序 由于选择排序过于简单,看一下代码应该就能懂 NSMutableArray *array = [@[@3,@5,@2,@9,@6,@7] mutableCopy]; NSInteger n = array.count; //快速排序 - (void)quickSortArray:(NSMutableArray *)array withLeftIndex:(NSInteger)leftIndex andRightIndex:(NSInteger)rightIndex { if (leftIndex = rightIndex) {//如果数组长度为0或1时返回 return ; } //将基准数放到正确位置 array[i] = @(key); NSNumber *number = @9;

基本算法——快速排序算法

(2)最好的情况下,如果每次划分过程产生的区间大小都为n/2,时间复杂度是O(nlogn); (3)平均时间复杂度是O(nlogn); 算法的稳定性: 在快速排序算法中,多个相同的值的相对位置也许会在算法结束时产生变动,所以快速排序不是一种稳定的排序算法。

OC底层知识(三): KVC

OC底层知识(三): KVC 1、KVC简单介绍 KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性。KVC的基础知识 2、常见的API - (id)valueForKeyPath:(NSString *)keyPath; // 其他层的属性取值 3、简单的使用 JKPerson继承于NSObject,JKDog继承于NSObject, 在JKPerson定义一个属性@property(nonatomic,strong) JKDog *dog; [person setValue:@20 forKeyPath:@"dog.age"]; @interface JKPerson : NSObject { @public int height;

OC底层知识(五) :关联对象

static char MyKey; NSArray *str = @"revel"; demo查看JKPerson+Test3 2.4、使用get方法的@selecor作为key 可以使用_cmd来代替@selector(getter) objc_setAssociatedObject(obj, @selector(getter), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC) objc_getAssociatedObject(obj, @selector(getter)) demo查看JKPerson+Test4 三、关联对象的原理探索 3.1、实现关联对象技术的核心对象有 AssociationsManager Class AssociationsManager { static AssociationsHashMap *_map;

UE4随笔——TMap自定义结构体键值

其中GetSetKey()用于设置Key的值,Matches()用于进行Key值碰撞测试,GetTypeHash()用于获取Key的Hash。根据以上代码不难发现,在生成Hash的时候会会调用Key值结构体的“==”运算符来判断两个Key值是否相等,以及GetTypeHash()来产生Hash,由此我们可以得到第一种构建自定义结构体键值的方法: struct FMyKey { FString Name; explicit FMyStruct(float InFloat) :UniqueID(FGuid::NewGuid().MyMapToInt32;

Vue.js模板方法

Vue.js模板方法 博文出处:Vue.js模板方法,欢迎大家关注我的博客,谢谢! v-html 将 html 的代码输出 new Vue({ el: '#app', data: { message: ' Hello World ' } }) v-bind 使用 v-bind 指令赋值给 HTML 属性 Hello new Vue({ el: '#app', data: { imgurl: 'https://www.baidu.com/img/bd_logo1.png', useClass: true } }) .

Hadoop中两表JOIN的处理方法

Hadoop中两表JOIN的处理方法 1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的。而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧。 本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法。 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce

redis的vaule之list

redis的vaule之list list类型 list是一个链表结构,可以理解为一个每个子元素都是string类型的双向链表。主要功能是push、pop、获取一个范围的所有值等。操作中key理解为链表的名字。 List类型数据操作指令简介 lpush key string在key对应list的头部添加字符串元素,返回1表示成功,0表示key存在且不是list类型。 rpush key string在key对应list的尾部添加字符串元素。 llen key返回key对应list的长