Objective-C
文章平均质量分 62
冰萧
一个人只拥有此生此世是不够的,他还应该拥有一个诗意的世界。Choose what we love and love it!
展开
-
Xcode Test Navigator一直显示"Loading Tests..." 解决办法
做 Unit Test时,有时工程比较大时,testCase中集成的单元测试用例会比较多,如果新增、修改、写unit test每次有变动时都全部运行所有的测试用例,效旅是非常低的。幸运的是,Xcode 工具有一个Test navigator 视图,利用 Xcode 工具 Test navigator 视图可以单独跑一个测试用例。1. 问题:可是,最近发现我的xcode test...原创 2019-12-20 15:59:25 · 695 阅读 · 0 评论 -
Mac 下如保查看二进制文件,比如.heic文件
如题,介绍下如何在mac下查看二进制文件,以.heic heif文件举例。1. heif 文件格式判断+ (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data { if (!data) { return SDImageFormatUndefined; } ...原创 2019-10-25 21:02:49 · 3276 阅读 · 0 评论 -
audio session config
#pragma mark -#pragma mark - audio session config- (void)setAudioSessionConfig{ NSError *error; AVAudioSession *session = [AVAudioSession sharedInstance]; _originalAudioSessionCategory原创 2016-04-21 14:36:15 · 6198 阅读 · 1 评论 -
No Team Selected:A team must be selected to run 'ProjectName' on iPhoneName
1. 现象:发布在 app store 的 qzone,app bundle identifier:com.tencent.qzone证书支持com.tencent.*然后自已写的测试demo,bundle identifier:com.tencent.iOSTest拿了一堆将机器identifier添加进device list里了的机器,来真机运行这个demo,结果发现有的机器可以运行,有的机器原创 2015-09-23 18:33:31 · 14239 阅读 · 0 评论 -
iOS开发之*.a静态库注意事项
以*.a静态库的形式引入工程的(比如:libUploadLib.a),*.a里面的class有category形式实现时,除了在工程Target的 Build Phases里面的 Link Binary With Libraries里面添加依赖外,还需要在Target的 Build Settings的 Linking -> Other Linker Flags (Debug or Release)里面添加:-force_load原创 2015-07-27 20:46:53 · 3714 阅读 · 0 评论 -
打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路1)
二、解决思路:利用Xcode符号断点。crash堆栈里面有一个很明显的信息,即-[NSObject(NSObject) doesNotRecognizeSelector:],所以然后开着voice over,编译真机运行Qzone,然后程序走到这里停了:=============================================================这里插入一点Runtim原创 2015-09-19 21:20:17 · 8786 阅读 · 0 评论 -
打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路3)
续前一篇: 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路2)ok,到这里已经能够锁定范围了,看看po $r0的打印结果:再看看qzone的当前界面:即而局第一条feeds的昵称时挂掉了。经过追查昵称布局,发现同事写的一个class有些问题,废话不多说看代码:@interface QZShi原创 2015-09-19 21:59:19 · 6892 阅读 · 0 评论 -
打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路2)
接上一篇:打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路1)有了以上背景,可知objc_msgSend第一个参数是obj,第二个selector,第三个即selector的第一个参数。打印下看看:因为向r0(NSString)发送attributesAtIndex:effectiveRang原创 2015-09-19 21:38:22 · 8131 阅读 · 0 评论 -
Not saving crash log because we have reached the limit for logs to store on disk.解决办法
一、问题简述:Xcode, window》Devices》DEVICES选中自已的设备,打开控制台:提示日志存量已达限制,这个是系统抛出的log。"Not saving crash log because we have reached the limit for logs to store on disk. Sync or otherwise clear logs from /var/mobil原创 2015-09-18 21:18:55 · 5402 阅读 · 0 评论 -
打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(一现象)
一、现象:iPhone真机打开Voice Over的情况下,iPhone QQ空间工程,Xcode 真机编译启动必Crash,main函数里面 NSSetUncaughtExceptionHandler 捕获到Exception:捕获异常函数:static void UncaughtExceptionHandler(NSException* exp){ QZLOG_ERROR(@"QZo原创 2015-09-19 21:05:02 · 17818 阅读 · 0 评论 -
NSDictionary writeToFile:atomically: 时失败
一、现象:如下图,当NSDictionary调用 writeToFile:atomically: 时,如果容器里面包含的对象(即通过 objectForKey: 拿到的对象),为非property list objects 对象,则写入会失败。如果容器里面包含的对象也是容器,则递归考察是不是property list objects ,不是则写入失败。苹果官方文档:二、解决方案:dic调用 set原创 2015-09-18 21:45:29 · 11148 阅读 · 0 评论 -
关于[[NSNotificationCenter defaultCenter] addObserver不remove后续又收到通知crash问题
今天试了一个小demo,测出一个现象,同步出来:object 作为 observer 监听了通知 A,然后 object 中途被释放执行了dealloc,随后app发出这个通知 A:iOS 6、iOS 7、iOS 8: 必挂iOS 9:不会挂真机测试。iOS 9.0 Documentation, 最新文档:- addObserver:selector:name:object: 是说要添加remov原创 2015-09-23 19:12:20 · 8773 阅读 · 0 评论 -
UILabel 调整行间距
/* 调整行间距 */+ (void)adjustLineSpacingOfLabel:(UILabel *)label to:(CGFloat)lineSpacing{ NSString *textStr = label.text; if (textStr.length <= 0) { return; } NSMutableAtt原创 2016-01-29 17:21:45 · 6157 阅读 · 0 评论 -
关于svn merge出现Missing ranges问题的解决方法
问题描述:分支:branches/BusinessFlow/iPhone_Qzone_8.2.5_IPv6主干:trunk/src分支一直rebase保持和主干同步,分支和主干本地都up到最新后,在主干上merge 分支,出现如下错误:解决办法:尝试了stackoverflow上的方法,在分支上 “svn merge -r 650:693。。。”,但是merge不到东西;也尝试了...原创 2019-01-10 17:05:27 · 3605 阅读 · 0 评论 -
一键切换bundle为framework
因为历史原因,工程中有此子工程虽然是.framework后缀,但其实是bundle:改造方法,如第一张图。原创 2018-06-28 21:39:06 · 263 阅读 · 0 评论 -
静态库里面写的category被外部使用没有-force_load会导致找不到该方法
*.a静态库里面,写的category扩充的方法,在外面被第三方使用时有可能会crash,原因是没有load。如下图:解决方法:force-load 这个 *.a原创 2018-05-28 20:08:38 · 660 阅读 · 0 评论 -
svn错误:a peg revision is not allowed here解决方法
refer: https://stackoverflow.com/questions/757435/how-to-escape-characters-in-subversion-managed-file-names原创 2018-05-04 17:09:39 · 3449 阅读 · 0 评论 -
iOS之人工智能理解
【硅谷问道】对于 iOS 开发,人工智能意味着什么?http://www.cocoachina.com/ios/20170911/20526.html原创 2017-09-12 18:35:29 · 2603 阅读 · 0 评论 -
UIView周边加阴影,并且同时圆角
在给view加阴影并且同时加圆角的时候,会遇到经典的masksToBounds问题,masksToBounds为YES或NO时,仅阴影或圆角生效,不能同时生效。为解决此问题,解决办法是加一层layer来实现。要点:1. shadow加到单独的layer上面,layer和view.layer同frame,并且是路经阴影额?,然后加到view的底层;2. 在view的layer上面加cornerRad原创 2017-06-05 21:50:43 · 18948 阅读 · 2 评论 -
居中裁剪 image 为正方形
/* 以原图最短边为边长,居中裁剪 image 为正方形 */+ (UIImage *)centerClipImage:(UIImage *)image;/* 以原图最短边为边长,居中裁剪 image 为正方形 */+ (UIImage *)centerClipImage:(UIImage *)image{ if (!image) { return nil;原创 2017-03-23 17:16:18 · 5968 阅读 · 0 评论 -
UIButton水平居中、垂直居中按钮 image 和 title
//// UIButton+CenterAlignment.h// QZone//// Created by Jones Duan on 14-7-30.// Copyright (c) 2014年 tencent. All rights reserved.//#import @interface UIButton (CenterAlignment)/** *原创 2017-03-03 19:50:12 · 9429 阅读 · 0 评论 -
Mac OS X上面的Homebrew[备忘]
Mac OS X上面的Homebrewhttps://brew.sh/原创 2017-02-28 16:29:06 · 3770 阅读 · 0 评论 -
lldb po [$view recursiveDescription]; 打印视图层次
备忘:lldb 打印视图层次: 对某一个view,比如operationBgViewpo [operationBgView recursiveDescription];原创 2016-01-15 13:04:46 · 9745 阅读 · 0 评论 -
iOS Exception Code 之 Magic Number
https://en.wikipedia.org/wiki/Hexspeak iOS Exception Code 之 Magic Number 备忘。原创 2016-07-20 23:01:37 · 6095 阅读 · 0 评论 -
iOS objc_msgSend 野指针Crash 从 Log 提取 Crash 时 selector 的地址和名字并打印
从 crash stack log 里面,提取 objc_msgSend 关键字,定位是否是野指针问题导致的crash,如果是则打印 crash 时的 objc_msgSend 调用的第二个参数,即 selector 的地址和名字String,方便定位和 fix 此类型的 crash。具体提取方法:1. 提取字符串地址:32bit 机器,读取 crash 时 log 里面 r1: 0x 后面的 8原创 2016-06-14 18:41:38 · 7078 阅读 · 0 评论 -
十六进制字符串转化为十进制值strtoul函数
eg:NSString *strtest =@"7fffffff"; NSUInteger val = strtoul([[strtest substringWithRange:NSMakeRange(0, 8)] UTF8String], 0, 16); NSLog(@"val = %d", val);打印结果:2015-09-28 17:26:51.420 iOSTest[28原创 2015-09-28 17:32:29 · 8703 阅读 · 1 评论 -
Objective-C 私有方法
一、关于Objective-C私有方法:下面是网上一博主的部分内容:在面向对象的开发中,一个很重要的原则就是不要暴露不需要暴露的东西。 在Objective-C中,在头文件中你只能声明类方法和实例方法,这意味着你所有的方法都要暴露在外边。其实在Objective-原创 2011-10-10 21:47:51 · 8051 阅读 · 2 评论 -
iPhone开发面试题--葵花宝典
1.main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1));}答:2,5 *(转载 2011-10-09 21:37:15 · 1683 阅读 · 0 评论 -
OO原则
单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。开放-封闭原则(OCP) 软件实体应该是可以扩展的,但是不可修改。Liskov替换原则(LSP) 子类型必须能够替换掉它们的基类型。依赖倒置原则(DIP) 抽象不应该依赖于细节。细节应该依赖于抽象转载 2011-10-10 10:46:11 · 973 阅读 · 0 评论 -
关于@property及@synthesize以两Demo简单说明
大家应该都知道@代表“Objective-C”的标志,证明您正在使用Objective-C语言,可面对property及synthesize却十分头痛,对于初入iphone开发之路。就拿我自己来说吧,最初学Objective-C时,根本不晓得@property还有@s转载 2011-10-09 20:45:04 · 1084 阅读 · 0 评论 -
objective-C 笔记
一、C代码 #import int main (int argc, const char * argv[]) { NSLog(@"Hello, ">objective-c! %d %f",100,3.3);转载 2011-09-30 17:40:22 · 1359 阅读 · 0 评论 -
介绍一篇很不错的Objective-C的文章
这篇Objective-C文章的名字叫做《学习Objective-C》,文章篇幅不长,但是已经把几乎所有的Objective-C关键点都逐一介绍了。在介绍的所有的关键点中都带有不长的例子,非常简单易懂。如果您是初学Objective-C,非常欢迎您首先阅读一下本站的这转载 2011-09-23 11:02:38 · 1011 阅读 · 0 评论 -
什么是属性访问器
属性访问器(Property Accessor),包括 get 访问器和 set 访问器分别用于字段的读写操作其设计目的主要是为了实现面向对象(OO)中的封装思想。根据该思想,字段最好设为private,一个精巧的类最好不要直接把字段设为公有提供给客户调用端直接访问另外要原创 2011-09-23 21:52:51 · 1528 阅读 · 0 评论 -
object c 数据类型/对象类型介绍(1)NSString
字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中,苹果为我们提供了一个不同的字符串类型NSString。有别与普通的String为数据类型,NSString其实是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子转载 2011-09-23 11:08:01 · 1245 阅读 · 0 评论 -
Gcc编译Objective-C命令行 + UltraEdit(用ultraEdit打造自己的Objective-C IDE for Windows补充)
Gcc编译Objective-C命令行 + UltraEdit注:此篇贴是自已结合:用ultraEdit打造自己的Objective-C IDE for Windowshttp://blog.csdn.net/tomatofly/article/details原创 2011-09-22 22:05:00 · 4941 阅读 · 1 评论 -
XCode、Objective-C、Cocoa !!!
大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到 Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。如果你和我一样,对苹果相关的开发:Mac OS X或转载 2011-09-23 11:14:24 · 1982 阅读 · 1 评论 -
Objective-C语法快速参考
大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。 如果你和我一样,对苹果相关的开发:Mac OSX转载 2011-09-23 11:07:24 · 672 阅读 · 0 评论 -
Objective-C 语法学习笔记
变量定义interface 文件(*.h)中定义,定义要放在 interface 名称后的括号内对象的定义要用指针[NSButton *aButton;],使用正常名称普通变量正常定义使用方法定义interface 文件(*.h)中定义,定义放在括号外且 @e转载 2011-09-22 19:34:19 · 706 阅读 · 0 评论 -
Obj-C中的Protocol和Delegate
Obj-C中的Protocol和Delegate——内容精选自CocoaChina提问贴:http://www.cocoachina.com/bbs/read.php?tid=48957一、精典举例:举个例子,也谈谈我对delegate和protocol的理解。我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户(1)(2)我自己全原创 2012-08-30 11:43:59 · 2165 阅读 · 0 评论 -
The Pensive Programmer
Objective-C Protocols and DelegatesMy earlier article about building a currency formatter for a UITextField generated a few comments and some confusion about how to use delegates in iPhone转载 2012-08-31 09:26:21 · 950 阅读 · 0 评论