objective-c基本数据类型

原创 2012年03月27日 15:32:39

objective-c基本数据类型

1、Object-c提供基本数据类型:int、float 、double 、char    


示例代码测字节数:

//数据类型:
        //整形(int、short int、long int、unsigned int、unsigned short、unsigned long)
        NSLog(@"整形:");
        NSLog(@"%lu",sizeof(int));//整形4个字节
        NSLog(@"%lu",sizeof(short int));//短整形2
        NSLog(@"%lu",sizeof(long int));//长整形8
        NSLog(@"%lu",sizeof(unsigned int));//无符号整形4
        NSLog(@"%lu",sizeof(unsigned short));//无符号短整形2
        NSLog(@"%lu",sizeof(unsigned long));//无符号长整形8
        //实形(float 、double 、long double)
        NSLog(@"实形:");
        NSLog(@"%lu",sizeof(float));//浮点形4
        NSLog(@"%lu",sizeof(double));//双精度形8
        NSLog(@"%lu",sizeof(long double));//长精度形16
        //字符型和字符串形 
        char a='a';
        char b=100;
        NSLog(@"%c,%c",a,b);
        NSLog(@"%i,%i",a,b);
        NSLog(@"我是字符串");//字符串形:@“我是字符串”

运行结果:

2012-03-27 10:36:41.618 HelloWorld[724:707]整形:

2012-03-27 10:36:41.624 HelloWorld[724:707] 4

2012-03-27 10:36:41.625 HelloWorld[724:707] 2

2012-03-27 10:36:41.626 HelloWorld[724:707] 8

2012-03-27 10:36:41.627 HelloWorld[724:707] 4

2012-03-27 10:36:41.628 HelloWorld[724:707] 2

2012-03-27 10:36:41.628 HelloWorld[724:707] 8

2012-03-27 10:36:41.629 HelloWorld[724:707]实形:

2012-03-27 10:36:41.630 HelloWorld[724:707] 4

2012-03-27 10:36:41.630 HelloWorld[724:707] 8

2012-03-27 10:36:41.631 HelloWorld[724:707] 16

2012-03-27 10:36:41.632 HelloWorld[724:707] a,d

2012-03-27 10:36:41.633 HelloWorld[724:707] 97,100

2012-03-27 10:36:41.633 HelloWorld[724:707]我是字符串

输出格式符:

int:%i,%d,%o,%x

float:%f,%e,%g

double:%f,%e,%g

char:%c

限定符:

(long)

long int:%li

long double:%lf

(long long)

long long int:%lli

(short)

short int:%hi


2、其它类型:

(一)id类型

id类型是一个独特的数据类型,在概念上,类似javaObject类,可以转换为任何数据类型。换句话说,id类型变量可以存放任何数据类型的对象。在内部处理上,这种类型被定义为指向对象的指针,实际上是一个指向这种对象的实例变量的指针。需要注意的是id是一个指针,所以在使用id的时候不需要加星号;

比如说:id foo=nil;

该语句定义了一个nil指针,这个指针指向NSObject的任意一个子类。而“id *foo=nil"则定义了一个指针,这个指针指向另一个指针,被指向这个指针指向NSObject的一个子类;

下面是一个示例:两个不同的类(一个是学生类Student,一个是会员类Member),这两个类拥有不同的成员变量和方法。

Student.h

#import <Foundation/Foundation.h>

@interface Student : NSObject{
    int sid;
    NSString *name;
}
@property int sid;
@property (nonatomic,retain)NSString *name;
-(void)print;
-(void)setSid:(int)sid andName:(NSString*)name;

@end

Student.m

#import "Student.h"

@implementation Student
@synthesize sid,name;
-(void)print{
    NSLog(@"我的学号是:%i,我的名字是:%@",sid,name);
}
-(void)setSid:(int) sid1 andName:(NSString *)name1{
    self.sid=sid1;
    self.name=name1;
}
@end
Member.h

#import <Foundation/Foundation.h>

@interface Member : NSObject{
    NSString *name;
    int age;
}
@property (nonatomic,retain)NSString *name;
@property int age;
-(void)print;
-(void)setName:(NSString*)name1 andAge:(int)age1;

@end
Member.m
#import "Member.h"

@implementation Member
@synthesize name,age;
-(void)print{
    NSLog(@"我的名字是:%@,我的年龄是%i",name,age); 
}
-(void)setName:(NSString *)name1 andAge:(int)age1{
    self.name=name1;
    self.age=age1;
}
@end

主函数main.m里:

id fo;
        NSLog(@"%lu",sizeof(fo));
        Member *member1=[[Member alloc]init];
        [member1 setName:@"Sam" andAge:36];
        id data;
        data=member1;//由于id类型的通用性质,我们可以将创建好的对象赋值给data;
        [data print];
        
        Student *student1=[[Student alloc]init];
        [student1 setSid:1122334455 andName:@"Lee"];
        data=student1;
        [data print];

运行结果:

2012-03-27 14:41:01.768 HelloWorld[440:707] 8

2012-03-27 14:41:01.769 HelloWorld[440:707] 我的名字是:Sam,我的年龄是36

2012-03-27 14:41:01.769 HelloWorld[440:707] 我的学号是:1122334455,我的名字是:Lee

注:id 类型可以通过类型转化符可以将一般的id 类型的对象转换成特定的对象。

看上面程序中有@property和@synthesize修饰;

@property@synthesize,在接口文件中使用@property来标识属性(一般是实例变量),在实现文件中使用@synthesize标识所声明的属性,让系统自动生成设置方法和获取方法.

格式:@property (属性列表)实例变量,


(二)枚举数据类型、typedef 语法以及数据类型的转换和C 是一样。    

(三)BOOL布尔值:

布尔值为YES/NO,1/0.假是0;这个没什么好说的

(四)sel选择器

选择器就是指向方法的一个指针,可以简单理解为程序运行到这里就会执行指定的方法;

(五)nil和Nil

nilC语言的NULL相同。nil表示一个Objctive-C对象,这个对象的指针指向空(没有东西就是空)。

而Nil首字母大写的Nilnil有一点不一样,Nil定义一个指向空的类(是Class,而不是对象)。

(六)IMP

IMP是一个指向函数的指针,这个被指向的函数包括id(“self指针),调用的SEL(方法名),再加上一些其他参数。

说白了IMP就是实现方法。

(六)class

与java类似,你可以使用class类来获得一个对象所属的类

(七)Method

Method(我们常说的方法)表示一种类型,这种类型与selector和实现(implementation)相关。

ok!


Objective-C语法之基本数据类型

本篇博客主要介绍基本数据类型的长度,基本数据类型在Oc的数组中如何时候,还有其他数据类型的相互转换等。为了演示基本数据类型的例子,我们新建一个iPhone项目类做例子1、新建项目为了方便,我们新建一个...

两个字节合并成一个字

(1)今天在写程序的时候,无意间发现了一个问题。两个字节合并成一个字,怎么运算。我是采用的以下方式:高字节UA,低字节UB,则合并结果是:UA  int main(int argc, char* ar...

十分钟让你明白Objective-C的语法(和Java、C++的对比)

很多想开发iOS,或者正在开发iOS的程序员以前都做过Java或者C++,当第一次看到Objective-C的代码时都会头疼,Objective-C的代码在语法上和Java, C++有着很大的区别,有...

objective-c基本数据类型之输出格式符

基本数据类型 1. int 输出格式符:%i, %d, %o %x,  2. float 输出格式符:%f, %e, %g 3. double 输出格式符:%f, %e, %g...
  • Mamong
  • Mamong
  • 2012年12月04日 14:13
  • 6365

Objective-C 的基本数据类型、数字、字符串和集合等介绍 (retaincount 释放问题)

http://blog.sina.com.cn/s/blog_662b417f0100s50n.html 基本类型 Objective-C中的基本类型和C语言中的基本类型一样.主要有:...

1、Objective-C语法之基本数据类型

本篇博客主要介绍基本数据类型的长度,基本数据类型在Oc的数组中如何使用,还有其他数据类型的相互转换等。 为了演示基本数据类型的例子,我们新建一个iPhone项目类做例子 1、新建项目 ...
  • zwcshy
  • zwcshy
  • 2014年06月19日 12:40
  • 383

Objective-C语法-基本数据类型

1、Objective-C的基本数据类型就是C语言的基本数据类型,先来查看C语言的基本数据类型长度 NSLog(@"int is: %lu bytes.",sizeof(int)); NSLog(@"...
  • zyk5219
  • zyk5219
  • 2016年03月09日 16:48
  • 233

Objective-C语法之基本数据类型

本篇博客主要介绍基本数据类型的长度,基本数据类型在Oc的数组中如何时候,还有其他数据类型的相互转换等。 为了演示基本数据类型的例子,我们新建一个iPhone项目类做例子 1、新建项目 为了方...
  • conslee
  • conslee
  • 2013年12月26日 11:15
  • 671

objective-c基本数据类型【转】

来自:http://blog.csdn.net/rhljiayou/article/details/7397889 1、Object-c提供基本数据类型:int、float 、double 、c...

Objective-C基本数据类型整理

目前真正明白了学通了C语言,什么都是浮云。 Objective-C语言中,基本数据类型有三大类:标量,指针,结构体。 一、标量 标量是最基本形式的变量。 1.       整型(int) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:objective-c基本数据类型
举报原因:
原因补充:

(最多只允许输入30个字)