当我们使用简要的创建字符串的时候,也就是使用1个OC字符串常量来初始化字符串指针的时候,这个字符串对象是存储在常量去(数据段)的。
NSString *str = @"jack"
当我么调用NSString的类方法来创建对象的时候,创建的字符串对象是存储在堆区的。
NSString *str = [NSString stringWithFormar:@"jack"];
NSString *str = [NSString new]
NSDictionary *dict1 = [NSDictionary new];
NSDictionary *dict2 = [[NSDictionary alloc]init];
NSDictionary *dict3 = [NSDictionary dictionary];
//这三种没有数据,也没有意义
//通常使用
NSDictionary *dict4 = [NSDictionary dictionaryWithObjectsAndKeys:@"jack",@"name",nil];
//简写
NSDictionary *dict5 = @{@"name":@"rose"}
//取值
for(id item in dict5)
{
NSLog(@"%@ = %@",item,dict[item]);
}
[dict5 enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) {
NSLog(@"%@ = %@",key,obj);
}];
//坐标
CGPonint p1;
//长度和宽度(大小)
CGSize p2;
//坐标和大小
CGRect p3;
p1.x=20;
p1.y=30;
NSPonint p1 ={20,.y=30};
//函数创建
CGPoint p1 = CGPointMake(20,30);
CGRect rect;
rect.origin =(CGpoint){10,20};
rect.size = (CGSize){100,34};
CGrectMake(10,20,30,40);
//封装成OC对象
NSValue *v1 = [NSValue valueWithPoint:p1];
NSValue *v2 = [NSValue valueWithSize:p2];
NSValue *v3 = [NSValue valueWithRect:p3];
//封装成数组
NSArray *arr = @[v1,v2,v3];
NSDate *date= [NSDate date];
//创建日历对象
NSCalendar *calendar = [NSCalendar currentCalendar];
//取出日期各部分
[calendar NSDateComponents *com =components:NSCalendarUnitWeekday|NSCalendarUnitDay fromDate:date];
NSLog(@"%lu---%lu",com.weekday,com.day)
_name = [name copy]
+(instancetype)allocWithZone:(struct _NSZone *)zone
{
static id instance =nil;
if(instance ==nil)
{
instance =[super allocWithZone:zone];
}
return instance;
}
+(instancetype)sharedPerson
{
return [self new];
}
+(instancetype)defaultPerson;
{
return [self new];
}