黑马程序员---学习笔记24:Foundation框架

从Mule ESB到Apache Camel:手把手教你设计一个轻量级企业集成框架的‘心脏’ 本文深入探讨了从Mule ESB到Apache Camel的轻量级企业集成框架设计实践,对比了两者在协议支持、消息处理能力和部署灵活性等方面的差异。通过实际代码示例和性能优化技巧,帮助开发者构建高效的核心模块,适用于现代微服务架构下的系统集成需求。 阅读详情

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


Foundation框架
框架是由许多类,方法,函数,文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。Mac操作系统下大约有80个框架,为程序开发奠定基础的就是Foundation框架。
Foundation.h头文件实际上是导入其他所有的头文件。

如何使用Foundation框架
导入头文件就可以了,#import <Foundation/Foundation.h>

NSString字符串比较:
比较字符串大小:compare 方法返回的结果有三种:NSOrderedAscending(前小后大),NSOrderedSame,NSOrderedDescending(前大后下).
比较原则:取出每个字符,比较每个字符ASCII码大小
NSString *str1 =@”abc”;
NSString *str2 =@”bce”;

NSComparisonResult(枚举类型) result = [str1 compare:str2];(这个函数是区分大小写的)
NSComparisonResult(枚举类型) result = [str1 compare:str2 option:NSCaseInsensitiveSearch];
(这个函数不区分大小写)
NSComparisonResult(枚举类型) result = [str1 compare:str2 option:NSCaseInsensitiveSearch|NSNumericSearch];(增加字符个数比较,可以增加限制条件)

使用“==”是不能比较字符串内容是否相等的。
判断字符串内容是否相等,区分大小写,使用的是isEqualToString:

NSString前后缀检查和搜索。
判断一个字符串是否是个网址:
NSString *url=@”http://ios.tiheima.com”;
If([url hasPrefix:@”http://”]|| [url hasPrefix:@”https://”]){
NSLog(@”是”);
}else{
NSLog(@”不是”);

}
检查字符串后缀: hasSuffix:@””;

字符串查找:(子字符出现在父字符串首次出现的位置,字符串下标从0开始)
//结构体类型 结构体变量
NSRange range=[字符串1 rangOfString: 字符串2];
NSLog(@”%lu,%lu”,range.location,range.length);

如果查找到了,返回字符串出现的下标和长度,如果查找不到返回最大的长整型值和0

NSRange用来表示事物的一个范围,通常是字符串里的字符范围或者数组里的元素范围。

range变量的初始化方式:
1) 通过结构体变量访问成员
Range.location =7;
Range.length=3;
2)结构体变量整体赋值
Range =(NSRange){5,3};
NSRange r2={5,3};

3)NSRange r3={.location=3};

4) OC中新增的
NSRange r4=NSMakeRange(3,5);

想要快速查看NSRange中的内容,可以将这个对象转换成NSString类型的
NSLog(@”%@”,NSStringFromRange(r4));


字符串的截取和替换:
1) 从XXX位置到结尾
NSString str1=[str subStringFromIndex:5];(从第五个位置,包含第五个)
2) 从开头到XX位置
NSString str2=[str subStringToIndex:5];(不包含第五个)
3) 截取一定法范围 range
NSRange r1={3,4};
NSString str3=[str subStringWithRange:r1];(包含位置的边缘)


字符串替换:
-(NSString *)stringByReplacingOccurrencesOfString: (NSSting *)target withString: (NSString *) replacement;

字符串中转换整型数值,str1=@“123”;int b=[str1 intValue];
floatValue转换成float类型
doubleValue转换成double值

OC和C的字符串互相转换
c------- >OC
Char *s[]=”zhangsanfeng”;
NSString *str=[NSString stringWithUTF8String:s];

OC----- >C
Char *s1=[str UTF8String];


NSMutableString基本概念(内存空间和内容都可变)
NSMutableString *str2=[NSMutableString stringWithFormat:@”Jack”];
[str2 appendingString:@”Rose”;];

常用方法:

格式化添加字符串
[str appendFormat:@www.baidu.com/%d,100];

删除一部分字符串
[str deleteCharactersInRange:NSMakeRange(3,4)];返回值是void

插入一个字符串
[str insertString:@”abc” atIndex:3];

常见错误:
1) 给可变的字符串赋值不可变的值
2) str.string=@””;用空把原来str字符串中的内容给覆盖了


NSArray:
只能存储任意的OC对象,并且是有顺序的
他是不可变的,一旦初始化完毕后,它里面的内容就永远固定了,不能删除里面的元素,也不能添加里面的元素。


NSArray *arr=[NSArray array];//快速创建数组

用%@就可以打印出整个NSArray数组的内容,系统会自动加上小括号,每一个内容会换行

获取数组长度:arr.count
根据下标,获取下标对应的对象[arr3 objectAtIndex:2]
返回元素的下标[arr3 indexOfObject:@”three”]
数组中包含某个元素:[arr3 containsObject:@”three”]

用简化的方式,类定义和访问数组
1) 定义数组
格式:@[数组元素]
NSArray *arr =@[@”1”,@”2”,@”3”,@4,@”ONE”];

2)用简化的方式访问数组
Str =arr[1];

对数组进行遍历
1) 普通方式,通过下标访问
For循环
2) 快速枚举法,for循环增强形式
for (NSString *str in arr){
NSLog(@”->%@”,str);
}

3) 使用block的方式
数组元素 指针下标 是否停止
[arr enumerateObjectsUsingBlock:^(id obj,NSUInteger idx,BOOL *stop){
If(idx==2){
*stop=YES;//停止了,类似于C语言的break
}else{
NSLog(@”idx=%ld,obj=%@”,idx,obj);
}
}]

NSMutableArray使用
1) 创建数组
NSMutableArray *arr=[NSMutableArray array];
创建时候初始化一个元素
创建时候初始化多个元素
创建一个数组,并指定长度。

2) 添加元素
[arr addObject:@”feng”;]
插入元素
[arr insertObject:@”feng” atIndex:1 ;]

3) 删除元素
[arr removeObject:@”feng”];
[arr removeObjectAtIndex:3];

4) 修改元素
[arr replaceObjectAtIndex:1 withObject:@”four”];
arr[3]=@”four”;
5) 查找元素
BOOL isSearch =[arr containsObject:@”four”];
6)交换元素()
[arr3 exchangeObjectAtIndex:0 withObjectAtIndex:4];

NSDictionary使用
内容是不可变的,初始化后不可以修改,里面包含键值对。
1) 创建空字典
NSDictionary *dic1 [NSDictionary dictionary];
有一组键值的字典
NSDictionary *dic2= [NSDictionary dictionaryWithObject:@”张三”forKey:@”zs”];
注意:
字典的key值和value值,都必须是对象,不能是基本类型数据
快速创建字典:
NSDictionary *dic3 =@{@”zs”, @”zhangsan”, @”ls”, @”lisi”};
用NSLog(@”%@”,dic3);就可以快速打印出字典中的值,并且,键值是无序的,中间用等号相连

根据key值取出value值,
NSString *str=[objectForKey:@”zs”];
字典的遍历
第一步:获取所有的key
第二部:根据key获取value
for (NSString *key in dict4){
NSLog(@”key=%@,value =%@”,key,[dict4 objectForKey:key]);
}
简便方法:
[dict4 enumerateKeysAndObjectsUsingBlock:^(id key,id obj,BOOL *stop){
NSLog(@”%@->%@”,key obj);
}]

把字典内容保存到文件
BOOL isWrite=[dict writeToFile:@”/Users/name/Desktop/dict.plist” atomically:YES];

从文件中读取字典:
NSDictionary *readDict =[NSDictionary dictionaryWithContentsOfFile:@” /Users/name/Desktop/dict.plist”];
注意事项:
1)键值对不能重复,重复了也不能报错,后出现的不能保存在字典中


NSFileManger介绍
是用来管理文件系统的。
用来进行常见的文件/文件夹 操作
NSFileManager使用了单例模式singleton

1) 判断文件是否存在
调用defaultManager创建一个文件管理的单例对象
单例对象:在程序运行期间只有一个对象存在
NSFileManager *fm =[NSFileManager defaultManager];
BOOL isYES=[fm fileExistsAtPath:filePath(路径字符串)];
2) 判断是否是一个目录
[fm fileExistsAtPath:filePath isDictionary:&isDir];
3) 判断文件是否可读
IsYES= [fm isReadableFileAtPath:filePath];
4) 是否可写
IsYES= [fm isWritableFileAtPath:filePath];


常见结构体
1) CGPoint/NSPoint
用来表示二维平面的一个点
包含两个成员 X(x方向) Y(x方向)
常用初始化
CGPoint c1;
c 1.x =20;
c 1.y =100;
CGPoint c2 ={10,10};
CGPoint c3 ={.x=10};
OC 中特有的赋值
CGPoint c4= CGPointMake(10,10);

CGSize/NSSize
用来表示平面的面积
CGSize s2 =CGSizeMake(100,100);
NSSize ns=NSMakeSize(10,10);

CGRect 和NSRect
表示在平面上左上角是某个点的矩形区域
Origin 表示矩形的左上角
Size表示矩形的大小

CGRect r1;
r1.origin.x=0;
r1.origin.y=0;

r1.size.width=200;
r1.size.height=200;

OC特有方式
CGXXXX CGXXXXMake
NSXXXX NSMakeXXXX

!!!快速查看结构体内容的方法:转换成字符串格式
NSLog(@”%@”,NSStringFromRect(结构体名) );



电磁场仿真:电磁场基础理论_(13).微波技术基础 微波是指频率在300 MHz到300 GHz之间的电磁波。这一频率范围对应的波长为1米到1毫米。 阅读详情

相关推荐

OpenBmc开发2:构建开发环境

编译环境VMware + ubuntu 18.04 编译环境构建:参考OpenBmc开发1:构建开发环境 1、打开一个Ternimal,进入openbmc目录下 2、查看有哪些不同的编译配置 find meta-* -name local.conf.sample 可以看到如下编译配置 3、生成编译配置 插入TEMPLATECONF,上边查询到的配置有很多,但是有一些...

master 2万+

《objective-c基础教程》学习笔记(九)—— Foundation框架介绍

  在之前的博文中,我们创建的项目文件的时候,默认都有引用#import <Foundation/foundation.h> 这个头文件。但是,之前我们对Foundation都没有展开介绍。这篇博文,我们就揭开它神秘的面纱。   之前,我们有提到过OC使用的是Cocoa框架。那么Cocoa和Foundation之间,有啥关联呢?实际上,Cocoa是由许多个不同的框架组成的。最常用的是...

weixin_30839881的博客 239

告别硬编码!用Aviator 5.3.3实现动态规则引擎,Spring Boot项目实战教程

本文详细介绍了如何使用Aviator 5.3.3在Spring Boot项目中实现动态规则引擎,告别硬编码。通过Maven依赖集成、规则模型设计、规则执行引擎实现及电商促销系统实战案例,展示了Aviator在动态规则配置中的高效应用,提升业务灵活性和开发效率。

weixin_30329623的博客 446

ios笔记--Foundation框架学习笔记

1.Foundation框架提供的常用结构体有: (1)NSRange:这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。 Location表示该范围的起始位置。 Length表示该范围内所含的元素个数。 定义:typedef struct _NSRange { NSUInteger location; NSUInteger length; }NSRan

谢兴(C/C++) 892

基于PyQt5的ROS移动机器人的人机交互UI界面

每次做实验的时候,手动rosrun,roslaunch太过麻烦,通过ui界面的话,只需要点点按钮就可以啦 ros_car_py包括运动,建图,导航,ui界面的程序全部打包上传,相互依赖关系见ros_car_py包。 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets imp...

工大机器人工作室 7366

S7-1200五轴伺服系统PLC控制方案与调试技巧

工业自动化领域中,多轴伺服控制是实现精密加工的核心技术。基于PROFINET实时通信协议和PLCopen运动控制标准,现代PLC(如西门子S7-1200)能够实现多轴高精度同步控制。其技术原理是通过等时同步模式确保各轴运动的时序一致性,结合PID调节和电子齿轮比实现位置闭环。这种方案在数控机床、3D打印等场景具有重要应用价值。本文以五轴联动系统为例,详细解析了S7-1200与V90伺服驱动器的硬件组态方案,包括PROFINET环网配置和IRT同步设置。在软件层面,重点介绍了基于TIA Portal的工艺对象

weixin_34332905的博客 415

Foundation框架-学习笔记<一>

Foundation框架部分基础知识学习笔记

金刚龙123的专栏 898

Verilog实现FIR滤波器

1、FIR滤波器简介 不追究FIR滤波器的深层含义,我们只关注如何实现;可以看出,FIR滤波器的本质就是延迟、系数相乘与求和,如下图: 2、设计 基于以上分析,按照三级流水实现FIR滤波器设计:信号延迟-系数相乘-求和 `timescale 1ns / 1ps module fir( input clk, input rst_n, input [3:0]din, output reg [9:0]dout ); // data reg reg [3:0]din1; reg [3:.

CLL_caicai的博客 1万+

ojective-C学习笔记(7)Foundation框架

一些有用的数据类型 范围 NSRange range1; range1.location = 10; range1.length = 20; NSRange range2 = {10, 20}; NSRange range3 = NSMakeRange(10, 20); 几何数据类型 struct CGPoint { CGFloat x; CGFloat y; }...

weixin_30786617的博客 215

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

《Vue3+OpenLayers实现多边形绘制与区域处理》摘要:本文介绍如何基于Vue3+OpenLayers+ol-ext实现地图多边形交互功能。核心功能包括:鼠标绘制任意多边形、拖动顶点编辑边界、遮罩显示(非选区变红)、选区剪切显示及功能重置。技术方案采用OpenLayers处理地图渲染,ol-ext实现高级遮罩/剪切效果,ElementPlus提供UI控件。该方案适用于城市规划、园区展示等需要区域标记的场景,完整代码展示了从初始化、绘制、编辑到特效处理的全流程实现。

小彭的博客 963

PLC如何控制电子膨胀阀(暖通空调/制冷系统)

电子膨胀在冷水机空调系统里广泛采用,大部分空调系统都会有电子膨胀阀,但是电子膨胀阀的控制接口和普通电磁阀完全不同,所以想要PLC直接控制电子膨胀阀,还是比较麻烦的,电子膨胀阀可以理解为一个简易步进电机,体积非常小,线圈和转子部分可以分离。下面我们看下PLC如何控制电子膨胀阀。

RXXW_Dor的博客 4761

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

------- Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、基本知识 Foundation—基础框架。框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础。 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了。 即#import 补充:core foundation框

qiuyuhuaihua的专栏 614

【教程4>第4章>第22节】FFT频偏估计方法,导频+cordic频偏估计方法,costas环的性能对比

频偏范围适应性:Costas 环频偏锁定和基于 PN 导频和 CORDIC 算法的频偏估计都可以通过调整参数来适应一定范围的频偏,但 Costas 环的频率捕获范围相对较窄,而基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计对频偏范围较大。在高信噪比条件下,三种方法都可以获得较高的估计精度,但在低信噪比环境中,基于 PN 导频和 CORDIC 算法的频偏估计,基于 FFT 变换频偏估计这两个开环方案相对更具优势,而Costas 环频偏锁定的精度可能会受到较大影响.

FPGA/MATLAB学习教程/源码/项目合作开发 611

【黑马程序员】————Foundation框架02常用类—其他

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- NSNumber/NSValue NSDate 1、NSNumber 1 void test() 2 { 3 NSNumber *num = [NSNumber numberWithInt:10]; 4 5 NSDic...

aa123321621的博客 222

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【黑马程序员】————Foundation框架02常用类—集合类

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- NSArray ->NSMutableArray NSSet ->NSMutableSet NSDictionary ->NSMutableDictionary 1、NSArray/NSMutableArray NSArray :不可变数组...

aa123321621的博客 262

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- NSRange(location length) NSPoint\CGPoint NSSize\CGSize NSRect\CGRect (CGPint CGSize) 1、NSRange(location length) 1 void range() 2 ...

aa123321621的博客 239

【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary

字典 由键-值对组成的数据集合 4种创建字典方式 1>针对单个键值对 直接赋值 1 NSDictionary *dic = [NSDictionary dictionaryWithObject:@"dajie" forKey:@"name"];//直接创建字典 2 id object = [dic objectForKey:@"name"];// 取出name键对应

MarsII的iOS技术博客 367

黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate

———-android培训、Java培训、iOS培训,期待与您交流———-一、NSNumber用途:把基本数据类型的数据保存到NSArray或NSDictionary中。赋值int a = 10; NSNumber *a1 = [NSNumbernumberWithInt:a];//这样就可以向NSArray中添加数值变量了: NSMutableArray *arr = [NSMutableArra

timehzy的博客 663

【黑马程序员】【Foundation框架】数组NSArray和NSMutableArray

1、NSArray的用法示例 int main(int argc, const char * argv[]) { 2    @autoreleasepool { 3 //OC数组 可以存储不同类型的对象 只能存储对象,基本数据类型是不能存储的 4 //OC数组 存储的是对象的指针 5 NSArray *array = [[NS

MarsII的iOS技术博客 338

【黑马程序员】————Foundation框架02常用类—字符类

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 常用类 NSString ->NSMutableString NSArray ->NSMutableArray NSSet ->NSMutableSet NSDictionary ->NSMutableDictionary NSDate ...

aa123321621的博客 236

黑马程序员_object c学习日记⑥_Foundation框架:结构体、集合类、NSString、日期类

Foundation框架: #import 结构体: NSRange(location length):NSMakeRange(2, 4); NSPoint/CGPoint(x, y):CGPointMake(11, 11); NSSize/CGSize(width,height):CGSizeMake(111, 11); NSRect/CGRect(origin, size):CG

u014266774的专栏 632

【黑马程序员】【Foundation框架】常用类NSString和NSMutableString字符串

Foundation 框架中常用的类    OC开发中常用的类 //    NSString    字符串 //    NSMutableString 可变字符串 //    NSArray //    NSmutablearray //    NSSet //    NSMutableSet //    NSDictionary //    NSMutableDictionary

MarsII的iOS技术博客 350

黑马程序员——foundation框架之NSNumber,NSDate,NSValue

NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等等。 NSNumber * intNumber=[NSNumber numberWithInt:100]; NSNumber *floatNumber=[NSNUmber numberWithFloat:100.00]; int i=[intNumber intValue]; if([i

zya7016322的专栏 607

黑马程序员--OC的Foundation框架之日期

NSDate的使用 1.创建日期 NSDate *date1 = [NSDate date]; //创建一个当前时间点的日期对象 NSDate *date2 = [[NSDate alloc] init]; 在当前时间点的基础上累加一个数值之后的日期,单位是秒 明天 NSDate *date3 = [NSDate dateWithTimeIntervalSinceNow

wlh0803的博客 306

黑马程序员_OC_FOUNDATION框架总结

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ---------------------- 1. NSString字符串的使用, NSString对象,一旦创建,就不可以进行再改变,如需要一个可以更改的字符  串对象,需要创建NSString的可变子类NSMutableString.    字符串的创建:    1.2 创

a02341104871的专栏 482

黑马程序员——foundation框架(二)

------- android培训、java培训、期待与您交流! ---------- #import int main(int argc, const char * argv[]) { @autoreleasepool { //CGPoint/NSPoint是CGPoint的一个别名 //用来表示二维平面的一个点

zhang2292的博客 276

黑马程序员————Foundation

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1,NSString 1)类型:  NSString : 不可变字符串  NSMutableString : 可变字符串 2)常用方法 (1)字符串拼接。 方法: appendString : appendFormat :举例: NSMutableString *s

bluedevils99的专栏 318
上一篇: 黑马程序员---学习笔记23:OC基础(10)内存管理
七分热度_HD
博客等级 码龄14年 12粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值