【非凡程序员】 OC第六节课 (枚举,字典,结构体,NSRange,CG类型,NSnumber,空)

#import <Foundation/Foundation.h>
#import "Article.h"
#import "Person.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool { //自动释放池 (半自动)

//-------------------------枚举类---------------------------------// 
    NSArray *parent = @[@"father",@"mother" ];
    NSEnumerator *rator =[parent objectEnumerator];   //objectEnumerator 向数组请求这个枚举器
    id object;        //id 可以指向一切对象类型 
    while ((object = [rator nextObject]))       //nextObject 下一个对象

{
        NSLog( @"object : %@", object );
    }

//---------------------------字典---------------------------------//
    NSArray *PersonValue = @[ @"jabez",@"11",@"西安"];
    NSArray *PersonKey = @[ @"name", @"age", @"location" ];   //第一种方法
    NSDictionary *dict = [NSDictionary dictionaryWithObjects:PersonValue forKeys: PersonKey];  //定义一个不可变字典
    NSLog( @"name : %@", dict[@"name"]);
    NSLog( @"age : %@", dict[@"age"] );
    NSLog( @"location : %@", dict[@"location"] );
   
    NSDictionary *dict1 = @{                     
        @"name" : @"jabez",
        @"age" : @"18",
        @"location" : @"西安"
    };                                                                    //第二种方法

NSLog( @"location: %@ "  , [dict1 objectForKey:@"location"] );
   
    //-------------------------可变的字典------------------------//  (重点)
    NSArray *muDictKey = @[@"age", @"location"];
    NSArray *muDictValue = @[ @"17", @"西安"];
    //创建一个可变的字典 记住里面传值的数组 keyArray  valueArray
    NSMutableDictionary *dict2 = [NSMutableDictionary dictionaryWithObjects: muDictValue forKeys: muDictKey];

NSLog(  @"age: %@", [dict2 objectForKey:@"age"] );         //输入某一个键的值
    [dict2 setObject:@"16" forKey: @"age"];           //修改一个键对应的值
    [dict2 setValue: @"15" forKey: @"age" ];
    [dict2 addEntriesFromDictionary:@{@"name":@"jabez"}];       //新增一个键值对
    [dict2 removeObjectForKey:@"age"];                                   //删除某一个键值对
    [dict2 removeAllObjects];                                                    //清空字典
    NSLog(  @"age: %@", [dict2 objectForKey:@"age"] );
    NSLog(  @"name: %@", [dict2 objectForKey:@"name"] );

//------------------结构体------------//

struct date{
        int year;
        int month;
        int day;
    };
    struct date tDate = { .day = 2015};
    NSLog( @"%i - %i - %i", tDate.year , tDate .month, tDate.day );
   
    //--------------NSRange 截图字符串或数组范围--------------------//
    NSRange range = NSMakeRange( 4, 2 );
    NSString *str1 = @"abcdef";
    NSLog( @"%@", [str1 substringWithRange:range]);

//---------------------CG类型----------------------//
    //CGSize/NSSize 描述一个物体的高度与宽度 ( 宽度 , 高度 )
    CGSize cgsize = NSMakeSize(10, 20);
    NSLog( @"width is %.2f", cgsize.width );
    NSLog( @"height is %.2f", cgsize.height );
   
    //CGPoint/NSPoint 描述一个物体的坐标 ( 横坐标 , 纵坐标 )
    CGPoint cgpoint = NSMakePoint(3, 1);
    NSLog( @"cgpoint x is: %.2f",  cgpoint.x );
    NSLog( @"cgpoint y is: %.2f", cgpoint.y );
   
    //CGRect/NSRect 描述一个物体的多维度信息
    //( 坐标( origin.x  , origin.y ) )
    //( 高度与宽度( size.width , size.heigth ) )
    CGRect cgrect = NSMakeRect(0, 0 , 0 , 0);
    cgrect.origin = cgpoint; //赋值相关物体的坐标
    cgrect.size = cgsize; //赋值相关物体的尺寸
    NSLog( @"物体横坐标为:%.2f", cgrect.origin.x );
    NSLog( @"物体纵坐标为:%.2f", cgrect.origin.y );
    NSLog( @"物体高度为:%.2f", cgrect.size.height );
    NSLog( @"物体宽度为:%.2f", cgrect.size.width );
   
    //
    NSDate *today = [NSDate date];
    NSLog( @"%@", today );
   
    //--------------NSNumber 封装基本的数据类型-----------------//  (重点)                    NSNumber *number;
    number = @123;
    NSLog( @"%@",  number);
    number = @1.2f;   
    NSLog( @"%@", number);       //打印的注意 此处因为是对象类型 所以用%@
    
    //第二种写法 内置的numberWithInt\float\char...类方法
    NSNumber *number1 = [NSNumber numberWithInt:10];
    NSLog( @"%@", number1 );
   
    //-----NSNull 用于在集合类型中空值的元素 如:斗地主已抽取的牌------//
    NSNull *pc = [NSNull null];
    NSMutableArray *nullArray = [NSMutableArray arrayWithObjects: @"123", pc, @"234", nil];
   
    NSLog( @"%@", nullArray[0]);
    NSLog( @"%@", nullArray[1]);
    NSLog( @"%@", nullArray[2]);
   
    //-------------类型限定词--------------//
    long int a = 10;
    long long int b = 100;
    short int c = 1;
    //只能用来存正数,如果给负数会自动变为正数 注意%u
    unsigned int d = -1;
    NSLog( @"%u", d);
    signed char e = ‘x‘;
    NSLog( @"%c", e );
   
    //-----------id 对象 可以指向任何的对象类型---------------//(重点)
    //常用于 传参 和 返回值类型
    id mm = [Article new];
    [mm setAuthorName: @"jabez"];
    NSLog( @"%@", [mm AuthorName]);

return 0;
}

时间: 2024-10-16 22:14:39

【非凡程序员】 OC第六节课 (枚举,字典,结构体,NSRange,CG类型,NSnumber,空)的相关文章

【非凡程序员】 OC第十五节课 (观察者模式和KVO进行对比)

今天主要学了观察者模式,以及回顾复习了KVO,两者进行对比 什么是观察者模式? 我们先打个比方,这就像你订报纸.比如你想知道美国最近放生了些新闻,你可能会订阅一份美国周刊,然后一旦美国有了新的故事,美国周刊就发一刊,并邮寄给你,当你收到这份报刊,然后你就能够了解美国最新的动态.其实这就是观察者模式,A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这是一种非常典型的观察者的用法,我把这种使用方法叫做经典观察者模式 KVO的全称是Key-Value Observer,

【非凡程序员】 OC第九节课 (KVO的应用)

这是一个QQ密码登陆地址和密码同时被修改时,通知用户QQ账号出现问题 该题难度主要在于判断监控的两次数据都是被修改的 有两种方案: ①定义一个可变的数组,把每次监控到的新旧数据添加进去,进行对比 ②定义一个变量,每修改一次,该变量就自加一次,判断为2时,通知用户 (1)main函数//  main.m//  QQ被盗////  Created by 非凡程序员 on 15/5/27.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #im

【非凡程序员】 OC第五节课 (数据类型NSString和NSString)

//  main.m//  ZiFuChuan////  Created by 非凡程序员 on 15/5/18.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {    @autoreleasepool { NSString *[email protected]"AB"

【非凡程序员】  OC第十节课 (代码块)

代码块就相当于C语言中一个函数一样 ////  main.m//  DaiMaKuai////  Created by 非凡程序员 on 15/5/28.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {    @autoreleasepool { int i=7; //代码块格式如下: 

centos mysql 实战 第六节课 字符集

centos mysql 实战 第六节课    字符集 一定要研究清楚mysql安装脚本 字符集 乱码数据迁移1. 理解字符集怎么会事2. 不同的字符集进行转换 什么是字符集gbk , utf8 gb2312 latin1 一套符号编码规则 字符串都必须有相应的字符集,除了二进制没有字符集 校验字符集的概念流式传输 多字节latin1 单字节gbk 2字节utf8 3字节校验字符集的概念, 字为单位归类的方法,就是3类xxx_bin 以二进制形式存储区分大小写 SHOW CHARACTER SE

Linux学习第六节课-用户、组合权限

Linux学习第六节课 ---------------------------------------------------------------------------------------------------------------------------------------------------------------- 三十四.安全3A 认证Authentication 授权Authorization 审计Accounting 三十五.用户和组的配置文件 /etc/pas

第六节课:元组和集合

第六节课:元组合集合 首先,看一下英文对应词汇“迭代”->"iteration"->(computer science) a single execution of a set of instructions that are to be repeated; "the solution took hundreds of iterations" “递归”->“recurse"->To execute a procedure recur

centos mysql 优化 第十六节课

centos mysql  优化  第十六节课 f

[非凡程序员]手写UIDatePicker和UIPickerView

// //  ViewController.h //  手写UIDatePicker // //  Created by 非凡 程序员 on 15/11/13. //  Copyright (c) 2015年 非凡 程序员. All rights reserved. // #import <UIKit/UIKit.h> @interface  ViewController : UIViewController @property(nonatomic,strong)UIDatePicker *d