为什么说基于TCP的移动端IM仍然需要心跳保活? 1、前言有关TCP协议的权威理论介绍,请参见《TCP/IP详解》这本书。说明:本文引用了网易云信项望烽的技术文章,感谢分享。 2、学习交流- 即时通讯开发交流群:215891622 [推荐]- 移动端IM开发推荐文章:《新手入门一篇就够:从零开发移动端IM》3、参考资料《TCP/IP详解-第11章·UDP:用户数据报协议》《TCP/I
漫谈iOS Crash收集框架 为了能够第一时间发现程序问题,应用程序需要实现自己的崩溃日志收集服务,成熟的开源项目很多,如KSCrash,plcrashreporter,CrashKit 等。追求方便省心,对于保密性要求不高的程序来说,也可以选择各种一条龙Crash统计产品,如 Crashlytics,Hockeyapp ,友盟,Bugly 等等。是否集成越多的Crash日志收集服务就越保险?自
宏定义中的##操作符和... and _ _VA_ARGS_ _ 1.Preprocessor Glue: The ## Operator预处理连接符:##操作符Like the # operator, the ## operator can be used in the replacement section of a function-like macro.Additionally, it can be used in the repla
什么是md5盐值 MD5自身是不可逆的 但是目前网路上有很多数据库支持反查询(如 http://www.cmd5.com/)如果用户密码数据库不小心被泄露黑客就可以通过反查询方式获得用户密码或者对于数据库中出现频率较高的hash码(即很多人使用的)进行暴力破解(因为它通常都是弱口令)盐值就是在密码hash过程中添加的额外的随机值比如我的id是癫ω倒④ゞ 密码是123456 存在数据库中的时候就可以对字符串12
OC clang -rewrite-objc 详解 OC http://www.jianshu.com/p/c2dabb4fd761 block的语法看上去好像很特别,但实际上是作为极为普通的C语言代码来处理的。这里我们借住clang编译器的能力:具有转化为我们可读源代码的能力。 控制台命令是: clang -rewrite-objc 源代码文件名。?12345
[iOS]深入理解__bridge - OC对象与C++对象的引用转换 0x0 crash昨天在iOS Geekers钉钉群里聊到一个问题, 下面的代码会crash: void* a = new char; id ext = (__bridge id)a;crash现场如图:看看挂的地方:挂在objc_retain里面:objc_retain的作用是对oc对象做retain用的, 我们对指令做一下
iOS 客户端架构设计 MVVM MVCMVC,Model-View-Controller,我们从这个古老而经典的设计模式入手。采用 MVC 这个架构的最大的优点在于其概念简单,易于理解,几乎任何一个程序员都会有所了解,几乎每一所计算机院校都教过相关的知识。而在 iOS 客户端开发中,MVC 作为官方推荐的主流架构,不但 SDK 已经为我们实现好了 UIView、UIViewController 等相关的组件,更是有大量的
iOS 中级面试题 半年前在知乎浏览到一个帖子,是关于如何面试iOS工程师。由于当时公司正在招聘iOS工程师,自己也面试了不少同学,就饶有兴致的把自己的面试问题清单贴了出去,却意外的引来了不少关注。还有不少同学认真回答并将答案私信于我交流的,还有求隐藏关卡的:(。由于工作太忙,私信和评论后面都没怎么回复,这里一并做下总结回复:p 一份面试题的意义 — 我把收到的私信和一百多条评论都仔细读了遍,发现大家之所以会
block 的ARC和MRC中的区别 block在ARC和MRC中的声明引用有些区别. /** block可以存储在栈中,也可以在堆中 默认存储在栈中,不需要管理内存 存储在堆中的block会对block进行retain操作 */ //(MRC)block在堆中时,不想对block进行retain操作,前面加__block //(ARC)前面加__we
组件化架构漫谈 前段时间公司项目打算重构,准确来说应该是按之前的产品逻辑重写一个项目。在重构项目之前涉及到架构选型的问题,我和组里小伙伴一起研究了一下组件化架构,打算将项目重构为组件化架构。当然不是直接拿来照搬,还是要根据公司具体的业务需求设计架构。在学习组件化架构的过程中,从很多高质量的博客中学到不少东西,例如蘑菇街李忠、casatwy、bang的博客。在学习过程中也遇到一些问题,在微博和QQ上和一些做
Mac系统下安装PIL 安装PIL依赖JPEG、Freetype、LittleCMS,首先安装这三个环境(第一至三步):第一步:安装JPEGhttp://www.ijg.org/files/jpegsrc.v8c.tar.gz$ tar zxvf jpegsrc.v8.tar.gz $ cd jpeg*$ ./configure --enable-shared --enable-s
Mac OS安装PIL 安装完PIL,在处理jpg时,竟然提示“decoder jpeg not available”,搜之原来是PIL安装没有提供对jpeg的支持。首先卸载已经安装的PIL:在Mac下,找到site-packages可用如下方法:[python] view plain copyimport django dir(django
Python——UnicodeEncodeError: 'ascii' codec can't encode/decode characters 初学Python被编码格式搞的很头大,以下bug是遇到的编码问题之一:【BUG】UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-15: ordinal not in range(128)或者UnicodeDecodeError: 'ascii' codec can't decode byte
mac下安装django 下载django的安装文件,然后解压缩,然后用命令行cd到解压缩出来文件的目录,执行python setup.py install即可。或者试试下面的方法首先安装 Homebrew$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"1安装 Postgresql安装
gcdasyncsocket address already in use 找好久找到终于找到这个Current head of GDAAsyncUdpSocket does not (also) set SO_REUSEPORT (it just does ADDRESS, which is quite enough for TCP).I just popped in a quick fix:https://github.com/dirkx/
python socket.error: [Errno 48] Address already in use 简单实例服务端我们使用 socket 模块的 socket 函数来创建一个 socket 对象。socket 对象可以通过调用其他函数来设置一个 socket 服务。现在我们可以通过调用 bind(hostname, port) 函数来指定服务的 port(端口)。接着,我们调用 socket 对象的 accept 方法。该方法等待客户端的连接,并返回 connec
使用SDWebImage和YYImage下载高分辨率图,导致内存暴增的解决办法 最近,收到朋友求助,说是有个控制器,一进去就crash,而且手机非常的烫,用instrument跑了跑,发现内存暴增几百兆;如图: 图中可以看出,内存暴增的罪魁祸首是YYImage,再进一步定位问题,如图: 现在已经可以很清楚的知道,具体是哪些代码导致内存飙升的,这个方法“YYCGImageCreateDecodeCopy”,主要是对
iOS手机摄像头测心率 最近在封装一个手机摄像头测心率的模块,搞得精神各种紧张,导致吃饭、路上、做梦,甚至都在想这个东西,就在刚刚终于搞完了,写个文章庆祝一下。原理简单介绍一下,网上可以查到很多关于手机测心率的这种项目,大概就是:把手指放在摄像头和闪光灯上,通过手指处脉搏跳动充血导致的细微颜色变化来确定心跳波动,确定波峰波谷,根据两个波峰之间的时间差来确定瞬时心率。思路首先,采
iOS去除导航栏和tabbar的1px横线 1.在自己定义的导航栏中或者设计稿中经常需要去除导航栏的1px横线,主要是颜色太不协调了去除之前的图片要去除这1px的横线,首先应该知道它是什么,在Xcode的界面调试中可以看到,它其实是UIImageView来的找到横线是什么了···其实这是navigationBar的shadowImage,所以只要设置它为空即可,但是设置它为空之前应该先
用Sketch和PaintCode快速得到绘制代码 作者:codeGlider 授权本站转载。在我的上一篇文章中 swift10分钟实现炫酷的导航控制器跳转动画,有一个swift logo的形状上一篇文章的动画我说的就是中间用来做遮罩的形状。它不是图片是用一段代码绘制而成的:12345678910
PaintCode Tutorial: Bezier Paths Learn how to create dynamic curved arrows!Welcome to our third and final part of our PaintCode tutorial series!PaintCode is a neat app where you can draw user interfaces like in Photoshop
来自苹果的编程语言——Swift简介 作者:Lucida微博:@peng_gong豆瓣:@figure9原文链接:http://lucida.me/blog/an-introduction-to-swift/关于这篇文章简要介绍了苹果于WWDC 2014发布的编程语言——Swift。前言在这里我认为有必要提一下Bret Victor的Inventing on Prin
json解析 Code=3840问题 一般说来产生这个问题常见原因有两个一、是否因为编码问题导致json字符串没有正确获取。打个断点调试一下,看data能否转成str。这种情况多是因为后台或者本地的文件编码格式有问题。比如是ascii而你是按照utf8解析。二、是否因为json本身有问题。可能json的格式不对。可以百度下bejson等验证一下。比如中英文符号等等。
iOS不能显示英文音标问题 是否需要导入字体?否UIlabel的默认字体已经能显示英文音标。为啥不能正确显示?首先,请确保你请求到的数据是正常编码的能在txt里正确显示的数据。你可以在xcode中NSLog一下,看输出是否为正常的英文音标。如果不是,让后台的小哥把音标编好码。比如utf8。貌似ASCII是不行的(可能通过某种转换后也可以)
linux下IPTABLES配置详解 如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[root@tp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinat
Method Swizzling的各种姿势 因为Objective-C的runtime机制, Method Swizzling这个黑魔法解决了我们实际开发中诸多常规手段所无法解决的问题, 比如代码的插桩,Hook,Patch等等. 我们首先看看常规的Method Swizzling是怎样用的, NSHipster有一篇介绍基本用法的文章Method Swizzling, 我们就先以这篇文章中的示例开始说起吧:
Category能否给已有类添加新的属性 先说结论。常规category是用来添加函数的,并不能添加属性。但是利用runtime中objc_setAssociatedObject等方法可以生成关联对象,进而实现添加属性的需求。接下来上代码。.h文件#import <UIKit/UIKit.h>@interface UIView (something)@property (nonatomic,copy)NSString *somethin
Uber的启动画面是如何制作的 启动画面(Splash Screen)——不但给开发者们提供了一个尽情发挥、创建有趣动画的机会,也填补了App启动时从终端慢吞吞地下载数据的时间。启动画面(动态的)对于App至关重要:它可以让用户不失兴趣地耐心等待应用完成加载。尽管现在的启动画面多种多样,但很少有像Uber这般精美的。2016年第一季度,Uber的CEO发表了关于重塑品牌的策略,其中之一就是现在这个超酷的启动画面。
UIButton实现左文字右图片 [button setTitleEdgeInsets:UIEdgeInsetsMake(0, -image.size.width, 0, image.size.width)];[button setImageEdgeInsets:UIEdgeInsetsMake(0, button.titleLabel.bounds.size.width, 0, -button.titleLabel.bounds
iOS获取本机wifi的IP地址 +(NSString *)getWifiIPAddress{ NSString *ipAddress = nil; struct ifaddrs *ifa_list = NULL; struct ifaddrs *tmp = NULL; int result; result = getifaddrs(&ifa_list); if(result == 0)
iOS获取设备APP的UUID +(NSString*)getUUID{ static NSString *stringUUID = nil; if(!stringUUID){ // UserDefaultから読みこんで、なかったら生成 NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSLog(@
wireshark过滤规则简介 1.多个filter用and连接2.目的地址和源地址ip.dst==192.168.1.1ip.src==1.1.1.13.协议过滤直接输入协议名称即可tcp and udp4.端口过滤tcp.port==80//源端口和目的端口tcp.dstport==80tcp.srcport==805.http模式过滤http.requset.method=="GET"("POST")
mac上wireshark:No interface can be used for capturing in this system with the current configuration 问题来源这个问题是因为用户权限不够解决方案在终端输入sudo chmod 777 /dev/bpf*之后输入密码,密码输入过程中没有显示 照常输入回车即可。
使用Socket进行设备间点对点连接传输数据 前言最近在做一套点对点传输的软件, 需要用到Socket进行设备间通讯. 去网上查了查, 对Socket分装比较好的就是目前特别火的GCDAsyncSocket这个类了, 这篇文章就GDCAsyncSocket与GCDAsyncUdpSocket进行单例封装, 一台设备通过UDP广播, 对外发送自己的IP地址与端口号, 另一台设备做接收, 接收后连接到IP地址与端口号, 从而进行TCP连接
button如何旋转后同时改变触发位置 - (void)setAnimation:(UIButton *)uibtn{ int randomnum = arc4random() % 90 - 45; CGAffineTransform t1 = CGAffineTransformMakeRotation(randomnum * M_PI / 180.0f); [UIView animateWithDuration:0
Java字符串的各种操作。 字符串比较String str="Hello,World,Hello,Code"; int a=str.compareTo("Hfllo,World,Hello,Code");返回的是第一个不同字符之间的ASCII差值,如上面的返回-1.如果两个字符串相同,返回0.int b=str.compareToIgnoreCase("Hello,world,hello,Code"); 和上面差不多,区
超赞!帮你打造极简风APP UI 的实用设计技巧 随着用户对UI的喜好开始偏向简约,设计师有必要将整个UI简化剥离至基本状态,因为保留关键元素才是成功的钥匙。从某种意义上说,极简主义的设计是形式和功能的完美结合。它最大的优势在于形式上的清晰直观——简洁的线条,大量的留白,优雅简约的图形元素,赋予整个设计以简约干净的感受。即使是最庞杂的内容,在这样的设计之下都显得直观而干练,当然,如果设计的足够高效的话。极简风的APP设计通常要具备几个特征
Embedded binary is not signed with the same certificate as the parent app解决方案 当我编译一款很早之前的一个带有app extension功能的app时,xcode给我报了这个错误。错误的原因是containingApp和share Extension的证书不匹配。我在stackoverflow上看到其他小伙伴的解决方式,我发现这个问题可能有多种解决方式,原因也可能响应的不同。我的错误原因是share Extension的code signing中的provisioning pr
CADisplayLink的调用足够精确吗? 当CADisplayLink 以特定的模式注册到runloop之后,每当屏幕需要刷新的时候,runloop就会调用CADisplayLink绑定的target上的selector。对于iOS设备来说刷新频率就是60HZ,也就是说selector的调用是每秒60次。但是CADisplayLink的调用真的足够精确吗?因为我们知道,fps这个东西可不是一成不变的!我在selector中写了下面一些代码:
NSURL创建出来为nil的问题 这个问题。除开你【NSURL URLWithString:Str】的Str为空这样的傻逼问题之外,百分之八十都是因为str中包含汉字等未经编码的格式产生的。解决办法:Str = [Str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 这样处理过后再创建URL
15 张令人喷饭的 IT 趣图(第2季) 小编给各位汇总近期「程序员的那些事」上推荐的精彩趣图/漫画。0. 我写了一段代码1. 国内一些大平台的推荐算法童鞋,我们发现你刚才在搜索馒头,正好面粉开通了微博,记得关注哦。2. 上线发布前加了最后一个小特性,结果……3. 记一次产品安全性能测试,非常严格记一次产品安全性能测试,非常严格23333334
正则表达式笔记 ^ 表示开始 ^\@$ 表示结束 [a-z]$\ 转意 特殊字符一般要加这个才能去匹配[\u4e00-\u9fa5] 匹配汉字[^a-z] 负值匹配 即匹配除了a-z的字符[a-zA-Z0-9] 和\w是差不多的 \w多匹配个下划线\s 匹配所有空格类 回车换页等等\S 匹配除\s的其他字符{n} {n,} {n,m} 匹配多少次 [
IOS开发微博中涉及到的一些正则表达式(表情,话题,链接,@) // 需要正则的字符串NSString *str = @"#呵呵呵#[偷笑] http://test.com/blah_blah";// 表情的规则NSString *emotionPattern = @"\\[[0-9a-zA-Z\\u4e00-\\u9fa5]+\\]";// @的规则NSString *atPattern = @"@[0-9
setValuesForKeysWithDictionary方法的正确使用姿势 1.为什么用之前给model赋值的时候,一个一个往上写,写的贼tm烦,所以一直想找一个简单方便的方法。。。来张图感受下。2.怎么用用这个之前我是知道有这么一个方法能快捷的赋值的,但是为什么没用呢?因为它搞不好就崩。使用方法很简单: Model *item = [[Model alloc]init]; [item setValuesForKeysWithDictionary:dic];
unable to dequeue a cell with identifier - must register a nib or a class for the identifier...问题 之前也曾遇见这个问题(或者类似问题),但是忘了是怎么产生的了。这次的问题出现在以下代码TopPageTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath ];应该改成 TopPageTableViewCell *cell = [tableView dequeue
如何截取scrollView里面的图片 如下- (UIImage *)captureScrollView:(UIScrollView *)scrollView{ UIImage* image = nil; UIGraphicsBeginImageContext(scrollView.contentSize); { CGPoint savedContentOffset = scrollView.con
15 张令人喷饭的 IT 趣图(第1季) 小编给各位汇总近期「程序员的那些事」上推荐的精彩趣图/漫画。1. 不可能,我写的代码怎么会有问题不可能!!!我的代码怎么会有问题呢!!!这一定是机器问题!!!2. 史上最牛叉的程序员!本人学识渊博、经验丰富,代码风骚、效率恐怖,c/c++、java、php无不精通,熟练掌握各种框架,深山苦练20余年,一天只睡4小时,千里之外定位问题,瞬息之间修复上线。身体强
如何抛弃鼠标全键盘操作xcode 授权转载,作者:吴白(微博)手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷。优秀的程序员总是这么一群人,他们不拘于现状,不固步自封,他们喜欢新奇的事,他们把自己发挥到极致。指法攻略放下您钟爱的鼠标吧,在前行之中它终会成为你的负累!简记:command 用来导航,控制导航区域alt 控制右边的一些东西,比如Assistant Editor,utili
iOS开发中的一些常用方法 1.磁盘总空间大小+ (CGFloat)diskOfAllSizeMBytes{ CGFloat size = 0.0; NSError *error; NSDictionary *dic = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:&erro
设计师最常忽略的UI页面状态:空白状态 设计师必须让用戶在 “首次使用" 就有好的体验!本篇就要探讨设计师最常忽略的页面 – 空白状态(empty state) 页面。大多 app 平均会失去 77% 的用户(用户下载后三天)。更糟的是,在 30 天内, 将近 80% 的用户不再使用。造成如此低的用户留存率(retention rates)是因为 app 制作或概念不良吗?恐怕有其他原因。基本上,使用者会下载许多 app
iOS开发 如何在Label中显示图片-图文混排 在实际项目开发过程中,我们常会遇到一段文字中既要有图片又要有文字,例如我们经常使用的QQ、微信的聊天对话框中,表情和文字共存就是一种典型的图文混排。QQ20150827-1.png可以直接使用Quart2D,直接在Label的draw方法中画图片上去,但是这种方法成本比较高,我们推荐使用text自带的属性来做。要做到图中在文字中插入表情的效果,首先我们得来了
Android5.0+(Percent 百分比布局) 相信大家都已经对Android API所提供的布局方式非常熟悉了。也许在接触Android的时候都有过这样的想法,如果可以按照百分比的方式进行界面布局,这样适配各种屏幕就简单多了吧!谷歌正式提供百分比布局支持库(android-support-percent-lib)。当然了android-percent-support这个库,基本可以解决上述问题,下面我们将对这个支持库进行介绍这
android studio如何打印 要使用System.out.print打印时,你会发现logcat没有输出。 你可以在打印前加一句System.out.println("")或者,打印的时候使用Log.d等语法。 http://blog.csdn.net/zuolongsnail/article/details/6327129
Android Button onClick事件的三种写法 package a.a;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;public class AActivity extends Activity { /
iOS app旧貌换新颜(一)Launch Page让Logo"飞"出屏幕 文/一缕殇流化隐半边冰霜(简书)转自 http://www.cocoachina.com/ios/20160603/16595.html前言当今是个看脸的世界,一个app的颜值可能会决定用户的使用次数,icon的颜值更可能决定了用户是否回去下载,如果太丑,放在手机桌面都难看,那用户很可能就直接卸载了。所以漂亮的界面UI + 合理的用户体验UX/UE也会很大程度决定用户的黏性
java和objective-C对接笔记 java类一个源文件中只能有一个public类一个源文件可以有多个非public类public class Dog{ String breed;//成员变量 void barking(){ }}iOS: @property int a;- (void)viewDidLoad {}初始化/* 实例化对象 */ObjectReference = new Constructo
【干货】如何大幅度提高Mac开发效率 关于 Mac 工作效率的文章一直层出不穷,然而并非所有内容都适合程序员,比如某些 Unix 命令,其实使用频率非常低。作为一名初级 iOS 程序员,我尝试着和大家分享一些能够切实提高我们开发效率的小技巧。我是无鼠标主义者,任何需要鼠标的操作在我看来都是极为低效的。Mac 的触摸板非常好用,但是我依然在尝试避免使用触摸板。因为双手保持在键盘区域更适合编程。虽然触摸板不可能被避免(比如浏览网页
正确使用iOS常量(const)、enum以及宏(#define) 前言:本文主要梳理iOS中如何使用常量、enum、宏,以及各自的使用场景。重要的事情首先说:在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随着项目工程的逐渐增大,过多的宏定义还可能影响项目的编译速度。宏定义大家应该都不陌生,使用起来非常简单,首先我们先来看一下宏定义跟const的区别:1.宏在编译开始之前就会被替换,而const只是变
Mac OSX 快捷键&命令行 一.Mac OSX 快捷键ctrl+shift 快速放大dock的图标会暂时放大,而如果你开启了dock放大Command+Option+W 将所有窗口关闭Command+W 将当前窗口关闭(可以关闭Safari
10个惊艳的Swift单行代码 英文原文:10 Swift One Liners To Impress Your Friends,译者:码农网–小峰转自 http://www.cocoachina.com/swift/20160429/16051.html几年前,一篇表述“10个Scala函数式单行代码”的文章非常受欢迎,并且随后立马出现了其他的语言版本,例如Haskell版本,Ruby版本,Groovy版本,Clo
用openAL播放ffmpeg解码的buffer突然加速问题 问题重现如果你已经研究了一段时间的openAL或者下载过大量openAL相关的代码,那么你应该知道,openAL的播放模式是将一个个unsigned char *格式的数据添加到一个队列中,然后逐步播放。 当用ffmpeg将音频文件解码成一帧帧的数据后,填充到openAL的队列当中。 因为是边解码边播放,而且解码速率远远大于播放速度,因此openAL的队列中会堆积大量的buffer。这也
Markdown 11种基本语法 现在是我在学习Markdown时做的笔记。学完这些Markdown的基本使用已经不成问题。 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式:第一种:通过在文字下方添加“=”和“-”,他们分别表示一级标题和二级标题。第二种:在文字开头加上 “#”,通过“#”数量表示几级标题。(一共只有1~6级标题,1级标题字体最大)
利用runtime查看苹果私有API Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果给出了/usr/lib/libobjc.A.dylib库,这个共享库提供支持动态属性的objective - c语言,通过其接口,可以用于开发将其他语言运行于Objective-C上的中间层(桥接层),库里的函数定义为纯C语言。这里我们要用库里的函
iOS实时滤镜实现--基于GPUImage。 1. 背景前段时间由于项目需求,做了一个基于GPUImage的实时美颜滤镜。现在各种各样的直播、视频App层出不穷,美颜滤镜的需求也越来越多。为了回馈开源,现在我把它放到了GitHub上面,感兴趣的朋友可以去下载。下面将主要介绍实现美颜滤镜的原理和思路。2. GPUImageGPUImage是一个开源的基于GPU的图片或视频的处理框架,其本身内置了多达120多种常见的滤镜效果。
iOS ffmpeg编译,C compiler test failed.问题 如何编译ffmpeg使用大牛编写的自动化脚本 脚本地址: https://gist.github.com/m1entus/6983547 运行这个脚本需要依赖一个库Perl写的脚本,搜了一下网上目前编译FFmpeg库的帖子基本都会提到这个脚本,脚本地址如下: https://github.com/mansr/gas-preprocessor。 下载完这两个脚本后,编译FFmpeg库的准备工作就
Unable to add App ID because the '10' App ID limit in '7' days has been exceeded解决办法 出现原因根据这句提示,其实也差不多能理解,它说不能添加AppID因为超出了7天内10个AppID的限制。也就是说,现在苹果公司应该是对真机调试做出了限制(不知道和xcode版本有没有关系,因为我的是最新的),限制7天内值允许10个app进行真机运行。解决方法其实大概也能想到- -,因为它只是对id做了限制,为了你不要创建出大量的ID出来,即bundle ID,但是它并不能识别出你的代码到底是啥,变还
关于GIT VCS的使用(公司资料) 附件是git完全图解。下面是基本命令的解释,主要有:add, reset, checkout, pull, push, fetch, clone, init, tag等。Ps:在commit时,需要注意一定要加-m参数,写上commit messages,否则会打开vim强制你写一个。关于git flow,网上也有一些最佳实践,比如:http://www.cnblo
优雅的使用MacBook(一些小技巧,你不会知道的) 整理了一些MacBook使用过程中发现的吊炸天的小技巧,我不太相信你都知道。1.command+delete快速删除文件。妈妈再也不用担心我用右键->删除这么low的技能了!2.shift+option+vol-down微调声音。少一格太小,大一格太大。就没有中间的大小吗你妹的!3.fn+delete反向删除文字。我就说backspace怎么能和del合并成一个!?4.command+control
nil、Nil、NULL、NSNull的区别 nil、Nil、NULL、NSNull的区别nil:解释:nil 是 ObjC 对象的字面空值,对应 id 类型的对象,或者使用 @interface 声明的 ObjC 对象。(指向一个对象的空指针) 举例:NSURL *url = nil;Nil:Nil 是 ObjC 类类型的书面空值,对应 Class 类型对象。(指向类的空指针) 举例:Class class = Nil;NULL:解释:指
"To use this device with Xcode, unlock the device and choose "Trust". 真机调试的时候遇到了如题的问题 显而易见的,根据英文我们可以很清楚的得知,解锁设备然后选择信任,就可以了。 我解锁了设备,看到提示是否信任,选择了信任,RUN。 “To use this device with Xcode, unlock the device and choose “Trust”. ??? whaaaat? 我又仔细看了一遍提示,“要想使用这个设备,解锁它选择信任”。
popoverController消失的很慢问题-dismiss很慢 今天用到了popoverController这个类,但是通过代理dismiss的时候发现,不会立即消失,等待几秒钟后才会消失。后来发现问题竟然出在pop出的viewController中,tableView的cell有这样一个属性selectionStyle。cell.selectionStyle = UITableViewCellSelectionStyleNone这个属性的
Unknown type name "NSString"解决方案 今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 导致出现异常的原因是是因为工程中添加了ZipArchive(第三方开源解压缩库) 一般情况下出现“Unknown type name”是头文件互相引用出现的,这里可以排除,由于源码使用是c\c++与oc混编,考虑新的XCode编译文件类型导致的,尝试
ld: symbol(s) not found for architecture x86_64问题解决 我出现这个问题的工程刚好用到了zip解压,使用了C的混编,一开始我以为是混编造成的错误,后来我突然发现没有导入libz库,导入库后解决。因此出现这个错误时,可以仔细检查下是否是因为缺少必要库造成。
尽量不要在viewWillDisappear:方法中移除通知 在了解控制器的生命周期之后,我们都知道viewWillAppear:方法是在控制器的view将要显示的时候调用的,而viewWillDisappear:方法是在控制器的view将要隐藏的时候调用。很多时候我们根据自身需要将相关代码逻辑添加到这两个方法中,我们看下如下代码片段:监听键盘的通知代码这段代码是在控制器的viewDidLoad:方法中注册了一个键盘弹出的通知和键盘隐
Autolayout约束动画化-Animating Autolayout Constraints 原文:Animating Autolayout Constraints作者:@kharrison译者:CocoaChina--起个名字好难(CC论坛ID)首发:CocoaChina记于二零一五年晚春:距上次发文已有五天,看了众同僚的反馈,我把这段代码重新搞了搞,以此来避免在运行时添加或删除约束。取代这些像JAVA一样笨重的方法的是我开
mac端如何快速搭建一个web服务器 本来一直是用windows上的MiniWebServer,后来发现mac平台上可以直接用这个——-SimpleHTTPServer使用方法1.打开终端 输入python -m SimpleHTTPServer 8080 2.打开浏览器 输入 http://localhost:8080结束,是不是很方便~
CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target ex:The dependency `` is not used in any concrete targetThe dependency `AFNetworking ` is not used in any concrete target12CocoaPods再遇困难,前几天电脑重装了系统,所有的开发工具就都装了最新的,当我用CocoaPods的时候,出了一个提示,大概就是我的版本
iOS:手把手教你发布代码到CocoaPods(Trunk方式) Change Log:2015.08.20 - 添加podspec文件更新方法2015.08.19 - 首次发布概述关于CocoaPods的介绍不在本文的主题范围内,如果你是iOS开发者却不知道CocoaPods,那可能要面壁30秒了。直奔主题,这篇文章主要介绍如果把你的代码发布到CocoaPods代码库中,让别人可以使用“pod search yourOpenProj
iOS 无缝连接滚动轮播图的一种实现思路 考虑到轮播图的图片个数一般不会太多,可以暂时不用考虑UIImageView的重用问题。有些人写出的轮播图会有一个什么现象,滚到最后一张时,继续滚会往前滚动一直滚到第一张。这样的视觉效果并不是很好。我们可以考虑给他左右各加一个位置的ImageView,以做缓冲,以三张为例的话,在ScrollView中是这样的 3 1 2 3 1也就是当我们给ImageView
Objective-C @encode关键字 最近一段时间比较忙,抽空看了一下设计模式(主要是看两本书,《大话设计模式》和《Objective-C编程之道:iOS设计模式解析》 );研究了一下3D数学和opengl,开始学习cocos2D,感觉时间总是很零散,很不够用,所以很久都没有写blog了。闲话少扯,言归正传。昨天被一个同事问到,如果把一些数(int ,BOOL类型等)封装到NSNumber对象中,而这些NSNumber
CocoaPods详解之----制作篇 CocoaPods详解之----制作篇作者:wangzz原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595转载请注明出处如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!学会使用别人的Pods依赖库以后,你一定对创建自己的依赖库
the file “XXX” could not be opened because you don't have permission to view it问题 貌似因为不小心把文件两次拖入到工程中,造成了这个问题:duplicate symbols for architecture i386解决方案:http://www.xuebuyuan.com/2039368.html而后在运行出现了这个问题(如下图)我是这样解决的----clean一下工程。。
The view hierarchy is not prepared for the constraint The view hierarchy is not prepared for the constraint: When added to a view, the constraint's items must be descendants of that view (or the view itself). This will crash if the constraint needs to
播放器类app如何后台继续播放并在上拉菜单中控制 1.在TARGETS-Capabilities-Background Modes设置为ON,勾选Audio and AirPlay选项2.代码中加入如下代码 AVAudioSession *session = [AVAudioSession sharedInstance]; [session setActive:YES error:nil]; [session setCateg
iOS 关于枚举的使用 引言:枚举值 它是一个整形(int) 并且,它不参与内存的占用和释放,枚举定义变量即可直接使用,不用初始化.在代码中使用枚举的目的只有一个,那就是增加代码的可读性.使用:枚举的定义如下:[csharp] view plain copytypedef enum { //以下是枚举
ios开发技巧之tableView去掉多余的空行分割线 自定义cell分割线 如何去掉tableView多余的空白行分割线?我们经常会遇到下面的问题,tableView表视图上面的内容不是很多,但是 tableView 却帮忙把 整个屏幕都用 空白行分割线占满了:如下图:代码如下: view sourceprint?01.//02.// TableViewController.m
NSData转NSString时为空 原因可能有很多,但很大程度是是因为编码问题。明明拿到了NSData,确定此Data为NSString,可就是转换不成功。 NSStringEncoding myEncoding =CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000); NSString *rawString=