61阅读

小阿姨和表妹-小表妹

发布时间:2018-04-28 所属栏目:二年级

一 : 小表妹

    我有一个小表妹,她叫叶菁菁。
   她的脸蛋圆嘟嘟的,一双大眼睛炯炯有神。还有就是她的眼睫毛卷卷的,漂亮极了。
有的时候表妹很小气。有一次我想跟她要一串香珠,她坚决不给,但是我不会就此罢休的。有几次,我还向她要,可是她还是不给,我彻底服她了。
   我的表妹虽然小气但她还是有许多优点,尤其是她的活泼。有一次,我和她去北海市的中山公园,那是我们从小玩到大的地方。这天,我们又去了,我总觉得提不起精神,大概表妹看出了我的无精打采,表妹一路上做了许多稀奇古怪的动作,只见她一会儿扮孙悟空,一会儿扮猪八戒,逗得我哈哈大笑。
   你看,这就是让我欢喜,又让我无奈的小表妹。

二 : 《C#妹妹和Objective-C阿姨对话录》(03)NSString--再遇狗狗

C#妹妹:哇,冤家路窄啊,这个不是Objective-C阿姨家的狗狗么?
狗狗:日,到底谁跟谁是冤家。。
C#妹妹:不服气呀~再给你弄一陀吃吃。。
view sourceprint?01 #import <Foundation/Foundation.h>

02 #import "Dog.h"

03

04 int main (int argc, const char * argv[])

05 {

06

07 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

08 Dog *d=[Dog new];

09 [d Eat:@"便便" EatQty:1];

10 [d release];

11 [pool drain];

12 return 0;

13 }

狗狗:rangeofstring 《C#妹妹和Objective-C阿姨对话录》(03)NSString--再遇狗狗
C#妹妹:操,升级啦,看姐姐我扒你的皮,毁你的源代码。。
Objective-C阿姨:&#65279;你这个小姑娘为啥总跟我狗狗过不去呀。
C#妹妹:它不吃屎也就罢了,还说什么“你留着自己吃。。。”,肯定程序出问题了,我帮他调试一下。
Objective-C阿姨:&#65279;就是怕你再害它,我昨天给他升级了。。。现在代码是这个样子。。
view sourceprint?01 #import "Dog.h"

02 @implementation Dog

03 -(void) Sound

04 {

05 NSLog(@"汪汪!");

06 }

07 BOOL isTrueFood(NSString *food)

08 {

09 NSRange r=[@",包子,骨头,肉,冰激凌," rangeOfString:[NSString stringWithFormat:@"%@%@%@",@",",food,@","]];

10 if(r.length>0)

11 return(YES);

12 else

13 return(NO);

14

15 }

16 -(void) Eat:(NSString *) food EatQty:(int) count

17 {

18 if(isTrueFood(food)==YES)

19 {

20 NSLog(@"吃%d斤%@",count,food);

21 }

22 else

23 {

24 NSLog(@"你留着自己吃吧。。。");

25 }

26 }

27 @end//Dog

C#妹妹:哇,我们天朝特色的敏感词语过滤技术你都用上了。。。真是同一个世界,同一个噩梦啊。。。
Objective-C阿姨:&#65279;,你能不能少贫点。。。。
C#妹妹:貌似其他都能看懂,除了这一句不太明白
view sourceprint?NSRange r=[@",包子,骨头,肉,冰激凌," rangeOfString:[NSString stringWithFormat:@"%@%@%@",@",",food,@","]];

Objective-C阿姨:&#65279;这个语句里边就是用了两个NSString的方法。一个是实例方法rangeOfString,一个是类方法stringWithFormat。NSString是Cocoa中用于字符串处理的类,比C原始的字符串数组方便了很多,就像.NET的String一样,内置了很多方法。
rangeOfString:功能类似与.NET中的String.IndexOf,判断一个字符串在另一个字符串中的位置,但是返回的类型是NSRange,而不是数字
NSRange的定义估计你一看就知道怎么回事了
view sourceprint?1 typedef struct _NSRange {

2 NSUInteger location;//起始位置

3 NSUInteger length;//长度

4 } NSRange;

其实NSRange.location就相当于.NET中String.IndexOf的返回值。
C#妹妹:但是.NET中如果IndexOf检索不到相应的内容,返回负数,而这个location是NSUInteger类型,看起来这个类型是一种无符号整数啊,如何表示检索不到内容呢?
Objective-C阿姨:有两种方法可以解决这个问题。一种是判断length的长度,如果长度为0,表示没有找到相应的内容,另外一种判断location是否等于NSNotFound。其实NSNotFound就是NSUInteger的最大值LONG_MAX
C#妹妹:挺经典的,.NET里用负数表示检索不到内容,Objective-C里边用最大值表示。
Objective-C阿姨:是的,rangeOfString的用法类似这样
view sourceprint?1 NSString*word=@"tive";

2 NSString *str=@"这是Objective-C家的狗狗!";

3 NSLog(@"在字符串‘%@’中搜索‘%@’",str,word);

4 NSRange r=[str rangeOfString:word];//在str中搜索word 返回NSRange 里边包含{location和length}

5 if(r.location==NSNotFound)//这里判断if(r.length<=0)也是一样的

6 NSLog(@"这句话里没有找到%@",word);

7 else

8 NSLog(@"这句话中从第%lu个字符开始后边%lu个字符是%@",r.location+1,r.length,word);

rangeOfString还可以有个参数 判断是否区分大小写什么的。比如可以这样用
view sourceprint?NSRange r=[str rangeOfString:word options:NSCaseInsensitiveSearch];//NSCaseInsensitiveSearch表示不区分大小写

如果看着还有点晕,再回顾一次Objective-C给对象发送消息的方式吧

rangeofstring 《C#妹妹和Objective-C阿姨对话录》(03)NSString--再遇狗狗

另外一个用到的函数
stringWithFormat:功能类似与.NET中的string.Format,也同样都是类方法,都是用来生成字符串的。用法你看看下面的例子

view sourceprint?NSString *str2=[NSString stringWithFormat:@"%@爱吃%@",@"狗狗",@"包子"]; NSLog(@"%@",str2);//这句话输出 狗狗爱吃包子

弄明白这两个方法,现在在看下面的语句应该就明白了吧。

rangeofstring 《C#妹妹和Objective-C阿姨对话录》(03)NSString--再遇狗狗

view sourceprint?NSRange r=[@",包子,骨头,肉,冰激凌," rangeOfString:[NSString stringWithFormat:@"%@%@%@",@",",food,@","]];

其实是两个方法的嵌套
先向NSString类发送消息stringWithFormat生成食物名称的字符串,比如@“,包子,”
然后再向字符串@",包子,骨头,肉,冰激凌,"其实也就是NSString的实例发送消息rangeOfString检索@“,包子,”是否包含在字符串@",包子,骨头,肉,冰激凌,"中。

扩展:c语言 / c站 / cf


C#妹妹:好一段纠结的代码。。。。
Objective-C阿姨:现在就比较一下NSString与.NET中的System.String吧。
关于字符串长度。
NSString用方法length方法。System.String有Length属性。两者都充分考虑到中文字符的问题,不论英文还是中文日本,每个字符长度加1。
关于字符串比较。Objective-C不能用“==”号,比较字符串内容的,“==”保留了原始的引用比较功能。C#已经把“==”处理成比较直观的内容比较。Objective-C中比较字符串是否相同正确的方法是isEqualToString。
与.NET的System.String相同,NSString同样是不可变的
NSString所谓的改变就是生成新的字符串。与.NET的String.Text.StringBuilder一样,Objective-C提供了NSMutableString,这个类表示的字符串是可以修改的。但是与StringBuilder不同的是,他继承自NSString,意味着基类的方法,他都可以用。

各位同学,本人学习Objective-C时间很短,学习Objective-C其实不是为了Mac、iPhone开发,并没有实用,
其实是一个C#用户学习Objective-C的学习笔记,学习的确切目的是帮助我理解C#,毕竟没有比较是不可能知道所谓C#的特点的
请大家批判的眼光看这个东西,如果发现和其他文章、书籍、评论、资料有冲突,请尽量以其他文章为准。并给我留言
也邀请所有高手积极拍砖

扩展:c语言 / c站 / cf

三 : 小表妹

  我有一个小表妹,她很特别,偏偏在中秋节这天,从她妈妈的肚子里钻出来,所以大家都叫她月月。

  小表妹的眼睛小小的,鼻子塌塌的,头发卷卷的好像来到世界上之前就烫过似的,一双胖胖的小手似乎永远是热乎乎的,小脚不但胖胖的,还很有力,最诱人的是那红彤彤的小脸蛋,好像一个成熟的苹果。

  月月不但长得可爱,还很有趣哩!有一次,外婆在哄月月睡觉,忘记唱摇篮曲了,过了一会儿,“咿咿呀呀”的声音传来,喔,原来月月自己在唱摇篮曲,唱着唱着,便睡着了。

  这就是我的小表妹月月,她的可爱和有趣,不知给我们全家带来了多少快乐呀!

  宁波市实验小学4年级 吴含章

 

四 : 小表妹

  我有一个小表妹,她叫叶菁菁。

  她的脸蛋圆嘟嘟的,一双大眼睛炯炯有神。还有就是她的眼睫毛卷卷的,漂亮极了。

  有的时候表妹很小气。有一次我想跟她要一串香珠,她坚决不给,但是我不会就此罢休的。有几次,我还向她要,可是她还是不给,我彻底服她了。

  我的表妹虽然小气但她还是有许多优点,尤其是她的活泼。有一次,我和她去北海市的中山公园,那是我们从小玩到大的地方。这天,我们又去了,我总觉得提不起精神,大概表妹看出了我的无精打采,表妹一路上做了许多稀奇古怪的动作,只见她一会儿扮孙悟空,一会儿扮猪八戒,逗得我哈哈大笑。

  你看,这就是让我欢喜,又让我无奈的小表妹。

 

本文标题:小阿姨和表妹-小表妹
本文地址: http://www.61k.com/1184569.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1