------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Foundation
Foundation框架是其它所有ios框架的基础
Foundation框架包含了很多开发中常用的数据类型:结构体、枚举、类
使用Foundation需要引入语法
#import <Foundation/Foundation.h>
Foundation/NSObjCRuntime.h的路径:
应用程序/Xcode.app右击显示包内容->
/Applications/Xcode.app/Contents/Developer(开发者)/Platforms(平台)/iPhoneOS.platform/Developer(开发者)/SDKs(开发包)/iPhoneOS.sdk/System(系统)/Library(库)/Frameworks(框架)/Foundation.framework/Headers(头文件)
NSObjCRuntime.h中含有NSLog的声明,Foundation.h含有所有Foundation框架方法的声明
结构体
NSRange(location length) \\范围
例:
{1,2,3,4}
location = 2;
lenght =2;
return 3,4;
NSPoint\CGPoint(x,y)//点 点坐标信息
NSSize\CGSize(width,hight)//尺寸信息
NSRect\CGRect(CGPoint,CGSize)//矩形信息
使用这些函数的前提是添加CoreGraphics框架
//查找某个字符串在str中的范围
NSString *str = @"a b cc";
//如果找不到,lenght=0,location=NSNotFound==-1
NSRange range = [str rangeOfString:@"java"];
NSLog(@"loc = %ld,lenght=%ld",range.location,range.length);
//range.location == NSUInteger == unsigned long
// unsigned long l = -1;
NSLog(@"%d",NSNotFound);
main.m->
//
// main.m
// 01结构体
//
// Created by Whome on 14-11-13.
// Copyright (c) 2014年 Whome. All rights reserved.
//
#import <Foundation/Foundation.h>
/*
NSRange(location length) \\范围
NSPoint\CGPoint(x,y)//点 ui点坐标信息
NSSize\CGSize(width,hight)//ui尺寸信息
NSRect\CGRect(CGPoint,CGSize)//ui矩形信息
*/
int main(int argc, const char * argv[]) {
//c 定义结构
struct date{
int year;
int month;
int day;
};
struct date d1 = {.year=2012,.month=1,.day=2};
struct date d2 = {2011,9,7};
//oc结构
NSRange r1 = {2,4};//oc不用
NSRange r2 = {.location = 10,.length = 30};//oc不用
NSRange r3 = NSMakeRange(2,4);
NSString *str = @"a b cc dd ";
//查找某个字符串在str中的范围
//如果找不到,lenght=0,location=NSNotFound==-1
NSRange range = [str rangeOfString:@"java"];
NSLog(@"1 loc = %ld,lenght=%ld",range.location,range.length);
NSRange range2 = [str rangeOfString:@"a"];
NSLog(@"2 loc = %ld,lenght=%ld",range2.location,range2.length);
//range.location == NSUInteger == unsigned long
// unsigned long l = -1;
NSLog(@"%ld",NSNotFound);
//结构体 ui点
CGPoint p1 = NSMakePoint(100,20);
NSPoint p2 = CGPointMake(20,20);
//ui尺寸
NSSize s1 = CGSizeMake(100,50);
NSSize s2 = NSMakeSize(100, 50);
CGSize s3 = NSMakeSize(200, 50);
//矩形
CGRect rect1 = CGRectMake(0, 0, 100,50);
//rect1 在第一次初始化之后无再再初始化。。。
//rect1 = {
{8,10},{100,50}};
//rect1 = {p1,s1};
//矩形的其方赋值方式
CGRect rect2 = {
{8,10},{100,50}};
CGRect rect3 = {p1,s1};
CGRect rect4 = {CGPointZero,CGSizeMake(100, 50)};
NSLog(@"x=%f,y=%f,widht=%f,height=%f",rect1.origin.x,rect1.origin.y,rect1.size.width,rect1.size.height);
//将结构体转成字符串
NSLog(@"p1:%@" , NSStringFromPoint(p1));
NSLog(@"p2:%@" , NSStringFromPoint(p2));
NSLog(@"s1:%@" , NSStringFromSize(s1));
NSLog(@"s2:%@" , NSStringFromSize(s2));
NSLog(@"s3:%@" , NSStringFromSize(s3));
NSLog(@"rect1:%@" , NSStringFromRect(rect1));
//
//相等
//CGPointZero == CGPointMake(0, 0);
//CGSizeZero ==CGSizeMake(0, 0);
//CGRectZero == {
{0, 0}, {0, 0}};
//比较两个点是否相同 (x,y)
NSLog(@"比较两个点是否相同 (x,y):%d" , CGPointEqualToPoint(CGPointMake(0, 0), CGPointZero));
//比较尺寸是否相同 (widht,height)
NSLog(@"比较尺寸是否相同 (widht,height):%d" , CGSizeEqualToSize(CGSizeMake(0, 0), CGSizeZero));
//比较矩形是否相同 (CGPoint,CGSize)
//rect直接使用无效,
// NSLog(@"比较矩形是否相同 (widht,height):%d" , {CGPointZero,CGSizeZero} , CGRectZero));
CGRect rect5 = {CGPointZero,CGSizeZero};
NSLog(@"比较矩形是否相同 (widht,height):%d" , CGRectEqualToRect(rect5, CGRectZero));
CGRect rect6 = {
{10,20},{10,10}};
//矩形框是否包含点
NSLog(@"矩形框是否包含点 {x:10-20,y:20-30} : {x=20,y=20}:%d" , CGRectContainsPoint(rect6, CGPointMake(20,20)));
//矩形框是否包含矩形框
NSLog(@"矩形框是否包含矩形框 {x:10-20,y:20-30} : {x:11-16,y:22-37} :%d" , CGRectContainsRect(CGRectMake(10, 20, 10, 10), CGRectMake(11, 22, 5, 15)));
return 0;
}
//实现一个函数,返回一个ui矩形
CGRect myRect(CGFloat x,CGFloat y,CGFloat width,CGFloat height)
{
CGRect rect;
rect.origin.x = x;
rect.origin.y = y;
rect.size.width = width;
rect.size.height = height;
return rect;
}
控制台:
2014-11-13 22:25:52.248 01结构体[660:303] 1 loc = 9223372036854775807,lenght=0
2014-11-13 22:25:52.251 01结构体[660:303] 2 loc = 0,lenght=1
2014-11-13 22:25:52.252 01结构体[660:303] 9223372036854775807
2014-11-13 22:25:52.253 01结构体[660:303] x=0.000000,y=0.000000,widht=100.000000,height=50.000000
2014-11-13 22:25:52.254 01结构体[660:303] p1:{100, 20}
2014-11-13 22:25:52.254 01结构体[660:303] p2:{20, 20}
2014-11-13 22:25:52.255 01结构体[660:303] s1:{100, 50}
2014-11-13 22:25:52.256 01结构体[660:303] s2:{100, 50}
2014-11-13 22:25:52.257 01结构体[660:303] s3:{200, 50}
2014-11-13 22:25:52.258 01结构体[660:303] rect1:{ {0, 0}, {100, 50}}
2014-11-13 22:25:52.259 01结构体[660:303] 比较两个点是否相同 (x,y):1
2014-11-13 22:25:52.260 01结构体[660:303] 比较尺寸是否相同 (widht,height):1
2014-11-13 22:25:52.260 01结构体[660:303] 比较矩形是否相同 (widht,height):1
2014-11-13 22:25:52.261 01结构体[660:303] 矩形框是否包含点 {x:10-20,y:20-30} : {x=20,y=20}:0
2014-11-13 22:25:52.262 01结构体[660:303] 矩形框是否包含矩形框 {x:10-20,y:20-30} : {x:11-16,y:22-37} :0
Program ended with exit code: 0
Too few Arguments to function call,expected 4,have 2
NSString :不可变字符串
NSMutable