黑马程序员——OC笔记之Foundation框架下

Ubuntu20.04实时内核补丁PREEMPT_RT编译与安装全流程解析 本文详细解析了在Ubuntu20.04系统上编译与安装实时内核补丁PREEMPT_RT的全流程。从内核与补丁版本匹配、编译环境准备,到内核配置、编译排错,再到最终安装、验证与进阶优化,提供了手把手的实战指南,旨在帮助机器人、工业控制等对实时性有苛刻要求的开发者构建低延迟、高确定性的Linux系统。 阅读详情

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ----------

上篇描述了Foundation框架中NSString、NSMutableString、NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSRange的一些用法。

接下来要介绍是Foundation框架中NSFileManager、NDRect、NSPoint、NSSize、NSNumber、NSValue、NSDate的一些用法。

文件管理(NSFileManager)

顾名思义,NSFileManager是用来管理文件系统的。它可以用来进行常见的文件/文件夹操作(拷贝、剪切、创建等)。

NSFileManager使用了单例模式singleton

使用defaultManager方法可以获得那个单例对象[NSFileManager defaultManager] 

1、NSFileManager的基本用法

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

        NSString *filePath=@"/Users/Linhan/Desktop";
        NSString *filePath1=@"/Users/Linhan/Desktop/array.plist";
        //NSFileManager 用于判断
        //创建一个单例对象:在程序运行期间,只有一个对象
        NSFileManager *fm=[NSFileManager defaultManager];
        
        //1)判断文件是否存在/Users/Linhan/Desktop/array.plist
        if([fm fileExistsAtPath:filePath]){
        
            NSLog(@"文件存在");
            BOOL isDir;
            //2)判断是否是一个目录
            [fm fileExistsAtPath:filePath isDirectory:&isDir];
            if (isDir) {
                NSLog(@"这是一个目录");
            }
        }
        
        //3)判断文件是否可读
        BOOL isYes=[fm isReadableFileAtPath:filePath1];
        NSLog(@"%d",isYes);
        //4)是否可写
        isYes=[fm isWritableFileAtPath:filePath1];
        NSLog(@"%d",isYes);
        //5)是否可删除
        isYes=[fm isDeletableFileAtPath:filePath1];
        NSLog(@"%d",isYes);

    }
    return 0;
}

2、NSFileManager的用法深入(一)

#import <Foundation/Foundation.h>

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

        //创建文件对象
        NSFileManager *fm=[NSFileManager defaultManager];
        NSString *filePath=@"/Users/Linhan/Desktop/array.plist";
        NSString *filePath1=@"/Users/Linhan/Desktop/12";
        
        //1)获取文件的信息(属性)
        NSDictionary *dict= [fm attributesOfItemAtPath:filePath error:nil];
        NSLog(@"%@",dict);
        
        //2)获取指定目录下的文件及子目录
        //使用递归迭代调用,获取当前目录及子目录下的所有的文件及文件夹
        NSArray *subPaths=[fm subpathsAtPath:filePath1];
        //subpathsOfDirectoryAtPath  不是使用递归方法调用
        subPaths=[fm subpathsOfDirectoryAtPath:filePath1 error:nil];
        NSLog(@"%@",subPaths);
        
        //3)获取指定目录下的子目录(不再获取后代路径)
        subPaths=[fm contentsOfDirectoryAtPath:filePath1 error:nil];
        NSLog(@"%@",subPaths);
    }
    return 0;
}

3、NSFileManager的用法深入(二)

#import <Foundation/Foundation.h>

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

        //创建文件管理对象
        NSFileManager *fm=[NSFileManager defaultManager];
        //如何创建目录
        NSString *path=@"/Users/Linhan/Desktop/12/13";
        NSString *path1=@"/Users/Linhan/Desktop/12/13/a/b";
//        [fm createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
//        [fm createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
        
        //如何创建文件
        NSString *str=@"每当我错过一个女孩,我就往山上默默地放一块砖,后来就有了长城。";
        //创建NSData ,是一个处理二进制数据的类
        NSData *data=[str dataUsingEncoding:NSUTF8StringEncoding];
        NSString *path2=@"/Users/Linhan/Desktop/12/13/a/love.txt";
        
//        [fm createFileAtPath:path2 contents:data attributes:nil];
        NSString *targetPath=@"/Users/Linhan/Desktop/12/13/a/b/love.txt";
        //如何复制文件
//        [fm copyItemAtPath:path2 toPath:targetPath error:nil];
        
        NSString *targetPath1=@"/Users/Linhan/Desktop/12/13/love.txt";
        //如何移动文件
        [fm moveItemAtPath:targetPath toPath:targetPath1 error:nil];
        //如何删除文件
        [fm removeItemAtPath:targetPath error:nil];
    }
    return 0;
}

常见的结构体(NDRect、NSPoint、NSSize)

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

        //苹果官方推荐使用以CG开头
        //CGPoint 和 NSPoint(CGPoint代表的是二维平面中的一个点,可以使用CGPointMake和NSMakePoint函数创建CGPoint)
        CGPoint c;
        c.x=1;
        c.y=2;
        
        CGPoint c1={12,22};
        c1= CGPointMake(12, 22);
        
        NSPoint np1={1,3};
        np1= NSMakePoint(1, 3);
        //CGSize 和 NSSize(CGSize代表的是二维平面中的某个物体的尺寸(宽度和高度),可以使用CGSizeMake和NSMakeSize函数创建CGSize)
        CGSize c2={30,60};
        c2= CGSizeMake(20, 100);
        
        NSSize ns2={40,50};
        ns2= NSMakeSize(45, 59);
        //CGRect 和 NSRect(CGRect代表的是二维平面中的某个物体的位置和尺寸,可以使用CGRectMake和NSMakeRect函数创建CGRect)
        CGRect c3={{0,0},{40,66}};
        c3= CGRectMake(0, 0, 45, 66);
        
        NSRect nr1={{0,0},{50,100}};
        nr1= NSMakeRect(0, 0, 56, 44);
    }
    return 0;
}

处理基本数据(NSNumber)

NSArray/NSDictionary中只能存放OC对象,不能存放int/float/double等基本数据类。如果真想把基本数据(比如int)放进数组或字典中, 需要先将基本数据类型包装成OC对象
NSNumber可以将基本数据类型包装成对象,这样就可以间接将基本数据类型存进NSArray/NSDictionary中
#import <Foundation/Foundation.h>

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

        //NSNumber 是OC中处理数值类型的一个类
        //如何使用:把 基本数据类型 包装成一个对象
        //好处:可以把基本数据类型的数据,保存到 数组 或 字典 中
        int a=3;
        float b=5.23f;
        double c=8.22;
        BOOL d=YES;
        NSNumber *intObj=[NSNumber numberWithInt:a];
        NSNumber *fObj=[NSNumber numberWithFloat:b];
        NSNumber *dObj=[NSNumber numberWithDouble:c];
        NSNumber *BObj=[NSNumber numberWithBool:d];
        
        NSMutableArray *arr=[NSMutableArray arrayWithObjects:intObj,fObj,dObj,BObj, nil];
        //将对象添加到数组中
        [arr addObject:fObj];
        [arr addObject:@(b)];
        [arr addObject:@5.23f];
        NSLog(@"%@",arr);

        //取出数据进行运算
        //1)取出数组元素
        //2)把数组元素转换为基本数据类型的数据
        NSNumber *n1=arr[0];
        int b1=[n1 intValue];
        NSNumber *n2=arr[1];
        float b2=[n2 floatValue];
        int a1=b1+b2;
        
        float a2=[arr[0]intValue]+[arr[1]floatValue];
        NSLog(@"%d,%.2f",a1,a2);

    }
    return 0;
}

包装(NSValue)

NSValue可以用来包装对象指针,CGRect结构体等 
NSValue对象可以保存任意类型的数据,比如int,float,char,也可以是指pointers。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,如NSArray或者NSSet的实例。
注意:NSValue对象一直是不可枚举的。
NSMutableArray *mArr=[NSMutableArray array];
NSPoint np=NSMakePoint(10, 10);
NSRect nr=NSMakeRect(0, 0, 45, 66);

//将指针、结构体转换成NSValue对象
NSValue *val=[NSValue valueWithPoint:np];

//将NSValue对象添加到数组中
[mArr addObject:val];
[mArr addObject:[NSValue valueWithRect:nr]];
NSLog(@"%@",mArr);

//从NSValue对象中,取得对应类型的值
NSValue *npVal=[mArr lastObject];
NSRect nr3=[npVal rectValue];
NSPoint np3=[mArr[0]pointValue];
//将NSRect类型的结构体转换成字符串输出
NSLog(@"%@\n%@",NSStringFromPoint(np3),NSStringFromRect(nr3));
//定义结构体的同时起一个myDate的别名
typedef struct{

    int year;
    int month;
    int day;
} myDate;
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //将结构体存放到数组中
        //保存一个日期:2012-12-21
        myDate md={2012,12,21};
        //@encode(myDate)的作用,是把myDate类型生成一个常量字符串的描述
        NSValue *val2=[NSValue valueWithBytes:&md objCType:@encode(myDate)];
        NSArray *arr=[NSArray arrayWithObjects:val2, nil];
        NSLog(@"%@",arr);
        
        //从对象中取出结构体变量的值
        //传入一个结构体变量的地址
        myDate tmd;
        [val2 getValue:&tmd];
        NSLog(@"%d,%d,%d",tmd.year,tmd.month,tmd.day);
        test();
        
    }
    return 0;
}

日期(NSDate)

NSDate可以用来表示时间, 可以进行一些常见的日期/时间处理
一个NSDate对象就代表一个时间
以下是NSDate的用法:

1、输出格林威治时间/系统时间(当前时区)

//获取0时区时间
NSDate *date=[NSDate date];
//输出格林威治时间,0时区
NSLog(@"%@",date);

//转换成系统时间,北京时间
//设置时区
NSTimeZone *zone=[NSTimeZone systemTimeZone];

//设置时间间隔
NSInteger interval=[zone secondsFromGMTForDate:date];

//添加时间间隔,重新生成时间
NSDate *localeDate=[date dateByAddingTimeInterval:interval];
NSLog(@"%@",localeDate);
}

2、格式化输出系统时间

NSDate *date=[NSDate date];
NSLog(@"%@",date);//格式化输出时间日期

//创建一个格式化对象
NSDateFormatter *formatter=[NSDateFormatter new];

//创建日期的显示格式
//yyyy:表示4位的年份  yy:表示2位的年份
//HH:24小时制的小时  hh:12小时制的小时
formatter.dateFormat=@"yyyy年MM月dd日 HH:mm:ss";

//格式化日期(自动转换成系统时间)
NSString *myDate=[formatter stringFromDate:date];
NSLog(@"%@",myDate);

3、计算时间(更改时间输出)

//计算日期
//1)明天的此刻(0时区)
//设置时间间隔(秒),将其值改为-,则为昨天时间(0时刻)
NSTimeInterval secondsPerDay=24*60*60;
NSDate *theDate=[NSDate dateWithTimeIntervalSinceNow:secondsPerDay];
NSLog(@"theDate=%@",theDate);

//2)明天的此刻(系统时间)
NSDateFormatter *formatter=[NSDateFormatter new];

//创建日期的显示格式
formatter.dateFormat=@"yyyy年MM月dd日 HH:mm:ss";

//格式化日期(自动转换成系统时间)
NSString *myDate=[formatter stringFromDate:theDate];
NSLog(@"theDate=%@",myDate);

4、获取日期时间的元素

//获取部分时间日期对象(系统时间)
//NSCalendar 日期类,可以帮我们快速获取年月日时分秒信息
//创建日期
NSDate *date=[NSDate date];

//创建日期对象
NSCalendar *calendar=[NSCalendar currentCalendar];

//获得时间元素
//NSDateComponents *cms=[calendar components:<#(NSCalendarUnit)#> fromDate:<#(NSDate *)#>]
NSDateComponents *cms=[calendar components:NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond fromDate:date];
NSLog(@"%ld:%ld:%ld",cms.hour,cms.minute,cms.second);

5、比较日期的时间差

//比较时间的差距
NSString *time1=@"2015-08-03 13:43:30";
NSString *time2=@"2015-06-27 09:12:33";

//定义时间格式
NSDateFormatter *fmt=[NSDateFormatter new];
fmt.dateFormat=@"yyyy-MM-dd HH-mm-ss";

//格式化创建日期
NSDate *date1=[fmt dateFromString:time1];
NSDate *date2=[fmt dateFromString:time2];

//创建一个日历对象
NSCalendar *calendar=[NSCalendar currentCalendar];

//比较时间的差距
int unit=NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;
NSDateComponents *cmps=[calendar components:unit fromDate:date2 toDate:date1 options:0];

NSLog(@"%@",cmps);
NSLog(@"相差%ld年%ld月%ld日%ld时%ld分%ld秒",cmps.year,cmps.month,cmps.day,cmps.hour,cmps.minute,cmps.second);


UG NX二次开发(C#)-VS2022配置NX二次开发模板不能正常显示的问题 随着VS2022的发布,使用VS2022进行UG NX二次开发的人员也会越来越多,但是由于VS2022和以前的VS版本采用代码结构不同,而UG NX的二次开发编程模板还没有适应于VS2022的模板配置,所以不能正常的创建一个完整的工程。本文采用曲线救国的方式来实现VS2022下的UG NX二次开发。如果有读者能很好的解决模板配置,不吝赐教。 阅读详情

相关推荐

Copula函数

Copula是处理统计中随机变量相关性问题的一种方法。本文是对Copula函数的各种定义,Copula函数的思想,Copula函数的性质,Copula函数的类型等理论资料总结

Explore 5万+

黑马程序员——OC笔记之Foundation框架上

------- android培训、java培训、iOS培训、.Net培训、期待与您交流! ---------- 什么是Foundation框架? 框架:众多功能/API的集合 Foundation框架:在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架 Foundation框架中大约有125个可用的头文件,要想使用Foundat

林涵的博客 645

Switch游戏安装新思路:抛弃Commander One,试试这款免费的Mac神器OpenMTP

本文介绍了Mac用户安装Switch游戏的新选择——免费工具OpenMTP,对比收费软件Commander One,OpenMTP在MTP连接稳定性和文件管理上更具优势。详细解析了OpenMTP的安装配置、核心功能及实战操作,帮助用户高效完成游戏安装,特别适合已破解并安装DBI的Switch用户。

weixin_30664051的博客 584

黑马程序员学习笔记-OC之foundation框架

1、 简介:foundation框架是其它所有ios框架的基础,包含了很多常用类型,结构体、枚举、类等。 2、 结构体:NSRange表示范围的结构体。 NSPoint/CGPoint表示坐标点的结构体 NSSize/CGSize表示宽高的结构体 NSRect/CGRect表示坐标点+宽高的结构体 3、 类字符串:NSString   字符串类             NSMUtab

yangying514的专栏 739

Hypermesh静力学仿真分析与模态分析-02

hypermesh中对较复杂实体进行静力学分析和模态分析,包含材料属性添加,载荷设置等等

Look_forward_的博客 6778

金现代面试题—— i++,++i, &&,&|自动装箱和自动拆箱(int,byte,float等)|取int等基本类型的最大值

public static void main(String[] args){ int i=1,j=1; if(i++==2&amp;amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp;amp;++j==2){ i=7; } System.out.println(“i=”+i+”,j=”+j); } 请给出 输出结果:

老孟嘚吧嘚 1397

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发、Android培训、期待与您交流! ---------------------- 一、NSNumber         前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了。 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数

fjfhgwe1的专栏 485

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

m0_72224305的博客 4306

黑马程序员---OC学习笔记之Foundation框架:NSString的基本使用

------Java培训、Android培训、iOS培训、.Net培训-------- 一、Foundation框架介绍 1、什么是框架? 1)框架是有许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。在OS X下得Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation框架。   2)Coco是Foundation和App

chunhuayun的专栏 548

Mac上快速部署DeepSeek模型:Ollama终端操作全指南

本文详细介绍了在Mac上使用Ollama终端快速部署DeepSeek模型的完整指南。从硬件要求、Ollama安装、模型下载运行,到高级配置、可视化界面及常见问题解决,提供了全流程操作步骤与优化技巧,帮助开发者高效搭建本地AI助手,实现稳定、私密的离线使用体验。

weixin_29251567的博客 551

wifi/BT芯片RTL8723DS驱动移植和测试之一wifi篇

本文主要介绍如何在stm32mp157中移植并测试芯片RTL8723DS的wifi功能。

汉尼拔勇闯天涯 8741

黑马程序员_OC学习笔记之Foundation框架集合类

-----------android培训、java培训、ios学习型技术博客、期待与您交流! ------------ OC--集合类 1.OC集合类包括NSArray,NSSet,NSDictionary都是以面向对象的方式操作数组,而且OC数组不像C语言中的数组只能存放同一种数...

weixin_30648963的博客 181

多传感器标定:如何统一摄像头、雷达与IMU坐标?

多传感器标定:如何统一摄像头、雷达与IMU坐标?​ ,人工智能,计算机视觉,大模型,AI,本文详细阐述多传感器标定中统一摄像头、雷达与 IMU 坐标的方法。先介绍传感器坐标系统、坐标统一必要性及变换数学基础,再分述摄像头与雷达、IMU 与摄像头、IMU 与雷达的标定原理、步骤、参数计算及结果验证,还讲解了多传感器坐标统一的整体流程,分析了标定常见问题及解决办法,介绍了常用标定工具,结合实际案例说明应用,探讨了标定精度的影响因素、提升方法及发展趋势,为相关领域提供了全面的多传感器标定指导。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

黑马程序员——OC学习笔记08 Foundation框架常用的几个结构体和类。

一、常用的结构体 NSRange 表示范围 成员:都是unsigned long类型的。  location位置,length长度. 定义方式: 1、NSRange r1 = {2,4}; //可读性不强,一般不用 2、NSRange r2 = {.location = 2, .length = 4}; //太多余麻烦,一般不用 3、NSRange r3 =

gjgoodjob271的博客 593

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

黑马程序员-OC学习笔记-----Foundation框架(集合、NSNumber、NSDate)

集合: NSArray NSArray是OC中用来存储对象的数组,不能存储基本数据类型,也不能存储nil。 创建方法 NSArray *array =[NSArray arrayWithObjects: @"one" ,@"two",nil]; 更简便的创建字符串的方法是: NSArray *array =@[ @"one" ,@"two"]; NSArraay的

wenfeng340的专栏 494

黑马程序员-----oc语言学习笔记之foundation框架-NSString

------Java培训、Android培训、iOS培训、.Net培训>、期待与您交流! ------- Foundation框架之NSString NSString ********************************************************* NSString对象代表是字符串 创建方式为 NSString *str =@“abc”;/

qq_18821687的博客 391

黑马程序员-OC学习笔记-----Foundation框架(常用结构体和NSString)

常用的结构体 表示范围的结构体 NSRange typedef struct  _NSRange {     unsigned int location;     unsigned int length; } NSRange; 这个结构体主要用来表示事物的范围,一般常用于字符串里面字符的范围。 表示几何数据类型的结构体 CGPoint(NSPoint)  CGSize(NS

wenfeng340的专栏 440

黑马程序员————OC中Foundation框架知识总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一个框架(Framework)就是一个软件包,它包含多个类。Mac 操作系统提供了几十个框架,从而帮助软件开发人员迅速地在Mac 系统上开发应用程序。在这些框架中,有一 些称为基础框架。基础框架就是为了所有程序开发提供基础的框架,其中的类包括:字符串(NSString)、数字(N

whymerain的专栏 594

黑马程序员——OC中Foundation框架

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Foundation框架: Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协议一起)定义了基本的对象属性和行为。Foundation框架的剩余部分由几组相互关联的类和一些独立的类组成。有一些代表基本数据类型的类,如字符串、字节数组、用于存储

jerome3的专栏 609

黑马程序员_OC_Foundation框架

一、简介 框架是由许多类、方法、函数和文档按照一定的逻辑关系组织起来的集合,以便使研发程序变得更容易。 Mac OS开发会使用Cocoa框架,由Foundation和ApplicationKit两个框架组成。iOS程序开发会使用Cocoa Touch框架,由Foundation和UIKit框架组成。其中ApplicationKit和UIKit主要是一些用户界面设计的类,而Foundat

huangchen_wyx的专栏 607

黑马程序员—OC语言基础—Foundation框架小结

————————Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———————

编程之路 489

黑马程序员_OC中的Foundation框架学习

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- Foundation框架是Cocoa的一部分,没有内置于Objective-C中,但他仍然十分重要。Foundation中有很多有用的、面向数据的简单类和数据类型,例如:NSString、NSArray、NSNumber。 一些有

conpgy的专栏 903

黑马程序员——Foundation框架

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协议一起)定义了基本的对象属性和行为。Foundation框架是iOS开发的基础框架,其中包含了很多开发中的数据类型。结构体 NSRange NSRange包含两个属性location和length,其实就是定义了一个结

qq_26989441的专栏 491

黑马程序员-OC语言基础:Foundation框架小结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------   Foundation正如其名,是其他所有iOS框架的基础 Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类 Foundation框架常用的结构体 NsRange NsPoint\CGPoint NSSize\CGSzie NSRect\CGRect

SUIDONGYANG123的博客 708

黑马程序员—foundation框架总结

Foundation框架是其它所有ios框架的基础 Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类          使用Foundation需要引入语法         #import     Foundation/NSObjCRuntime.h的路径:         应用程序/Xcode.app右击显示包内容->         /Applicati

guzhenxian340323的专栏 510

黑马程序员-iOS基础-Foundation框架基础

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员-iOS基础-Foundation框架基础 一、Foundation框架基础    作用:Foundation框架是其他所有IOS框架的基础    包含了很多开发中常用的数据类型:结构体;枚举;类等。    使用方法: 想要使用Foundation框架中的数据类型,包含它的主

deng0512的专栏 621
上一篇: 黑马程序员——OC笔记之Foundation框架上
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值