
ios栏目
文章平均质量分 69
skyYangpan
这个作者很懒,什么都没留下…
展开
-
NSString属性什么时候用copy,什么时候用strong?
我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:@interface TestStringClass ()@property (nonatomic, strong)原创 2015-05-15 14:54:24 · 651 阅读 · 0 评论 -
iOS项目中的version和build
Version在plist文件中的key是“CFBundleShortVersionString”,标识应用程序的发布版本号,和AppStore上的版本号保持一致。该版本的版本号是三个分隔的整数组成的字符串。第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订。第二个整数表示的修订,实现较突出的特点。第三个整数代表维护版本Build在plist文件中的key是“CFBundleVers原创 2014-01-10 11:32:55 · 1962 阅读 · 0 评论 -
关于苹果开发者账号(二)
转载来源:Ryan's Zone这是一篇教程,这里有手把手教学一、关于证书苹果使用密文签名技术来验证App的合法性,不管是iOS应用还是Mac应用都需要相应的签名证书来作为测试或发布App用。这里主要谈谈iOS的证书,当然,Mac的证书也基本类似。在开发iOS应用的时候,我们需要签名证书(开发证书)来验证,并允许我们在真机上对App进行测试。另外,在发布App到App转载 2014-01-09 10:45:37 · 883 阅读 · 0 评论 -
KVO的内部实现
转载来自:CocoaChina概述:09年的一篇文章,比较深入地阐述了KVO的内部实现。 KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改变时,相应的objects会被通知到。在其他语言中,这种观察者模式通常需要单独。09年的一篇文章,比较深入地阐述了KVO的内部实现。 KVO是实现Cocoa Bindings的基础,它提供了一种方法,当某个属性改转载 2014-01-09 15:41:48 · 725 阅读 · 0 评论 -
关于苹果开发者账号(三)
转载来源:Ryan's Zone这是一篇教程,这里有手把手教学什么是Provisioning Profile?从字面翻译,Provisioning Profile就是配置文件的意思,它在开发者账号体系中所扮演的角色也是配置和验证的作用。如果你有开发者账号,可以打开你的开发者控制台,在首页可以看到如下界面。如果你没有开发者账号,那就看图片意会吧!:)现在开发者控制台相比之转载 2014-01-09 10:47:25 · 1241 阅读 · 0 评论 -
关于苹果开发者账号(一)
转载来源:Ryan's Zone这不是一篇教程,这里没有手把手教学正如前言所述,如果你是找一篇如何申请苹果开发者账号的HOTO教程,那么不耽误你的宝贵时间了,马上关闭本页面。如果你是想看我扯一下关于苹果开发者账号那些事儿,那你可以放松下接着往下看,从这一篇开始接下来几篇文章,我将完整的介绍苹果开发者账号体系!账号类型成为苹果开发者就必须注册苹果开发者账号并付费,拥有了开发者转载 2014-01-09 10:42:58 · 1248 阅读 · 0 评论 -
Objective-C对象模型及应用
转载来自:唐巧的技术博客-Objective-C对象模型及应用本文主要介绍Objective-C对象模型的实现细节,以及Objective-C语言对象模型中对isa swizzling和method swizzling的支持。希望本文能加深你对Objective-C对象的理解。ISA指针Objective-C是一门面向对象的编程语言。每一个对象都是一个类的实例。在Objecti转载 2014-01-09 17:53:51 · 758 阅读 · 0 评论 -
iOS开发中类簇的应用
类簇(class cluster)是一种设计模式,在Foundation Framework中被广泛使用,举个简单的例子:NSArray *arr = [NSArray arrayWithObjects:@"foo",@"bar", nil];NSLog(@"arr class:%@", [arr class]);// output: __NSArrayI显然__NSArrayI是一个私翻译 2014-01-09 15:48:31 · 743 阅读 · 0 评论 -
2013 CocoaChina微信精选之技术汇
为了方便更多朋友能尽快获得技术、游戏开发以及应用设计等方面的信息,我们从去年开始通过微信向大家推送信息,并且我们也收到了大家积极的反馈和建议,在此感谢大家的关注和支持。2014年,我们将一如既往地陪伴大家,做开发者最忠诚的朋友。 微信已经成为我们生活中不可或缺的工具,但过大的信息量也会让人失去关注的焦点,为此我们特意挑选出部分开发者较为关注的技术问题整理成篇(更多技术文章,可在首页“开发相转载 2014-01-07 15:48:10 · 1025 阅读 · 0 评论 -
objc’s self and super
在objc中的类实现中经常看到这两个关键字”self”和”super”,以以前oop语言的经验,拿c++为例,self相当于this,super相当于调用父类的方法,这么看起来是很容易理解的。以下面的代码为例:@interface Person:NSObject { NSString* name;}- (void) setName:(NSString*) yourName转载 2014-01-07 13:44:00 · 627 阅读 · 0 评论 -
objc’s category and class cluster(类簇)
objective-c有一个feature,可以给已有的类添加方法,而无需改变类名。传统的语言可能需要通过继承或者组合实现,但是obj-c只需要用这个feature就好,这就是category。Category:举个例子,NSString是一个常用的类,NSString是原生支持unicode,比如NSString* str = @”感谢国家”; 要获得string的length,在大转载 2014-01-07 13:59:28 · 760 阅读 · 0 评论 -
JS与iOS Native Code互调实现方法
优秀的开源小项目:WebViewJavascriptBridge。 它优雅地实现了在使用UIWebView时JS与ios 的Objective-C nativecode之间的互调,支持消息发送、接收、消息处理器的注册与调用以及设置消息处理的回调。 就像项目的名称一样,它是连接UIWebView和Javascript的bridge。在加入这个项目之后,他们之间的交互处理方式变得很友好转载 2014-01-07 15:59:48 · 1031 阅读 · 0 评论 -
iOS唯一标示符引导
在2013年3月21日苹果已经通知开发者,从2013年5月1日起,访问UIDID的应用将不再能通过审核,替代的方案是开发者应该使用“在iOS 6中介绍的Vendor或Advertising标示符”。unique Identifier即将退出,苹果给了我们Vendor和Advertising identifier两个选择,但应该用哪一个?文档并没有给出确切答案,具体使用哪个完全由你根据自己a转载 2014-01-07 15:45:43 · 557 阅读 · 0 评论 -
id ,NSObject, id<NSObject>的区别
我们经常会混淆以下三种申明: 1. id foo1; 2. NSObject *foo2; 3. id foo3;第一种是最常用的,它简单地申明了指向对象的指针,没有给编译器任何类型信息,因此,编译器不会做类型检查。但也因为是这样,你可以发送任何信息给id类型的对象。这就是为什么+alloc返回id类型,但调用[[Foo alloc] init]不会产生编译错翻译 2014-01-07 15:34:31 · 681 阅读 · 0 评论 -
Mac OS X 10.9下搭建java web开发环境之一 开启和配置本机的Apache服务
概要:可能大多数人没有注意到,Mac OS X 其实内置了 Apache 服务器,可以很简单的启动web服务。Apple 将 Apache “封装”起来了,通常的用户界面中没有任何直接对其进行操作设置的部分。本文简介Mac OS X 中怎样通过Apache启动web服务。启动Apache有两种方法:打开“系统设置偏好(System Preferences)” ->原创 2014-01-03 10:31:33 · 3892 阅读 · 0 评论 -
iOS6 Grouped类型UITableView背景色设置问题
在iOS6中,对于UITableViewStyleGrouped类型的UITableView,通过直接修改继承自UIView的backgroundColor属性的方法来设置UITableView的背景色无效。比如,在AppDelegate中设置窗口的颜色为淡黄色self.window.backgroundColor = [UIColor colorWithRed:1.00f green:0转载 2014-01-02 13:48:37 · 722 阅读 · 0 评论 -
多target来构建大量相似App
问题描述:(主要有以下两个场景)1、新开始的项目大概是这样的:做行业app,行业包括但不限于旅游、交通、餐饮、教育等。所有的行业app会出现基本相同的注册和登录以及首页逻辑和界面(只是背景图片不一样而已),基本相同的页面风格,基本相同的个人空间、基本相同的服务器交互协议等等。不同点包括:应用图标,启动画面,应用启动后的首页、大部分数据的展示方式和逻辑跳转。2、在一个已经发布app的基础上衍原创 2014-01-10 14:59:04 · 1043 阅读 · 0 评论 -
iOS应用崩溃日志揭秘(第一部分)
作为一名应用开发者,你是否有过如下经历?为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作。它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 !如果你跟我一样是个完美主义者,你肯定想将应用做到尽善尽美。于是你打开代码准备修复闪退的问题……但是,从何处着手呢?这时iOS崩溃日志派上用场了。在大多数情况下,你能从中了解到关于闪退的详尽、有用的转载 2014-01-16 13:50:52 · 931 阅读 · 0 评论 -
Xcode 6制作动态及静态Framework
在之前的文章关于ios中的动态库、静态库中介绍了静态库和动态库的区别及用法,在xcode6之前的版本,apple是不允许制作Framework的,以前可以使用第三方的框架iOS-Universal-Framework,自从apple在xcode6开放相关功能之后,iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用Xcode 6制作,目前网上也有很转载 2015-04-02 14:25:04 · 727 阅读 · 0 评论 -
剖析带有afterDealy参数的performSelector方法实现
主要从performSelector:afterDealy:的实现原理来分析为什么在主线程中调用此方法后不会阻塞主线程里业务代码的顺序执行。示例代码如下:- (void)doSomething { NSLog(@"Begin doSomething..."); for (int i = 0; i < 10; i++) { if (i == 5) {转载 2015-03-25 13:27:04 · 683 阅读 · 0 评论 -
iPhone消息推送机制实现与探讨
http://www.cnblogs.com/zhuqil/archive/2011/06/05/2070679.html转载 2014-03-12 19:44:13 · 529 阅读 · 0 评论 -
开始使用GCD
转载自:这里什么是GCDGrand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(C转载 2014-02-12 17:13:55 · 661 阅读 · 0 评论 -
iOS App性能优化
iOS App的性能关注点虽然iPhone的机能越来越好,但是app的功能也越来越复杂,性能从来都是移动开发的核心关注点之一。我们说一个app性能好,不是简单指感觉运行速度快,而应该是指应用启动快速、UI反馈响应及时、列表滚动操作流畅、内存使用合理,当然更不能随随便便Crash啦。工程师开发应用时除了在设计上要避免性能“坑”的出现,在实际遇到“坑”时也要能很快定位原因所在。定位性能问题原因当然转载 2014-03-31 15:24:32 · 881 阅读 · 0 评论 -
分析iOS Crash文件:符号化iOS Crash文件的3种方法
原文来自:这里当你的应用提交到AppStore或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢?上传crash文件你的应用应当有模块能够在应用程序crash的时候上传crash信息。要么通过用户反馈拿到crash文件,要么借助自己或第3方的crash上传模块拿到crash文件。今天要分析的场景是你拿到用户的.crash文件之后,如何符合化c转载 2014-03-28 23:22:08 · 615 阅读 · 0 评论 -
11个iOS面试问题
招聘是一个团队持久发展的重要环节。王淮Harry哥在Facebook的十点经验分享中说过,只和最好的人合作(能够尽其所知,用其所长,学其所不能的;能迅速完成目标并远超期望的),Hire Slow,Fire Fast;招的人要足够优秀,要保证能力大于团队的平均水平。11个技术问题大多数iOS 开发团队都倾向于有1-2个顶尖的开发者,带领一些较为初级的开发者。Black Pixel公司的Dan转载 2014-03-28 23:32:18 · 693 阅读 · 0 评论 -
使用CocoaPods来做iOS程序的包依赖管理
前言每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如Java: maven,IvyRuby: gemsPython: pip, easy_installNodejs: npm随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods。CocoaPods简介CocoaPods是一个负责管理iOS项目中第三方原创 2013-12-04 16:31:44 · 1359 阅读 · 0 评论 -
CGAffineTransform2D仿射变换原理
A和B两个矩阵相乘,就要A的列数等于B的行数才有相乘的意义,相乘结果是一个矩阵C,C的行数和A的行数相等,C的列数和B的列数相等,C的每个元素值为A对应的行与B对应的列的元素乘积的和:CGAffineTransform 的结构如下:struct CGAffineTransform{ CGFloat a, b, c, d; CGFloat tx, ty;}原创 2014-03-04 17:15:46 · 1596 阅读 · 0 评论 -
iOS网络编程之Socket
[深入浅出Cocoa]iOS网络编程之Socket罗朝辉 (http://blog.youkuaiyun.com/kesalin)CC 许可,转载请注明出处更多 Cocoa 开发文章,敬请访问《深入浅出Cocoa》 优快云专栏:http://blog.youkuaiyun.com/column/details/cocoa.html一,iOS网络编程层次模型在前文《转载 2014-02-19 19:06:46 · 881 阅读 · 0 评论 -
深入浅出Cocoa之类与对象
深入浅出Cocoa之类与对象罗朝辉(http://blog.csdn.com/kesalin/)CC许可,转载请注明出处最近打算写一些ObjC中比较底层的东西,尤其是 runtime 相关的。苹果已经将 ObjC runtime 代码开源了,我们可以从:http://opensource.apple.com/source/objc4/objc4-493.9/runtime/转载 2014-02-19 19:05:55 · 667 阅读 · 0 评论 -
如何在QR二维码中插入图片
二维码终于火了,现在大街小巷大小商品广告上的二维码标签都随处可见,而且大都不是简单的纯二维码,而是中间有个性图标的二维码。我之前做了一个使用google开源项目zxing实现二维码、一维码编码解码的程序并开放了源码(用C#实现的条形码和二维码编码解码器),今天继续在此程序基础上,实现二维码中间加小图片。背景知识QRcode使用里德-所罗门码来进行错误修正。对于我们来说,里德-所罗门编码原创 2014-02-19 19:02:25 · 6233 阅读 · 0 评论 -
[iOS]如何向 appstore 查询已发布 APP 的信息?
转载来自这里如果我们需要实现版本的 app 自动更新,那么我们需要获取当前运行程序的版本信息和 appstore 里发布的最新版本信息,当前运行程序的版本信息,可以在 mainBundle 里面获取:NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersio转载 2014-02-19 18:55:39 · 807 阅读 · 0 评论 -
ios7中UIViewControllerBasedStatusBarAppearance作用
在作iOS7的适配时,很多文章都会提到UIViewControllerBasedStatusBarAppearance。便一直不是太明白其实际作用,使用时发现UIViewControllerBasedStatusBarAppearance的实际作用如下: 这个属性只影响如何设置status bar上字体的颜色是暗色(黑色)还是亮色(白色),对status bar的背景色无影原创 2014-02-14 15:00:45 · 3010 阅读 · 0 评论 -
iOS应用崩溃日志揭秘(第二部分)
场景 4: 吃棒棒糖时闪退!用户邮件说, “当rage master吃棒棒糖时应用就闪退…” 另一用户说, “我让rage master 吃棒棒糖,没几次应用就闪退了!”崩溃日志如下:Incident Identifier: 081E58F5-95A8-404D-947B-5E104B6BC1B1CrashReporter Key: 5a56599d836c4转载 2014-01-16 13:55:46 · 1124 阅读 · 0 评论 -
CGFloat与float的区别
CGFloat只是对float或double的typedef定义,在64位机器上,CGFloat定义为double类型,在32位机器上为float.在xcode中按住Command键,点击CGFloat,可跳转至CGbase.h文件CGFloat的定义处。#if defined(__LP64__) && __LP64__# define CGFLOAT_TYPE double#原创 2014-01-02 13:38:49 · 7434 阅读 · 0 评论 -
Objective C URL编码转换
一.URL编码URL串只能包含限制性的少数字符。根据RFC2396的定义,允许在URL中出现的字符分为保留字符和非保留字符。保留字符:reserved = “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”保留字符主要用于分隔URL的各个部分。非保留字符:unreserved = alphanum | mark转载 2014-01-02 13:17:12 · 2153 阅读 · 0 评论 -
iOS7中的ViewController切换
iOS7中的ViewController切换这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览。本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作。如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息。本文涉及到的WWDC2013 Session有Session转载 2013-10-20 11:13:06 · 711 阅读 · 0 评论 -
关于ios7和xcode5新特性
关于ios7和xcode5新特性的介绍,有个很好的博客:http://onevcat.com/blog/archives/转载 2013-10-20 11:20:36 · 636 阅读 · 0 评论 -
iOS中图片的拉伸处理技巧
纵观移动市场,一款移动app,要想长期在移动市场立足,最起码要包含以下几个要素:实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后,少不了美工的辛苦设计,但如果开发人员不懂得怎么合理展示这些设计好的图片,将会糟蹋了这些设计,功亏一篑。比如下面张图片,本来是设计来做按钮背景的: button.png,尺寸为:24x60现在我们把它用作为按钮背景,按钮尺寸是转载 2013-10-15 15:09:23 · 698 阅读 · 0 评论 -
iOS里的MVC
一个标准的简单Objective-C MVC 例子:http://undefinedblog.com/2012/08/一个标准的简单objective-c-mvc-例子/我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型。我们将从两大方面来讨论MVC:什么是MVC?M、V、C之间的交流方式是什么样子的?理解了MVC的概念,对cocoa程序开发是转载 2013-10-15 17:54:58 · 620 阅读 · 0 评论 -
在ios中保存图片到照片库
void UIImageWriteToSavedPhotosAlbum(UIImage *image,id completionTarget, SEL completionSelector, void *contextInfo);image:要保存到照片库的图片对象,UIImage类型completionTarget:当保存完成之后,回调方法所在的对象completionS原创 2013-10-15 14:46:22 · 675 阅读 · 0 评论