一 数字
1.使用Foundation.h可以直接导入所有的头文件。
在XCode中,想查看某个方法帮助,可以将光标放在方法上,按住option键同时单击即可。
2.数字对象
objective-c有几种基本数据类型,int float long等,不过有些时候比如NSArray需要使用数字对象,而前面几种基本数据类型并不是对象,此时我们可以使用NSNumber.
对于每种基本数据类型,类方法都可以为它创建一个NSNumber对象,并设定值。这些方法都是以numberWith开头,如numberWithInteger等。也可以使用实例方法将以前创建的NSNuber对象设置为指定的值,这些方法是以initWith开头,如initWithFloat。
NSNumber类有很多方法,几种常见用法如下:
- numberWith…:用初始值创建NSNumber对象,例如:numberWithInt:100;
- integerValue:获取NSNumber对象的值,其它如charValue,floatValue等;
- isEqualToNumber:比较两个NSNumber对象的数值是否相等,返回一个BOOL值。
- compare:比较两个NSNumber对象数值的大小。返回结果有NSOrderedAscending,NSOrderedSame和NSOrderedDescending。
- 最近objective-c语言扩展允许通过@表达式创建数字对象。如果@之后的值是一个表达式或者变量需要使用括号。
#import <Foundation/Foundation.h>
int main(int argc,const char * argv[])
{
@autoreleasepool {
NSNumber *myNumber,*floatNumber,*intNumber;
intNumber=[NSNumber numberWithInt:100];
NSLog(@"%li",[intNumber integerValue]);//100
floatNumber=[NSNumber numberWithFloat:100.00];
NSLog(@"%f",[floatNumber floatValue]);//100.000000
myNumber=[NSNumber numberWithChar:'A'];
NSLog(@"%c",[myNumber charValue]);//A
//判断两个数字是否相等
if([intNumber isEqualToNumber:floatNumber]==YES)
{
NSLog(@"int number is equal to float number");//√
}
else{
NSLog(@"int number is not equal to float number");
}
//比较两个数字大小
if([intNumber compare:myNumber]==NSOrderedAscending)
{
NSLog(@"int number is less than mynumber");
}
else{
NSLog(@"int number is more than mynumber");//√
}
//@语法
intNumber=@200;
NSLog(@"%li",[intNumber integerValue]);//200
}
return 0;
}
二 字符串
1.常量字符串对象
在字符串开头放一个@符号,就可以创建一个字符串常量对象。例如:@"Hello World!"
2.decription
NSLog(@"%@",a)中,%@既可以显示NSString对象,也可以显示其它对象。通过覆盖description方法,可以自定义对象的显示格式。
Complex.h
#import <Foundation/Foundation.h>
@interface Complex : NSObject
@property int real,imaginary;
-(void)setReal:(int)r andImaginary:(int)m;
@end
Complex.m
#import "Complex.h"
@implementation Complex
@synthesize real,imaginary;
-(void)setReal:(int)r andImaginary:(int)m
{
self.real=r;
self.imaginary=m;
}
//重写description,自定义输出格式
-(NSString *)description
{
return [NSString stringWithFormat:@"%i + %ii",self.real,self.imaginary];
}
@end
main.m
#import <Foundation/Foundation.h>
#import "Complex15.h"
int main(int argc,const char * argv[])
{
@autoreleasepool {
Complex15 *c=[[Complex15 alloc] init];
[c setReal:1 andImaginary:2];
NSLog(@"%@",c);//由<Complex15: 0x10010ffa0> 变为 1 + 2i
}
return 0;
}
2.不可变字符串NSString
注意:不可变字符串对象表明它所引用的字符串对象的字符不可改变,但是可以重新为它们指定为其它的不可变字符串对象。
NSString常用的方法:
- length:获取字符串长度;
- NSString stringWithString:复制字符串内容;
- stringByAppendingString:连接两个字符串;
- isEqualToString:比较两个字符串是否相等;
- compare:字符串比较,常用于排序。比较结果为NSOrderedAssending,NSOrderedSame或NSOrderedDescending。
- uppercase