`
nightkidzxc
  • 浏览: 10964 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Object-C学习笔记

 
阅读更多
类的声明办法
@interface MyClass
{
int num;
NSString* name;
id data; //id表示弱类型
}
-(id)initWithString:(NSString*)aName; //返回值为弱类型函数名为initWithString 参数为aName的函数
+(MyClass*)createMyClassWithString:(NSString*)aName;//“+”表示为一个类函数
-(void)insertObject:(id)anObject atIndex:(NSUInteger)index;//两个参数“-“表示这是一个实例函数




申请内存
numBytesNeeded=imageHeight*imageWidth*sizeof(unsigned char);
unsigned char* pixels =(unsigned char*)malloc(numBytesNeeded) ;
free(pixels);
pixels=NULL;




调用类方法
[对象名 函数名:参数]




id mycar=[car new];


常量NSString
int main()
{
NSAutoreleasePool *pool =[[NSAutorealeasePool alloc] init];
NSString *testString =@"helloworld";
int stringLength=[testString length]; //消息传递机制 向testString对象传递一个length消息
NSLog(@"the length of testString is:%d",stringLength);
[pool drain]
return 0;
}


字符串相等比较
-(BOOL)isEqualToString(NSString *) aString;


int main()
{
NSAutorealsepool *pool=[[NSAutorealsePool alloc] init];


NSString *testString=@"helloworld";
NSString *testString=@"helloMyWorld";


if(![testString isEqualToString:testString2])
NSLog(@"they are different!");
[pool drain];
return 0;
}


字符串比较
int main()
{
NSAutorealsePool *pool =[[NSAutorealsePool alloc] init];
NSString *testString =@"it is my World";
NSString *testString2=@"My World";
NSRange myRange;
myRange.location=6;//从第六个字符开始
myRange.length=8;//往后找8个字符
NSComparisonResult res= //枚举类型 有NSOrderedAscending =-1 NSOrderedSame NSOrderedDescending三种
[testString compare:testString2
options:NSCaseInsensitiveSearch //不区分大小写 NSLiteralSearch 区分大小写 NSNumericSearch字符串的数量
range:myRange];
if(res===NSOrderedSame)
NSLog(@"result is same");
[pool drain];
return 0;
}


字符串处理
-(NSRange)rangeOfString:(NSString *)aString //返回第一次出现的aString位置和长度


-(NSString *)substringFromIndex:(NSUInteger)anIndex //返回从给定位置开始到结尾的字符串对象


-(NSString *)substringToIndex:(NSUInteger)anIndex //从开始到指定位置


-(NSString *)substringWithRange:(NSRange)aRange


-(BOOL)hasPrefix:(NSString *)aString //是否以aString开头


-(BOOL)hasSuffix:(NSString *)aString //是否以aString结尾




可变字符串NSMutableString
int main()
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSMutableString *testString;
testString=[NSMutableString stringWithCapacity:30];//构造一个长度为30的字符串
[testString appendString:@"it is my world"];//在可变字符串后加上一串字符串


NSLog(testString);


NSRange myRange{10,5};
[testString deleteCharactersInRange:myRange];//删除指定范围内的字符
NSLog(testString);


NSString *aString =@"Asia";
[testString insertString:aString atIndex:10]; //在指定位置插入字符串
NSLog(testString);


NSString *bString =@"China";
[testString replaceCharactersInRange:myRange withString:bString];//替代指定范围内的字符
NSLog(testString);
[pool drain];
return 0;
}






静态数组NSArray
int main()
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
int i=0;
NSString *testString=@"monday tuesday wednesday thursday friday saturday sunday";
NSArray *testArray=[testString componentsSeperatedByString " "];//把字符串通过 空格划分开 返回一个数组
int count=[testArray count]; //返回数组的长度
for(;i<count;i++)
{
NSLog("testArray[%i] is %s",i,[[testArray objectAtIndex:i]UTF8String]);//返回对应索引值上的对象 objectAi
}
int indexDay;
if(indexDay=indexOfObject:@"tuesday")
NSLog(@"tuesday index is : %i",indexDay);
[pool drain];
return 0;
}


动态数组NSMutableArray
int main()
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];


NSMutableArray *testMutableArray=[NSMutableArray arrayWithCapicity:16];//创建动态数组
[testMutableArray addObject:@"Monday"]; //数组中插入对象
[testMutableArray addObject:@"Tuesday"];
[testMutableArray addObject:@"Wednesday"];
[testMutableArray addObject:@"Thusday"];
[testMutableArray addObject:@"Firday"];


NSLog(@"initial Array:%s",[[testMutableArray description] UTF8String]); //输出数组详细信息


[testMutableArray insertObject:@"Saturday" atIndex:5];
[testMutableArray insertObject:@"Sunday" atIndex:6];


NSLog(@"initial Array:%s",[[testMutableArray description] UTF8String]);


[testMutableArray removeObjectAtIndex:5]; //去掉索引上的对象
[testMutableArray removeLastObject];
[testMutableArray replaceObjectAtIndex:5 withObject:@"LuckyDay"];
[pool drain];
return 0;
}






字典NSDictionary
int main()
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSDictionary *testDic=[NSDictionary dictionaryWithObjectsAndKeys:@"first",@"monday",@"second",@"tuesday",nil];//创建数据字典
NSLog(@"the dictionary count:%d",[testDic count]);
for(NSString *key in testDic)
NSLog(@"key:%@;value:%@",key,[testDic objectForkey:key]);//根据键值返回对象

[pool drain];
return 0;
}


可变字典NSMutableDictionary
int main()
{
NSAutoreleasePool * pool=[[NSAutoreleasePool alloc] init];


NSMutableDictionary *testDic=[NSMutableDictionary dictionary];//构建可变数据字典


[testDic setObject:@"first" forKey:@"monday"]; //用setObject来向变量字典里加入新对象
[testDic setObject:@"second" forKey:@"tuesday"];
[testDic setObject:@"third" forKey:@"Wednesday"];


for(NSString *key in testDic)
NSLog(@"initial key:%@;value:%@",key,[testDic objectForKey:key]); //objectForKey:key来返回对应的值


[testDic removeObjectForKey:@"tuesday"]; //去除元素
[pool drain];
return 0;


}


//数组跟字典都不能保存C语言的基本类型 如int float等,只能保存对象
分享到:
评论

相关推荐

    Object-C 学习笔记

    Object-C 学习笔记 自己整理的 适合初学者

    object-c学习笔记

    本人是刚刚开始接触到OBJECT-C ,这是我在第一次学习object-C 是的学习笔记,请大家分享,赐教

    Object-C笔记1_代码

    纯属自己学习时候的示例代码,对应我的博文"纯属自己的Object-C 学习笔记(1)-----自定义类的定义和调用".

    object-c入门学习笔记分享-继承.txt

    object-c入门学习笔记分享--继承,初学者可参考

    Object-C Programming

    Object-C Programming 前面7章的学习笔记,如果觉得好可以下载原本进行学习

    Redis全套学习笔记 (带章节目录) 完整版pdf

    它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。 本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、...

    xmljava系统源码-NIiOS:iOS端常用知识点总结:Object-C

    Object-C源码解析 1.你真的了解 load 方法么? load 作为 Objective-C 中的一个方法,与其它方法有很大的不同。它只是一个在整个文件被加载到运行时,在 main 函数调用之前被 ObjC 运行时调用的钩子方法。其中...

    OC学习笔记合集

    OC学习笔记合集,记录整理学习OBJECT-C过程中遇到的问题。

    赵璐python教程答案-Python学习习题笔记-基础篇.pdf

    赵璐python教程答案_Python学习习题笔记---基础篇 基本数据类型: 1:info = 'abc' info[2] = 'd' 结果是什么,为什么会报错呢? 答: TypeError: 'str' object does not support item assignment 字符串是不可变数据...

    python学习笔记(一)-python简介.pdf

    python学习笔记(⼀)---python简介 Python简介 1. Python是⼀种计算机程序设计语⾔。 2. python是⼀种什么样的语⾔? ⾸先,不论我们⽤任何语⾔来开发,都是为了让计算机能够⼲活,⽐如下载⼀个MP3,编写⼀个⽂档等...

    iphone开发学习笔记(1)--NSLog

    iphone开发学习笔记(1)--NSLog

    java学习笔记 初学者必读

    1. 前言 1-4 ...17.6. C风格的格式化输出 17-72 17.7. Building Strings(StringBuilder类) 17-73 17.8. 可变长的参数 17-73 17.9. JAVA5.0 的注释 (Annotation) 17-73 17.10. Callable 和 Future接口 17-74

    day023-xml解析笔记和代码.rar

    O Object 对象(Java对象) : 把xml文件封装成Java对象 M Model 模型 解析过程中用到的类: Document Node(节点) Element (元素) Attribute(属性) - Attr Text(文本) ...

    object-detect-opencv:这是面向对象入门的机器学习教程

    对象检测opencv 所以我们开始吧 1. cap = cv2.VideoCapture(0) 从相机捕获视频 通常,我们必须使用摄像机捕获实时流。 OpenCV为此提供了一个非常简单的界面。 让我们从相机捕获视频(我正在使用... 否则,请使用c

    matlab集成c代码-awesome-object-detection:真棒对象检测

    Matlab集成的c代码物体检测 [目录] 这是有关对象检测的很棒的文章列表。 如果您想根据时间阅读论文,可以参考。 神经网络 快速R-CNN 更快的R-CNN 遮罩R-CNN 轻型头R-CNN 级联R-CNN SPP网 YOLO YOLOv2 YOLOv3 OLT ...

    Javascript Object 对象学习笔记

    new Object() new Object(value) 参数 value  可选的参数,声明了要转换成Number对象、Boolean对象或String对象的原始值(即数字、布尔值或字符串)。JavaScript 1.1之前的版本和ECMAScript Vl不支持该对象。 ...

    net学习笔记及其他代码应用

    privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e) { if(e.Button.Equals(BtnNew)) { //请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。 } } } ...

    javascript学习笔记.docx

    c) 类属性:构造函数本身的属性。 d) 类方法:用合适的函数作为构造函数本身的一个属性。 e) 子类:把原型对象赋值为父类的一个实例,默认父类为Object的实例。同时还要将prototype.constructor赋值为子类的构造函数...

    《JavaScript高级编程》学习笔记之object和array引用类型

    本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看看把。 1. Object类型  大多数引用类型值都是Object类型的实例;而且Object也是ECMAScript中...

    2009 达内Unix学习笔记

    q或Ctrl+C 退出; /字符串 从上往下查找匹配的字符串; ?字符串 从下往上查找匹配的字符串; n 继续查找。 四、退出命令 exit 退出; DOS内部命令 用于退出当前的命令处理器(COMMAND.COM) 恢复前一个命令...

Global site tag (gtag.js) - Google Analytics