`
wangzy_boy
  • 浏览: 95622 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iphone 开发笔记

阅读更多
retain 和copy的区别

原来简单解释过属性定义(Property) ,并且提起了简单的retain,copy,assign的区别。那究竟是有什么区别呢?
assign就不用说了,因为基本上是为简单数据类型准备的,而不是NS对象们。
Retain vs. Copy!!

copy: 建立一个索引计数为1的对象,然后释放旧对象
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1

那上面的是什么该死的意思呢?
Copy其实是建立了一个相同的对象,而retain不是:
比如一个NSString对象,地址为0×1111,内容为@”STR”
Copy到另外一个NSString之后,地址为0×2222,内容相同,新的对象retain为1,旧有对象没有变化
retain到另外一个NSString之后,地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1
也就是说,retain是指针拷贝,copy是内容拷贝。哇,比想象的简单多了…

在 iPhone上显示LCD效果

我看到一个程序是这样样子的:

哇!好厉害,怎么弄出来的!难道要用Q2D画出来么?
不… …
其实这就是UILabel外加一个奇异的字体 DBLCDTempBlack
And, that’s it! 生活多么美好阿~

不要对 viewController作这样的事情

错误:

UIViewController *aViewController = [[UIViewController alloc] init];

[window addSubview:aViewController.view];

[aViewController release];

这样的话,系统会崩溃的… window或着其他父视图是不会retain整个viewController的,这个时候不能立刻release
正确:

[aViewController.view removeFromSuperview];

[aViewController release];

也就是说,在release之前需要从superview中移除这个viewController的view。如果一直都需要这个view,那就在 dealloc里面作这些事情就可以了

数据类型/ 对象类型介绍(1)NSString

字符串是程序设计最常用的数据类型之一了。在Mac/iPhone编程中,苹果为我们提供了一个不同的字符串类型 NSString。有别与普通的String为数据类型,NSString其实是一个对象类型。NSString是NSObject(Cocoa Foundation的基础对象)的子类,所以具有NSObject的所有特性,好的和好的… ….
小常识:
NS是Cocoa类对象类型的前缀,来源于史蒂夫-乔布斯被苹果开除那段时间建立的公司NeXT.
@是Cocoa元素的前缀,很多地方我们会看到,比如接下来…
1, 创建一个NSString对象
简单方法:

NSString *aString = @"我是个NS字符串!"; //除了引号外加@, 没别的区别

*上面的不需要操心内存管理哟~
复杂一点儿:(需要内存管理的)

NSString *aString = [[NSString alloc] initWithFormat:@"这也是个NS字符串!"];

*initWithFormat是其中一个初始化方法,常用的还有

//从一个文件读取需要的内容
- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error
//从一个地址读取需要的内容
- (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error

*以上方法得到的NSString的retain值为1,所以记得release掉阿~~
2,使用一个NSString对象

NSString *aString = @"This is a NSString";

NSLog(aString); //在控制台输出信息,该函数方法需要一个NSString对象作为参数

NSLog("这样不会好使的");

NSLog(@"这样就会好使拉~");

再比如设置一个UIView的标题:

[UIView setTitle:aString];

[UIView setTitle:@"标题"];

UIView.title = aString;

3,释放NSString

[aString release]; //对象将被系统释放掉咯

*记得不要释放直接用 = @”xxx” 的NSString对象哟,系统会管的~
4,快速使用一个NSString

NSLog([NSString stringWithFormat:@"一个NS字符串"]);

//这种快速方法返回的是一个retain为1,autorelease的对象,不需要操心它的内存管理
5,常用方法
我喜欢NSString的地方就在于很多方法非常方便,比如:

nString = [aString substringToIndex:4]; //nString将得到aString中的前四个字符

原文:http://www.iteye.com/topic/674879
分享到:
评论

相关推荐

    iPhone开发笔记

    自用的iPhone开发笔记备份-2012/3/31

    iphone开发笔记

    退回输入键盘 2 CGRect 2 CGPoint & CGSize 3 设置透明度 3 设置背景色 3 自定义颜色 3 竖屏 3 横屏 3 状态栏高 3 导航栏、工具栏高 3 隐藏状态栏 3 ...iPhone游戏中既播放背景音乐又...iphone更改键盘右下角按键的type 45

    iPhone 开发笔记实录(代码讲解)

    收集了IOS开发过程中常见的错误和需要注意的要点。

    iphone开发资料

    iphone开发笔记.iphone开发笔记.iphone开发笔记.iphone开发笔记.

    iphone开发学习笔记(1)--NSLog

    iphone开发学习笔记(1)--NSLog

    iPhone开发基础教程_学习笔记

    iPhone开发基础教程_学习笔记.docx

    IPhone开发常用技术笔记汇总

    本压缩包中包含了Iphone开发中常用到的技术总结笔记,五六十中技术方法以及季节方案,包括内存管理,方法回调,获取当前地点,自定义CELL,VIew圆角等等等,太多的奶水包,是我开发中所有的精华所在,只有你不知道的...

    iPhone笔记-Object-c基础

    iPhone笔记-Object-c基础总结

    iphone开发一年的工作笔记

    这份文档是我从事ios开发一年以来,总结工作中常用到的200余个ios小知识点,并添加可以调试观看的实例代码,方便iso开发者学习和交流,弄清楚这些,基本从事ios开发没什么问题。

    iphone笔记

    开发笔记,ios中关于入口类的相关方法的阐述,清晰的通俗

    移动互联网开发笔记 VOL 2

    刊首语 征稿 在Android平台下定制系统的主屏幕 IPhone开发内存管理  Three20的使用 iOS开发者计划申请流程攻略 雅虎画报IPad版本的开发经验介绍

    Iphone开发资料整理

    Cocoa基本原理指南.pdf Dashcode_UserGuide.pdf iPhonei&Touch.doc Objective-C Beginner's Guide.pdf

    iPhoneX安全区域与H5引发的问题(Safe Area)

    最近正在开发小程序相关的需求时,遇到了一个问题——ios高版本的安全区域,即iPhoneX及以上拥有的“刘海儿”等可滑动区域会与你开发的内容重合。 幸运的是,在小程序上我们只需要考虑底部的底部Home Indicator上滑...

    千锋OC源码,自学iphone开发

    千锋3g培训 OC源码以及课堂笔记 按日期分类 每天代码都有

    swift_study:详细信息!Swift iPhone App 开发入门笔记

    swift_study详细信息!Swift iPhone App 开发入门注的示例代码用于学习 Swift 开发

    IOS开发 初级笔记

    ios开发的一些经验 和一些很使用的快捷键 适合初学者

    timenote时光笔记(记事本软件) v2.37.zip

    TimeNote为珍惜时间,珍惜往事的人潜心开发的软件,一款具有独立文件与事件预测的跨平台日程管理软件(支持Android、IPhone与各PC平台)。本软件采用独家原创数据解码格式,支持云端异步操作,并能对普遍使用的ICS文件...

    objective c学习笔记和示例

    苹果的iPhone和iPad应用开发都指定使用同一开发语言:Objective-C语言。这是一种简单的面向对象编程语言,它的基础是C程序设计语言。Objective-C不仅功能强大,而且简单易学。Objective-C已经成为苹果系统下应用程序...

    fruitstrap:从命令行安装和调试iPhone应用程序,而无需使用Xcode

    您需要安装有效的iPhone开发证书。 必须安装Xcode以及适用于iOS版本的SDK。 用法 fruitstrap [-d] -b <app> [device_id] 安装应用程序后,可选的-d标志将启动远程GDB会话。 必须是iPhone应用程序捆绑包,而不是...

Global site tag (gtag.js) - Google Analytics