自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jaccty的博客

不经一番寒彻骨,那得梅花扑鼻香

  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

转载 用xcode往码云上传项目

1、首先在码云创建账号,并且创建项目2、创建成功以后,在点击克隆/复制按钮,复制下载链接3、在终端中,cd到桌面,执行命令git clone ~~~git clone 后面跟的是你刚刚复制的链接4、命令行执行完毕之后,会在桌面下载下我们刚在码云创建的项目,打开文件夹,会有以下如图5、然后将我们项目里的文件拖进来,一定要注意,这里我们拖进来的是项目里的文件而

2017-11-29 14:46:56 1731

原创 整理1

1 @property@property 是 readwrite,assign,atomic在使用 @property 时, 编译器默认会进行自动 synthesize,生成 getter 和 setter,同时把 ivar 和属性绑定起来使用 @dynamic,显式表示不希望编译器生成 getter 和 setterprotocol 中定义的属

2017-10-31 15:45:04 313

原创 ios——备忘__attribute__总结(一)

1、__attribute__一般用来设置函数属性、变量属性、类型属性等格式:__attribute__(xxx)    xxx:即参数官方例子:NSLog#define NS_FORMAT_FUNCTION(F,A) __attribute__((format(__NSString__, F, A)))format属性可以给被声明的函数加上类似printf或者scanf的特征,它

2017-09-25 15:36:40 902

翻译 python——深刻理解Python中的元类(metaclass)

英文出处:stackoverflow。元类上篇文章已经提到了,但相信很多人对于元类的理解都不够深入,本人也一样,在Stack Overflow查找资料以便帮助理解。类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python

2017-08-18 14:36:04 491

原创 python——type()、metaclass元类和精简ORM框架

1、type()函数#type()函数既可以返回一个对象的类型,又可以创建出新的类型,# 比如,我们可以通过type()函数创建出Hello类,而无需通过class Hello(object)...的定义:def fn(self,name='world'): #先定义函数 print('Hello, %s.'%name)#开始用type()hello = type('Hel

2017-08-18 12:28:48 1761

原创 Python——作用域

作用域在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name

2017-08-14 17:03:50 247

转载 python——一步一步教你认识Python闭包

什么是闭包?闭包有什么用?为什么要用闭包?今天我们就带着这3个问题来一步一步认识闭包。闭包和函数紧密联系在一起,介绍闭包前有必要先介绍一些背景知识,诸如嵌套函数、变量的作用域等概念作用域作用域是程序运行时变量可被访问的范围,定义在函数内的变量是局部变量,局部变量的作用范围只能是函数内部范围内,它不能在函数外引用。def foo(): num = 10 # 局部变量

2017-08-11 17:23:14 280

原创 Python——列表生成式备忘

l = ['Hello', 'World', 18, 'Apple', None]L = [x.lower() for x in l if isinstance(x,str)]#数字和none会不见,不是最好方法#下面的方法可以保留L = [x.lower() if isinstance(x, str) else x for x in l]#最好的方法,保留数字和noneif __name

2017-08-04 20:18:53 220

原创 Python——Python文件中常见的if __name__ == '__main__': 的解析

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__',那么这个语句到底是做什么用的呢?在解释之前,首先要声明的是,不管你是多么小白,你一定要知道的是:1.python文件的后缀为.py;2..py文件既可以用来直接执行,就像一个小程序一样,也可以用来作为模块被导入;3.在python中导入模块一般使用的是import。

2017-08-04 17:21:00 433

原创 Python——切片备忘

切片(Slice)操作符在很多编程语言中,针对字符串提供了很多各种截取函数(例如,substring),其实目的就是对字符串切片。Python没有针对字符串的截取函数,只需要切片一个操作就可以完成,非常简单。作用 取一个 list 或 tuple 或字符串的部分元素格式 [开始索引:结束索引:间隔及方向] 关于默认值,不要纠结了,只要省略了,我们就认为按指定方向取尽,如果开始索引,

2017-08-04 12:12:02 211

原创 Python——常见错误备忘

Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level运行环境是win10 x64 sublime text3,谷歌翻译是缩进问题。具体来说是由于有的地方使用了4个空格,有的地方使用了tab键。代码区直接全选就会看到有的地方是四个点有个地方是一个

2017-08-03 15:33:49 238

原创 php——水印

很多开发语言都会实现水印功能,之前我用OC和swift都实现过,最近学下php,顺便练下手,记录下以便查阅。<?php //水印function water($source,$water = '1_jaccty.png',$position = 0,$alpha = 100,$type = "jpeg",$path = 'waterTest',$isRandName = true){

2017-07-30 21:11:06 281

原创 php——记中文验证码

现在市场上大部分不再使用简单的数字字母验证码,转而使用的是中文验证码或者滑块验证码,本文主要是对中文验证码的记录,方便以后查阅。<?php verify_chinese();function verify_chinese($width=120,$height=40,$num=4,$type=2){ $image = imagecreatetruecolor($width,$height

2017-07-29 17:14:00 518

原创 3.28——对3.9苹果热更事件的跟进(JPatch)

3.28今天JPatch的bang发布了1.7版本的说明,3点改进,其中的一条是禁止Sdk接入,这条很要命,这样我的Sdk更新看来得另辟蹊径了,不过,猜想通过类名混淆能躲过苹果代码扫描,个人的Sdk应该还是可以使用JPatch的,(这应该也是bang在文中强调不要混淆类名的原因吧,不过这也得试一下才知道,说不准哦)可以进入这里下载1.7版的

2017-03-29 10:06:18 403

原创 备忘——定时器

//关闭定时器 fileprivate func invalidateTimer(){ guard timer != nil else { return } timer.invalidate() timer = nil } //开启定时器 fileprivate func set

2017-03-23 15:46:17 336

原创 记3.9——Apple禁止热更新而受影响的第三方SDK

好久没有写点东西,就在昨天,苹果爸爸又搞事了,热更新界顿时风声鹤唳,jpatch群的老大bang也跟着发了公告,但是今天陆续听说苹果大部分接入 JSPatch 的 APP 发送了警告,跟着JSPatch 平台关于苹果警告的解决方案出来了,不过能不能过审还两说,下面举下可能接入JSPatch的第三方库,至于接不接这些库,就看个人意愿喽,不过神仙打架,殃及池鱼,我们小码农就当吃瓜群众好了。

2017-03-10 15:47:13 4634 1

原创 IOS--备忘 常用的宏

IOS开发中常用的宏,做下记录,备忘下。1、设置view的圆角边框#define LRViewBorderRadius(View, Radius, Width, Color)\[View.layer setCornerRadius:(Radius)];\[View.layer setMasksToBounds:YES];\[View.layer setBorderWidth:(Wid

2016-09-09 18:10:15 338

原创 IOS安全-- 字符串加密那点小事

一个IOS的ipa包被反编译后,其中已初始化的字符串都是完整可见的。 针对于iOS的Mach-O二进制通常可获得以下几种字符串信息:1、资源文件名  2、可见的函数符号名  3、SQL语句  4、对称加密算法的key。尤其是4,很多app会用对称加密算法,但是客户端保存私钥却是不安全的!对于攻击者来说,如果能从反编译出来的二进制中获取到私钥,却是一件幸福的事!因为你的加密基本瓦解,而且攻击

2016-09-08 15:40:40 4036

原创 IOS--备忘,获取外网IP

对于数据收集,外网IP是必须获取到的,看了很多资料,有些已过期,有些只能获取移动网络的IP,对于WiFi的就只能获取到局域网的IP,但是,这些都不是我想要的呀。终于,找到了可用的URL地址,就是利用搜狐的网址来弄的,代码如下://获得外网IP- (NSString *)ip{ return [self deviceWANIPAdress][@"cip"];}-(NSDictio

2016-09-08 10:51:26 1275 2

原创 iOS --iap内购的那些小事

最近,游戏SDK要集成iap内购,那好吧,功能实现了。没想到研发接入测试的时候反馈,苹果iap内购弹窗太慢,用户可以多次点击不同的选项。。。哎,也是,苹果服务器在美国呢,从调起支付到弹出支付界面要3秒左右,用户以为没反应,多点几次也是有的嘛(虽然不会重复支付,但是体验不好啊,对于我来说绝对不能忍)。那么怎么办呢?加遮盖?肯定是第一个想法,但是我不想这么做(就是这么任性!)好了,方法就是忽略点击事件

2016-09-02 10:51:53 1550 1

原创 iOS --判断设备是否为越狱设备,防止越狱设备进行iap内购

最近,游戏SDK要集成iap苹果内购,但是很担心越狱机安装一些iap free之类的工具来刷单,干脆就限制越狱设备进行iap支付好了。那如何检测设备是否为越狱设备呢?代码如下:- (BOOL)myIap_isJailbroken{ //以下检测的过程是越往下,越狱越高级 // /Applications/Cydia.app, /privte/var/stash

2016-09-02 10:27:14 5573 2

原创 swift学习日志—— if let 与 guard 语法糖

工作比较忙,加上swift3.0也快出来了,听说核心代码又改变了(妈蛋,又得改代码了),swift的学习放了好久,有些都快忘了,赶紧复习下。好,进入正题。话说if let 和 guard 只是语法糖,没有也可以,但有了可以使得代码更简洁方便。要理解 if let 和 guard,不妨设想假如没有这两者,代码会怎么写。-----------------------------------

2016-06-02 15:04:39 4660

转载 【那些人追的干货】如何正确使用const,static,extern

一、const与宏的区别(面试题)const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译之前处理),const是编译阶段。编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。宏的好处:宏能定义一些函数,方法。 const不能。宏的坏处:使用大量宏,容

2016-06-01 11:42:37 499

原创 工作备忘--设置任意控件任意位置的圆角

关键代码如下:    self.exitBtn.layer.masksToBounds =YES;    CAShapeLayer *maskLayer = [CAShapeLayerlayer];    maskLayer.path = [UIBezierPathbezierPathWithRoundedRect:self.exitBtn.boun

2016-05-04 12:11:03 296

原创 工作备忘——iOS 获取Assets.xcassets中APPIcon中的图片

获取Assets.xcassets中APPIcon中的图片" title="iOS 获取Assets.xcassets中APPIcon中的图片" style="margin:0px; padding:0px; border:0px; list-style:none">精华在这里: NSDictionary *infoPlist = [[NSBundle main

2016-04-14 11:35:27 2692

原创 工作备忘-位移枚举

开发中,我们经常看到很多的位移枚举,一般来说,见到位移枚举,我们都是可以写多个的,用 | 来隔开,就能识别。其实按照习惯的惯例,我们通常看到枚举,看不懂,就写个0,其实这样不好,还是要理解一下枚举的内容,是不是我们想要的那么我们来模拟一下,看位移枚举,究竟是个什么东西自定义一个枚举根据位移的常识,我们得出了偏移后的数值typedef NS_OPTIONS(NSUIn

2016-04-11 16:50:18 268

原创 工作总结-给你的SDK瘦瘦身

我有点纳闷,国内的具有极少的有关静态库SDK开发的内容,除了一些简单的如何教你开发,而且是原创还是copy,谁知道呢?细思极恐,不扯那么远了,这里就已切身的爬坑经历提供几个静态库SDK瘦身的方案。公司最近开发完了一套静态库,准备跟CP对接,按部就班地来到了合并静态库的环节,一开始没发现我们的静态库有多么的臃肿,直接到了39M。这是不允许的,想到支付宝的静态库的在8.9M左右,于是想到肯定有减少si

2016-04-05 14:55:59 1006

原创 工作总结—支付宝SDK接入之如何填坑

支付宝SDK相对于微信支付SDK来说简单很多,但是有个坑(SDK是.framework包,本人是制作游戏SDK的,不能单纯跟以前IOS应用接入一样,只将SDK导进进制作的游戏SDK里,在游戏项目中还得将alipay.framework再导进去一次,不然总会报X86,arm64架构问题,这个坑害我浪费了好多天)。而微信的SDK是.a包,直接打包进游戏SDK即可。但总的来说还是比微信好很多,微信支付S

2016-03-22 14:58:11 1000

原创 工作备忘-添加Xcode插件不小心跳过了 还怎么添加?

步骤如下:查看Xcode的UUID在终端执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID复制UUID后面那一串字符串然后打开xcode插件所在的目录:~/Library/Application Support/Developer/Shared/Xcode/Plug-in

2016-03-16 16:51:11 542

原创 一行代码解决文本占位符placeholder颜色

[_userName setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];

2016-03-07 15:23:27 488

原创 23种设计模式之简单工厂——大话设计模式

不管是哪种面向对象语言在设计模式的层面上都是相通的,只不过在设计模式的具体实现上语法稍有差异罢了:OC实现的简单工厂模式demo:点击打开链接或扫描下载demo      工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。优缺点优点工厂类是整个模式的关键.包含了必

2016-01-14 17:32:41 325

原创 swift学习日志—— Log日志

Log 输出是程序开发中很重要的组成部分,虽然它并不是直接的业务代码,但是却可以忠实地反映我们的程序是如何工作的,以及记录程序运行的过程中发生了什么。在OC中的Log日志设置请看我的另一篇博客:设置Log日志打印开关      在 Swift 中,最简单的输出方法就是使用 print,在我们关心的地方输出字符串和值。但是这并不够,试想一下当程序变得非常复杂的时候,我们可能会输出很多内容,而

2015-12-31 11:55:09 4053 1

原创 swift学习日志—— lazy懒加载

懒加载或者说延时初始化是很常用的优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间,如果有一些对象的属性和内容非常复杂的话,这个时间更是不可忽略。另外,有些情况下我们并不会立即用到一个对象的所有属性,而默认情况下初始化时,那些在特定环境下不被使用的存储属性,也一样要被初始化和赋值,也是一种浪费。      在其他语言 (包括 Objective-C) 中懒加载的情况是很常

2015-12-30 11:26:09 441

原创 swift学习日志—— 属性观察

属性观察 (Property Observers) 是 Swift 中一个很特殊的特性,利用属性观察我们可以在当前类型内监视对于属性的设定,并作出一些响应。Swift 中为我们提供了两个属性观察的方法,它们分别是 willSet 和 didSet。使用这两个方法十分简单,我们只要在属性声明的时候添加相应的代码块,就可以对将要设定的值和已经设置的值进行监听了:class My

2015-12-29 14:08:18 361

转载 swift2.1新特性(转载)

如果你觉得苹果的Swift语言没有赶上趟,那就要重新审视这一观点了!Xcode 7.1 Beta 2版本已经支持Swift 2.1了。我没有必要在此事无巨细一一列举,你随时可以自行查看其发布说明的。互操作性和数据类型从C语言中引入的枚举类型自动遵循Equatable协议。所以用于样式匹配的开关语句(switch)目前不再强制去写扩展(extension)声明和操作符(ope

2015-12-29 10:46:29 465

原创 IOS领域大牛的博客

唐巧王巍破船之家NSHipsterLimboy 无网不剩念茜的博客Xcode DevTed’s Homepagetxx’s blogKEVIN BLOG阿毛的蛋疼地亚庆的 BlogNonomori言无不尽Wonderffee’s BlogI’m TualatriXvclweiCocoabitnixzhu on scriptogr.am不会开机的男孩Nico阿峰的技术窝窝answer_huang代码

2015-12-29 10:42:54 827 4

原创 swift学习日志—— 属性

存储属性简单来说,一个存储属性就是存储在特定类或结构体的实例里的一个常量或变量。存储属性可以是变量存储属性(用关键字var定义),也可以是常量存储属性(用关键字let定义)。可以在定义存储属性的时候指定默认值,请参考默认构造器一节。也可以在构造过程中设置或修改存储属性的值,甚至修改常量存储属性的值,请参考构造过程中常量属性的修改一节。下面的例子定义了一个名为FixedLen

2015-12-28 09:32:12 449

原创 swift学习日志—— 结构体和类

//结构体和枚举都是值类型,即值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。//类是引用类型,与值类型不同,引用类型在被赋予到一个变量、常量或者被传递到一个函数时,其值不会被拷贝。因此,引用的是已存在的实例本身而不是其拷贝。//恒等运算符/*等价于(===)不等价于(!==)请注意,“等价于”(用三个等号表示,===)与“等于

2015-12-24 16:08:33 332

原创 swift学习日志—— 闭包(二)

非逃逸闭包当一个闭包作为参数传到一个函数中,但是这个闭包在函数返回之后才被执行,我们称该闭包从函数中逃逸。当你定义接受闭包作为参数的函数时,你可以在参数名之前标注@noescape,用来指明这个闭包是不允许“逃逸”出这个函数的。将闭包标注@noescape能使编译器知道这个闭包的生命周期。一种能使闭包“逃逸”出函数的方法是,将这个闭包保存在一个函数外部定义的变量中。举个例子,很多启动异

2015-12-23 17:04:58 600

原创 swift学习日志—— 闭包(一)

Swift 中的闭包定义是:闭包是自包含的匿名函数代码块,可以作为表达式、函数参数和函数返回值,闭包表达式的运算结果是一种函数类型。Swift中的闭包类似于Objective-C 中的代码块block、Java中的匿名内部类。 使用闭包表达式Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型in    语句组}其中,参数列表与函数中的参数列

2015-12-23 11:34:22 521

ihappy音乐播放器

ihappy音乐播放器,功能全面,抽屉式菜单,欢迎下载学习。

2014-01-18

vc++MFC坦克源代码

自己编写的坦克小游戏,欢迎下载!欢迎下载!欢迎下载!

2011-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除