
iOS开发
文章平均质量分 56
脱离语言
这个作者很懒,什么都没留下…
展开
-
iOS XCode启用/关闭Clang Warnings
做iOS开发,有时Xcode会给提示一些警告,但是你知道这里没问题,看着警告烦人,想关闭这个警告,怎么办。进入查看转载 2015-11-16 10:42:12 · 4517 阅读 · 0 评论 -
SDK开发断点失效
做SDK开发,一般会创建一个静态库工程,然后添加一个app的Target可是,Xcode7创建的工程,app的Target中断点有效,能断住,为什么静态库的Target中的断点断不住呀。断点断住发现各变量值是nil的话,是Scheme中的Build Configuration选择了release,可是这断不住是怎么回事呀。跟以前Xcode6创建的工程对比静态库Target的Build原创 2015-11-03 11:16:06 · 4658 阅读 · 0 评论 -
iOS多线程GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。dispatch queue分成以下三种:1)运行在主线程的Main queue,通过dispatch_get_main_queue获取。/*!* @function dispatch_get_main_queue** @abstract* Returns the转载 2015-11-09 16:05:45 · 2755 阅读 · 0 评论 -
ARC 与非 ARC 之间那些的'祸害'
你是否也曾被 assign、retain、copy、release、autorelease、strong、__strong、weak、__weak、__unsafe__unretain、__autoreleasing、__bridge、__bridge__transfer、__bridge__retained这些个 ARC 和非 ARC 之间的『祸害』搞的晕头转向,四肢无力,整个人都不好了。转载 2015-12-14 10:28:28 · 4128 阅读 · 0 评论 -
拿到驾照了
历时三个月左右的驾照拿到了,之所以要写篇博文,是因为约车时使用了约车软件,我自己开发的,所以也归入技术类文章。 报名及科目一考试不必细说,最终在2月28号办理好上车手续,可以网上约车了。 当时约车外挂不多,没引起学校重视,所以我的外挂一直很“灵”。后来学校封杀过一次,不过没影响到我的约车方法,因为我是直接调约车接口的,而且是提前8天约的车(正常约车只能提前7天哦原创 2012-06-16 16:16:24 · 1267 阅读 · 2 评论 -
iOS中的__typeof与typeof
做SDK开发引入AFNetworking那么多的文件不太合适,所以这几天在精简AFNetworking,并共享中github上,https://github.com/yjh4866/SimplifiedAFN。 看AFN源码的AFURLConnectionOperation.m文件时发现一处代码如下:__weak __typeof(self)weakSelf = se原创 2015-11-19 13:09:48 · 8007 阅读 · 1 评论 -
如何删除NSDictionary或NSArray中的NSNull
前段时间与某公司的技术交流,被问到一个问题,如何删除NSDictionary中的NSNull。当时在纸上写,以前太依赖Xcode编译器了,以至于方法名都写不全,最终也没写出来,我想我肯定被鄙视的体无完肤。最近有机会,用递归算法和非递归算法分别实现了一下。原创 2015-11-14 14:28:55 · 4985 阅读 · 0 评论 -
GCD
GCD介绍(一): 基本概念和Dispatch Queue什么是GCD?Grand Central Dispatch或者GCD,是一套低层API,提供了一种新的方法来进行并发程序编写。从基本功能上讲,GCD有点像NSOperationQueue,他们都允许程序将任务切分为多个单一任务然后提交至工作队列来并发地或者串行地执行。GCD比之NSOpertionQueue更底层更高效,并且转载 2015-11-09 16:43:58 · 3246 阅读 · 0 评论 -
GCD的简单用法
/* 创建一个队列用来执行任务,TA属于系统预定义的并行队列即全局队列,目前系统预定义了四个不同运行优先级的全局队列,我们可以通过dispatch_get_global_queue来获取它们 四种优先级 DISPATCH_QUEUE_PRIORITY_HIGH DISPATCH_QUEUE_PRIORITY_DEFAULT DI转载 2015-12-14 11:08:01 · 2987 阅读 · 0 评论 -
关于UIView的方法animateWithDuration:animations:completion:的说明
今天遇到一个问题,具体问题就不细说了,总之是UIView的动画导致的。研究结果表明,UIViewController被挡住或没显示出来时,用UIView的静态方法animateWithDuration:animations:completion:实现其中view的动画,动画结束的block的bool型参数finished,居然为NO;UIViewController没挡住时为YES。所以动画结原创 2016-07-11 18:49:59 · 4784 阅读 · 0 评论 -
JSONModel对架构的影响及解决方案
JSONModel是个很强大的库,可以把JSON字符串直接转为对象,而且JSONModel对数据的转换还有很强的兼容性。但用JSONModel通常会有个很大的局限性,即客户端开发严重依赖服务器接口。服务器定义了数据格式,客户端开发才能全面展开。服务器想改数据格式,客户端用到Model的地方都需要改。原创 2016-12-31 10:03:21 · 574 阅读 · 0 评论 -
创建自己的CocoaPods库
1、CocoaPods的安装不必细表。2、创建库(以NBLImageCropper为例)pod lib create NBLImageCropper 然后会有一系列的选择,根据实际情况选择即可。3、编辑NBLImageCropper.podspec s.source填github库地址即可。4、验证库pod lib lint5、开发自...原创 2019-01-21 16:43:17 · 267 阅读 · 2 评论 -
FFmpeg学习——iOS开发(编译出iOS库)
FFmpeg是跨平台解决方案,不提供专门的iOS版库。要想在iOS项目中使用,必须构建出lib库或framework框架。1、gas-preprocessor下载并解压,将 gas-preprocessor.pl 复制到 /usr/sbin/ 目录下(ps:复制失败的话,可以将该文件复制到 /usr/local/bin/ 目录下),然后为文件开启可执行权限,命令行:chmod 777...原创 2019-03-15 11:11:33 · 291 阅读 · 0 评论 -
FFmpeg学习——iOS开发(第一个Demo)
1、将lib接入Xcode工程,编译会报错,需要添加以下库:2、Build Settings,Header Search Paths添加FFmpeg的头文件路径:$(PROJECT_DIR)/XXXX/FFmpeg-iOS/include3、显示mp3文件的MetaData,代码如下:#import <libavformat/avformat.h> // ...原创 2019-03-15 11:59:46 · 565 阅读 · 0 评论 -
FFmpeg学习——iOS开发(mp3编码器)
FFmpeg默认不支持mp3的编码,据说是版权原因导致的,这样就无法生成mp3格式的音频文件,需要另外配置。配置方法如下:1、下载lame源码当前最新版本是3.100解压后的文件夹名字是lame-3.1002、下载打包lame用的脚本这个韩国小哥真牛掰,ffmpeg的打包脚本也是他写的。解压得到build-lame.sh,修改SOURCE的值为lame-3.100,将该脚本...原创 2019-03-26 12:40:48 · 626 阅读 · 0 评论 -
Xcode命令行生成Bitcode静态库
近两三年一直在做静态库开发在Xcode工程中创建静态库的Target,最初是手动Build出真机的.a文件,模拟器的.a文件,然后再用命令行合并后来一些特殊的开发者,要求加入特殊的功能,或者开放特殊的接口和属性,只好用注释代码的办法来分别打包,分别合并。直到有一次,代码注释不完全,差点把包弄错了,只好想别的办法。多Targets,一个包即创建一个Targets。每个Targets使用不同的原创 2015-10-16 18:12:08 · 7255 阅读 · 0 评论 -
WWDC 2013 Session笔记 - iOS7中的多任务
这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有Session 204 What's New with Mult转载 2015-04-15 14:39:26 · 3205 阅读 · 0 评论 -
ASIHTTPRequest足够了吗?
有人说,ASIHTTPRequest、AFNetworking极大的降低了App开发门槛,也因此养活了一大批开发者,这话说的一点也不过分。第三方网络层类库常用的有ASIHTTPRequest、AFNetworking等,但这些类库往往比较大,功能多,项目中用到的功能只有那么一两个。不考虑包大小的话无所谓,如果考虑到包大小及可维护性,还是自己实现的比较好,增加相关功能的话也得心应手。原创 2012-06-21 10:37:15 · 3373 阅读 · 6 评论 -
IOS5.0 系统中 跳转至设置项的各种url链接
在代码中调用如下代码:NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];[[UIApplication sharedApplication] openURL:url];即可跳转到设置页面的对应项。[font=]About — prefs:root=General&path=AboutAccessibility — pref转载 2012-02-18 17:43:40 · 2011 阅读 · 0 评论 -
NSURLConnection的隐患
ASIHTTPRequest的功能很强大,但正是因为太强大了,反而不敢用。一是接口太多,眼花缭乱;二是程序崩溃或内存泄露后无法找到解决办法。所以我习惯自己写代码对系统的类进行封装。《ASIHTTPRequest足够了吗?》中的HTTPConnection类就是我自己的封装,后来又封装了个续传功能的类,ASIHTTPRequest类也有续传功能,但我的要比它强大,这个类后期发布。原创 2012-07-05 13:29:35 · 1664 阅读 · 0 评论 -
在任意UIView上显示Badge
UITabBar的选项卡上有时会需要显示一个红圈,红圈里是数字或者其他字符,术语叫徽章,比如微信主页面主选项卡上会用这种方式提示新消息条数,但也想在其他地方显示这个徽章怎么办呢?比如微信中每个联系人的头像右上角显示该联系人的新消息条数。当然有第三方的源码,但效果还是不如系统提供的好。系统这个徽章的类叫UITabBarButtonBadge,但是该类是个私有类,开发人员不能用。先贴源码+原创 2012-01-04 10:57:11 · 4141 阅读 · 0 评论 -
苹果官方的单例写法
很多朋友喜欢用单例,苹果官方怎么写单例呢?这个是苹果的示例代码SimpleNetworkStreamshttp://developer.apple.com/library/ios/#samplecode/SimpleNetworkStreams/Introduction/Intro.html#//apple_ref/doc/uid/DTS40008979+ (Network原创 2012-08-24 17:05:40 · 4673 阅读 · 0 评论 -
在任意UIView上显示Badge(兼容IOS6)
之前写过一篇文章在任意UIView上显示Badge,但IOS6上失败了,原来是苹果将Badge的类名改了,所以这里作下兼容,源码如下:- (UIView *)showBadgeValue:(NSString *)strBadgeValue{ UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 320,原创 2012-10-13 14:22:16 · 7927 阅读 · 8 评论 -
IOS开发——获取局域网IP
头文件#include #include #include 源码- (NSString *)localIPAddress{ NSString *localIP = nil; struct ifaddrs *addrs; if (getifaddrs(&addrs)==0) { const struct ifaddrs *cu原创 2012-12-26 23:38:08 · 6089 阅读 · 0 评论 -
IOS开发解析XML
系统有提供的XML解析类,NSXMLParser,但是不是很不好用啊,该类只会以协议的方式通知扫描时所遇到的XML元素,而且该XML数据的层次关系也看不出来,刚刚封装了一个XML解析功能,直接可以得到根结点,然后就可以查看子结点了。NSXMLParser+Cobbler.h//// NSXMLParser+Cobbler.h// //// Created by y原创 2012-01-01 19:34:31 · 2673 阅读 · 2 评论 -
程序异常退出时发送邮件报告的代码
void UncaughtExceptionHandler(NSException *exception) {NSArray *arr = [exception callStackSymbols];NSString *reason = [exception reason];NSString *name = [exception name];NSString *u转载 2013-04-17 12:33:34 · 853 阅读 · 0 评论 -
XCode环境变量及路径设置
一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝对路径的问题不大,但是如果你把工程发给别人,别人就要在改这个绝对路径,这时候绝对路径的缺点立马出现。所以在修改User Header Search Paths这个选项的时候使用"$(SRCROOT)/当前工程名字/需要包含头文件所在文件夹"将上面的双引号里面的字符串拷贝转载 2013-06-30 12:32:17 · 3129 阅读 · 0 评论 -
frame与bounds的区别
原来你M,frame.size和bounds.size不总是一样的一直在UIViewController的- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration里调整self.vie原创 2013-07-24 12:21:53 · 1210 阅读 · 0 评论 -
Mac系统上用Node做APNS
1、安装Node,下载地址:http://nodejs.org2、更新npm,终端命令:sudo npm update npm -g3、安装apn,终端命令:npm install apn4、导出证书并生成pem文件 参照:http://www.tuicool.com/articles/fABVZb5、Node源码:var apns = require('ap原创 2015-01-26 22:30:47 · 4091 阅读 · 0 评论 -
IOS应用开发架构
做IOS开发将近两年了,写过不少代码,做过不少项目。分享一下我设计IOS应用的架构。 本文为个人观点,如有争议望留言 我的IOS应用开发结构图 整体结构很清晰,是一个树状结构。 1、关于CoreEngine 服务器端返回的数据到达Net层,Net层通过Delegate协议传回到CoreEn原创 2012-08-05 13:43:18 · 8737 阅读 · 9 评论 -
常用的CocoaPods库收藏
一、UI1、界面约束:Masonry2、下拉刷新、上拉翻页:MJRefresh3、手势返回:FDFullscreenPopGesture4、地图:BaiduMapKit5、日期、省市县选择:BRPickerView、NBLPickerView6、广告平台:Google-Mobile-Ads-SDK7、轮播图:iCarousel、SDCycleScrollView8、...原创 2019-05-13 11:10:56 · 376 阅读 · 0 评论