从头开始-07.Foundation框架常用结构体

一、Foundation框架常用结构体NSRange\CGRange、NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 的使用

1.  基本使用:

  //NSRange的使用
    NSRange r1 = NSMakeRange(2, 4);  //第一个参数为.location 第二个参数为.length

    NSString *str = @"学习OC";

    NSRange range = [str rangeOfString:@"学习"];  //查找某个字符串在str字符串中的位置和长度

    NSLog(@"loc = %ld, len = %ld",range.location, range.length);

    NSRange range1 = [str rangeOfString:@"找不到"];  //查找某个字符串在str字符串中的位置和长度

    NSLog(@"loc = %d, len = %ld",range1.location, range1.length);  //如果找不到,location 的返回值为-1,要用%d输出location 的值才会有负号,默认的%ld是没有符号

    //CGPoint的使用
    CGPoint point1 = NSMakePoint(10, 10);
    NSPoint point2 = CGPointMake(10, 10); //平常经常使用这种方法定义一个CGPoint 对象

    //NSSzie的使用
    NSSize size1 = CGSizeMake(10, 20);
    CGSize size2 = NSMakeSize(10, 20);

    //CGRect 的使用
    CGRect rect1 = CGRectMake(0, 0, 50, 50);
    CGRect rect2 = {point1, size1};

    //打印结构体的方法
    NSString *s = NSStringFromPoint(point1);
    NSLog(@"%@",s);

    NSString *s1 = NSStringFromRect(rect1);
    NSLog(@"%@",s1);

2. 相关的其他方法

//判断结构体NSPoint\CGPoint、NSSize\CGSize、 NSRect\CGRect 包含的值是否相同的方法
    CGPointEqualToPoint(point1, point2);
    CGRectEqualToRect(rect1, rect2);
    CGRectEqualToRect(rect1, rect2);

    //判断某个rect是否包含某个点,必须引用框架CoreGraphic.framework,这样才能调用 CGRectContainsPoint方法
    BOOL b1 = CGRectContainsPoint(rect1, point1);
    NSLog(@"%d",b1);
    return 0;

二、Foundation框架常用类

1.NSString

    //创建字符串
    NSString *s1 = @"test";
    NSString *s2 = [[NSString alloc]initWithFormat:@"test is %c",‘c‘];

    //此方法可以将c语言字符串转化为OC字符串
    NSString *s3 = [[NSString alloc]initWithUTF8String:"name"];

    //OC字符串转化为C语言字符串
    const char *cs = [s3 UTF8String];

    NSString *s4 = [[NSString alloc] initWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
    [NSString stringWithContentsOfFile:@"/Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];

    NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/lpmac/Desktop/my.text"];
    //类方法
    [NSURL URLWithString:@"file:///Users/lpmac/Desktop/my.text"];

    NSString *s5 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
     //类方法
    [NSString stringWithContentsOfFile:@"file:///Users/lpmac/Desktop/my.text" encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",s5);

2.NSMutableString的使用(动态字符串)

    NSMutableString * mutableString1 = [NSMutableString stringWithFormat:@"test"];
    //拼接字符串
    [mutableString1 appendString:@"append str"];

    //删除
    NSRange range = [mutableString1 rangeOfString:@"test"];
    [mutableString1 deleteCharactersInRange:range];
    NSLog(@"%@",mutableString1);

3.NSArray 和 NSMutableArray

    //数组的创建
    NSArray *array = [NSArray arrayWithObject:@"test"];
    NSArray *array1 = [NSArray arrayWithObjects:@"test1",@"test2",@"test2",nil];
    NSArray *array2 = @[@"test1",@"test2",@"test2"]; //提倡快速写法

    //数组访问
    [array1 objectAtIndex:0];
    array1[0]; //提倡

    //数组的遍历
    for (int i=0; i<array.count; i++) {
        NSLog(@"%@",array[i]);
    }
    //快速遍历
     for (id obj in array2) {

        NSUInteger loc = [array2 indexOfObject:obj];
         NSLog(@"%@,%ld",obj,loc);

    }

    [array2 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
          NSLog(@"%@,%ld",obj,idx);
        if (idx == 1) {
            *stop = YES;
        }
    }];

NSMutableArray 是动态数组不可使用语法@[] 来初始化

时间: 2024-12-22 02:17:16

从头开始-07.Foundation框架常用结构体的相关文章

Objective-C( Foundation框架 一 结构体)

NSRange是Foundation框架中常见的结构体它的定义如下: typedef struct _NSRange { // 范围的起始位置 NSUInteger location; // 范围的长度 NSUInteger length } NSUInteger的定义: typedef unsigned int NSInteger; typedef unsigned long NSUInteger; NSRange创建的几种方式 NSRange range; range.location =

Foundation框架的结构体和集合类

结构体: NSRange      NSPoint        NSSize         NSRect NSRange:表示范围,里面有两个变量(location(位置),length(长度)). 用法:NSRange  变量名  =  NSMakeRange(location , length) 常用于查找某个字符串在某个字符串中的范围 如: NSString *s  = @"wangning"; NSRange range = [s rangeOfString:@"

黑马程序员 Foundation框架之结构体

#import <Foundation/Foundation.h> int main() { /* 1.NSRange/CGRange 2.NSPoint/CGPoint 3.NSSize/CGSize 4.NSRect/CGRct */ // NSRange/CGRange(location,length) NSString *str = @"i love u"; // 查找"love"在字符串中的范围 NSRange r = NSMakeRange(

黑马程序员————OC中Foundation框架的结构体和字符串

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- ------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>

object-c 框架之常用结构体

Foundation 框架定义常用结构体,结构体采用object-c 定义:常用NSSRange,NSPoint,NSSize,NSRect等 一.NSRange 创建范围结构体. 方法:NSMakeRange(参1,参2).location和length. 二.集合数据类型. 1,NSPoint 创建一个点. 方法:NSMakePoint(参1,参2).x和y. 2,NSSize 创建长和宽. 方法:NSMakeSize(参1,参2).width和height. 下面是我的测试学习代码: //

38-oc常用结构体

常用结构体 在开发中苹果推荐我们使用CG开头的结构体, 也就是说NS开头的结构体一般不用 OC中定义一个点,用什么结构体 NSPoint; CGPoint point = NSMakePoint(10, 20); OC中保存物体尺寸的,用什么结构体 NSSize; CGSize size = NSMakeSize(100, 50); OC中保存某个物体的位置和尺寸,用什么结构体 NSRect; CGRect rect = NSMakeRect(10, 20, 100, 50); NSNumber

小白学开发(iOS)OC_ 常用结构体(2015-08-14)

// //  main.m //  常用结构体 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //      1. 表示范围:NSRange 结构体 NSRange ran

&lt; Objective-C &gt;常用结构体

系统定义的常用结构体 NSRange NSPoint (CGPoint) NSSize (CGSize) NSRect (CGRect) 常用的结构体方法 初始化 NSMakeRange CGPointMake CGSizeMake CGRectMake 打印结构体,返回字符串 - (NSString *) NSStringFromRange:(NSRange) range; - (NSString *) NSStringFromPoint:(NSPoint) aPoint; - (NSStri

【黑马程序员】————Foundation框架01常用结构体

NSRange(location length) NSPoint\CGPoint NSSize\CGSize NSRect\CGRect (CGPint CGSize) 1.NSRange(location length) 1 void range() 2 { 3 // @"i love oc" // love的范围 4 5 //NSRange r1 = {2, 4}; // 不用 6 //NSRange r2 = {.location = 2, .length = 4};// 不用