当前位置:  编程技术>移动开发
本页文章导读:
    ▪施用setter方法和=号进行属性赋值的区别        使用setter方法和=号进行属性赋值的区别如果你不使用ARC,那么使用setter方法和=号对属性进行赋值是不同的。使用=号赋值,属性不会被retain。 比如: bodyText=s;如果bodyText声明为retain,则你应.........
    ▪ 作甚PPI        何为PPI? 0     ......
    ▪ Objective-C语法之创造类和对象       Objective-C语法之创建类和对象1、创建类 1.1、新建Single View app 模版项目,按Command + N 新建文件,创建类Student ,继承与NSObject 1.2、生成student.h  和student.m #import <Foundation/Foundation.h> @interfac.........

[1]施用setter方法和=号进行属性赋值的区别
    来源: 互联网  发布时间: 2014-02-18
使用setter方法和=号进行属性赋值的区别

如果你不使用ARC,那么使用setter方法和=号对属性进行赋值是不同的。

使用=号赋值,属性不会被retain。 比如: bodyText=s;

如果bodyText声明为retain,则你应当自己retain它:

bodyText=[s retain];

当然,在dealloc方法中,你需要release它避免可能的内存泄露:

[bodyTextrelease];

但当你使用setter方法赋值时,并不需要调用retain,例如:[self setBodyText:s];

这是因为bodyText属性已经声明为retain,当你对bodyText属性使用@synthesize语句时,所合成的setter方法中会自动加入适当的retain语句。例如synthesize后的setBodyText:方法很可能是这样的:

bodyText=[stringretain];

当然,如果setter方法不是Synthesize而是你自定义的,则你应该在setter方法中自己retain。否则,你很可能会收到 message sent to deallocated instance错误。

另外,使用.语句对属性赋值,等同于使用setter方法对属性进行赋值,如self.bodyText=s;一句,就等同于[self setBodyText:s] 。

另外,我们在类方法中需要注意两种属性引用的区别,比如:bodyText和self.bodyText。

当我们使用@property语句 @property(retain,nonatomic)NSString* bodyText;声明属性时,实际上SDK会自动为我们声明一个与属性同名的成员变量:NSString* bodyText。

当synthesize之后,我们读取bodyText属性时,会调用 getter方法bodyText,这个getter方法会return这个同名的成员变量。

当对bodyText属性赋值时,会调用setter方法setBodyText,在这个setter方法中,会对成员变量bodyText进行赋值。

因此,在访问bodyText属性时,你可以通过self.bodyText来访问,也可以直接访问成员bodyText。这样,下列语句实际上等效的:

s=self.bodyText; 和 s=bodyText;

[bodyText release]; 和 [self.bodyTextrelease];

只是在赋值时有所不同,因为bodyText=s;实际上只是对成员bodyText进行了赋值操作。而self.bodyText=s;则很可能在赋值的同时进行了retain操作。因为后者调用了setter方法。

默认情况下,SDK自动添加的成员名会和属性名同名。你也可以自己指定与属性对应的成员变量名,这需要在syntheszie语句中进行,如:

@syntheszie bodyText=_bodyText;

其中,我们把属性bodyText的自动成员命名为_bodyText。你可以在类方法中通过成员_bodyText来操控对象的bodyText属性。

 



    
[2] 作甚PPI
    来源: 互联网  发布时间: 2014-02-18
何为PPI?


0

PPI是英文Pixels per inch的缩写,意思就是每英寸所拥有的像素(Pixel)数目, 人眼所能看到的极限300ppi。PPI值越高,表示显示屏显示越清晰和细腻。

 

 

明白了PPI是什么意思,我们就能很容易理解PPI的计算方式了,我们需要首先算出手机屏幕的对角线等效像素,然后处以对角线(我们平常所说的手机屏幕尺寸就是说的手机屏幕对角线的长度),就可以得到PPI了。准确的计算公示大家可以参照上图。比较有意思的是,根据公式计算出来的iPhone 4的PPI为330。下面是其他机型的PPI值,对比可以知道iPhone 4的PPI是最高的,这是苹果的特色。

 

三星Galaxy S II:218PPI

Moto Defy:264PPI
Nokia N9:251PPI
Nokia N8:209PPI
HTC Sensation:256PPI
HTC Wildfire S:180PPI
LG  Optimus 2X:233PPI



    
[3] Objective-C语法之创造类和对象
    来源: 互联网  发布时间: 2014-02-18
Objective-C语法之创建类和对象
1、创建类 1.1、新建Single View app 模版项目,按Command + N 新建文件,创建类Student ,继承与NSObject


1.2、生成student.h  和student.m
1.3、在头文件里添加类成员变量和方法

@interface

  • @interface 类的开始的标识符号 ,好比Java  或 C 语言中的Class   
  • @end 类的结束符号
  • 继承类的方式:Class:Parent,如上代码Student:NSObject
  • 成员变量在@interface Class: Parent { .... }之间
  • 成员变量默认的访问权限是protected。
  • 类成员方法在成员变量后面,格式是:: scope (returnType) methodName: (parameter1Type) parameter1Name;
  • scope指得是类方法或实例化方法。类方法用+号开始,实例化方法用 -号开始。

1.4、实现类方法

@implementation

1.5、在View中创建并初始化,调用方法。

  • Sutdent *student = [[Sutdent alloc] init]; 这行代码含有几个重要含义
  •  [Student alloc]调用Student的类方法,这类似于分配内存,
  •  [object init]是构成函数调用,初始类对象的成员变量。

打印结果:

2、类方法使用多个参数 2.1添加一个多参数的方法和实现


2.2调用

打印结果:

3、自定义构造函数 3.1声明和实现构造函数

-(id)init 这个方法用于类的初始化创建,每一个类在创建的时候需要调用init方法,使用父类的init 方法得到了self,这就可以做一些子类初始化的工作

3.2使用自定义构造函数:

著作权声明:本文由http://blog.csdn.net/totogo2010/原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3