OC数据类型学习

#import <Foundation/Foundation.h>

#import "Person.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

       /*

        字符串可变 不可变

        NSMutableString

        NSString

        数组 可变 不可变

        NSMutableArray

        NSArray

        字典 可变 不可变

        NSMutableDictionary

        NSDictionary

        NSSet

        NSNumber封装C的基本数据类型

        NSValue可以封装结构体

        NSDate 表示日期

        结构体  

        NSRange NSPoint NSSize NSRect

        */

        

   //不可变的字符串定义 基本上有三种方式 直接定义、实例化、相对应的静态方法定义

        NSString *stringFirst = @"abcd";

        NSString *stringSend = [[NSString alloc]initWithFormat:@"abcd"];

        //字符串的分割: substringFromIndex:通过第几个字符开始到结尾的分割 substringToIndex0开始到指定的字符分割、获得字符串中的某个字符方法:characterAtIndex、以特殊字符分割的方法:componentsSeparatedByString:

       NSString *stringTir =[stringFirst substringFromIndex:2];

        NSLog(@"%@",stringTir);

        unichar ca = [stringFirst characterAtIndex:3];

        NSLog(@"%c",ca);

        NSArray *array=[stringFirst componentsSeparatedByString:@","];

        NSLog(@"%@",array);

        //转化成小写的方法:lowercaseString

       NSString *lowerString= [stringFirst lowercaseString];

        //转化成大写的方法:uppercaseString

        NSString *upperString = [stringFirst uppercaseString];

        NSLog(@"%@,%@",lowerString,upperString);

        //首字母大写的方法:capitalizedString

        NSString *capString = [stringFirst capitalizedString];

        //判断是否以某字符串开头的方法:hasPrefix 或者结尾的方法:hasSuffix

        NSLog(@"%i %i",[stringFirst hasPrefix:@"ab"],[stringFirst hasSuffix:@"de"]);

        //i去替换字符串中的b

     NSLog(@"%@", [stringFirst stringByReplacingOccurrencesOfString:@"b" withString:@"i"]);

        //字符串比较的方法compare: 0是相等 1前者大于后者 -1 后者大于前者

        NSLog(@"compare:%ld",[stringFirst compare:stringSend]);

    //NSMutableString

        //创建一个可变的字符串

        NSMutableString *strMu = [NSMutableString string];

        //给可变字符串增加字符串

        [strMu appendString:@"abcd"];

        //删除可变字符串中的某个区间

        [strMu deleteCharactersInRange:NSMakeRange(1, 1)];

        //C里面结构体的写法

        NSRange range = {1,2};

        //修改字符串中的某个字符 返回了一个新的字符串

        [strMu stringByReplacingCharactersInRange:range withString:@"de"];

        NSLog(@"strMu:%@",strMu);

        NSMutableString *strMuII;

        Person *person= [[Person alloc]init];

        person->string = [NSMutableString stringWithCapacity:10];

        strMuII =[NSMutableString stringWithCapacity:10];

        [strMuII appendString:@"hhh"];

        NSLog(@"strMuII:%@",strMuII);

        //NSArray 数组的创建 数组的遍历 数组元素的类型有对象类型 NSNumber NSString NSDictionary NSArray NSValue

        NSArray *arrayI = @[@1,strMuII,person];

        NSArray *arrayII = [[NSArray alloc]init];

        NSArray *arrayIII = [NSArray array];

        NSLog(@"arrayI%@",arrayI);

        //遍历:

        for (int i=0; i<[arrayI count]; i++) {

           NSLog(@"for method:%@",  [arrayI objectAtIndex:i]);

//         arrayI[i];c中某个数组元素的写法

        }

        for (id name in arrayI) {

            NSLog(@"for in method:%@",name);

        }

        //将数组中的元素拼接起来

       NSString *strJoin = [arrayI componentsJoinedByString:@""];

        NSLog(@"strjoin:%@",strJoin);

//        不可以通过KVC修改某元素的值

//        [arrayI setValue:@2 forKey:arrayI[0]];

        [arrayI subarrayWithRange:NSMakeRange(1, 2)];

        NSLog(@"+++%@",arrayI);

        

        

        

        

        

        

        

        

        

        


        

        

        

        

        

        

        

        

        

        

        

        NSLog(@"Hello, World!");

    }

    return 0;

}


#import <Foundation/Foundation.h>


@interface Person : NSObject

{

    @public

    NSMutableString *string;

}


@end


你可能感兴趣的:(OC数据类型学习)