1.2 NSString字符串

一.字符串的创建

1 // 直接创建字符串
2 NSString *str1 = @"jack";
3 // 调用stringWithFormat方法创建字符串
4 NSString *str2 = [NSString stringWithFormat:@"age = %i, height = %f", 25, 1.75];

二.计算字符串的长度

1>C语言字符串计算长度

1 char name[] = "jack";
2 size_t size1 = sizeof(name); // 计算出来的长度包含了 \0
3 size_t size2 = strlen(name);  // 计算出来的长度不包含 \0

?2>OC字符串计算长度

1 NSString *str1 = @"jack";
2 NSUInteger len = [str1 length];

三.结构体作为对象的属性

10 #import <Foundation/Foundation.h>
11 // 日期结构体
12 typedef struct {
13     int year;
14     int month;
15     int day;
16 } Date;
17 @interface Student : NSObject
18 {
19     @public // 使成员变量为公有
20     NSString *_name; // 姓名
21     Date _birthday; // 生日
22 }
23 // 说出姓名和生日方法
24 - (void)say;
25 @end
26 @implementation Student
27 // 说出姓名和生日方法
28 - (void)say
29 {
30     NSLog(@"姓名 = %@, 生日 = %i年 - %i月 - %i日", _name, _birthday.year, _birthday.month, _birthday.day);
31 }
32 @end
33 int main(int argc, const char * argv[]) {
34     @autoreleasepool {
35
36         // 创建一个人
37         Student *stu = [Student new];
38
39         // 姓名
40         stu->_name = @"jack";
41
42          //  生日
43         // 方法一:强制转换
44         stu->_birthday = (Date){2015, 8, 27};
45
46         // 方法二:定义一个新的结构体,给d赋值,将d赋值给birthday
47         Date d = {2015, 8, 20};
48         stu->_birthday = d;
49
50         // 方法三:分别赋值
51         stu->_birthday.year = 2015;
52         stu->_birthday.month = 7;
53         stu->_birthday.day = 19;
54
55         // 调用say方法
56         [stu say];
57
58     }
59     return 0;
60 }

四.对象作为返回值类型

  1 #import <Foundation/Foundation.h>
  2 #pragma mark - 弹夹
  3 @interface Clip : NSObject
  4 {
  5 @public
  6     int _bullet; // 子弹
  7 }
  8 // 上子弹的方法
  9 - (void)addBullet;
 10 @end
 11 @implementation Clip
 12 - (void)addBullet
 13 {
 14     // 上子弹
 15     _bullet = 10;
 16 }
 17 @end
 18 #pragma mark - 枪
 19 @interface Gun : NSObject
 20 {
 21     Clip *clip; // 弹夹
 22 }
 23 // 射击
 25 - (void)shoot:(Clip *)c;
 26 @end
 27 @implementation Gun
 28 - (void)shoot:(Clip *)c
 29 {
 30     // 判断有没有弹夹
 31     if (c != nil) { // nil == null == 没有值
 32         // 判断有没有子弹
 33         if (c->_bullet > 0) {
 34             c->_bullet -= 1;
 35             NSLog(@"打了一枪 %i", c->_bullet);
 36         }else
 37         {
 38             NSLog(@"没有子弹了");
 39         }
 40     }else
 41     {
 42         NSLog(@"没有弹夹, 请换弹夹");
 43     }
 44 }
 45 @end
 46 #pragma mark - 士兵
 47 @interface Soldier : NSObject
 48 {
 49 @public
 50     NSString *_name;
 51     double _height;
 52     double _weight;
 53 }
 54 // 开火
 55 - (void)fire:(Gun *)gun;
 56 // 开火, 给士兵一把枪和一个弹夹
 57 - (void)fire:(Gun *)gun clip:(Clip *)clip;
 58 @end
 59 @implementation Soldier
 60 //- (void)fire:(Gun *)gun
 61 //{
 62 //    [gun shoot];
 63 //}
 64 - (void)fire:(Gun *)gun clip:(Clip *)clip
 65 {
 66     // 判断是否有枪和子弹
 67     if (gun !=nil &&
 68         clip != nil) {
 69
 70         [gun shoot:clip];
 71     }
 72 }
 73 @end
 74 #pragma mark - 商店
 75 @interface Shop : NSObject
 76 // 买枪
 77 + (Gun *)buyGun:(int)money;
 78 // 买弹夹
 79 + (Clip *)buyClip:(int)money;
 80 @end
 81 @implementation Shop
 82 + (Gun *)buyGun:(int)money
 83 {
 84     // 1.创建一把Qiang
 85     Gun *gun = [Gun new]; // 通过new创建出来的对象存储在堆中, 堆中的数据不会自动释放
 86     // 2.返回一把Qiang
 87     return gun;
 88 }
 89 + (Clip *)buyClip:(int)money
 90 {
 91     Clip *clip = [Clip new];
 92     [clip addBullet];
 93     return clip;
 94 }
 95 @end
 96 #pragma mark - 程序入口
 97 int main(int argc, const char * argv[]) {
 98
 99     // 1.创建ShiBing
100     Soldier *sp =[Soldier new];
101     sp->_name = @"屎太浓";
102     sp->_height = 1.88;
103     sp->_weight = 100.0;
104
105     // 2.创建一把Qiang
106 //    Gun *gp = [Gun new];
107
108 //    Shop *shop = [Shop new];
109     // 2.购买ShouQiang
110     Gun *gp = [Shop buyGun:888];
111
112     // 3.创建Danjia
113 //    Clip *clip = [Clip new];
114 //    [clip addBullet];
115
116     // 3.购买Danjia
117     Clip *clip = [Shop buyClip:100];
118
119     // 4.让士兵开枪
120     [sp fire:gp clip:clip];
121
122     return 0;
123 }
时间: 2024-10-05 11:39:19

1.2 NSString字符串的相关文章

黑马程序员---OC基础9【Foundation框架】【NSString介绍】【NSURL读写字符串】【NSString字符串比较】【NSString前后缀检查及搜索】【NSRange使用】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [Foundation框架] 1.Foundation框架介绍 1)Foundation框架概念 框架是由许多类.方法.函数.文档按照一定的逻辑组织起来的集合 以便使研发程序变得 更容易在OS X下的Mac操作系统中大约有80个框架为所有程序开发奠定基础的框架称为Foundation 框架 2)Foundation框架的作用 Foundation框架是Mac\iOS中其他框架的基础 Foundat

OC Foundation & NSString 字符串

一 Foundation 简介 Foundation 框架是苹果公司提供给开发人员,提高效率的的工作库. Foundation中提供了了多类,定义在头文件中.例如NSString类: #import <Foundation/NSSortDescriptor.h> #import <Foundation/NSStream.h> #import <Foundation/NSString.h> #import <Foundation/NSTextCheckingResu

NSString字符串

NSString字符串的内容定义以后是不能修改的,是不可变的. 字符串的创建 //1.快速创建 NSString *str1=@"这是一个字符串!"; NSLog(@"str1=%@",str1); //2.alloc创建的字符串//以被1所替代 NSString *str2=[[NSString alloc]initWithString: @"通过alloc创建字符串"]; NSLog(@"str1=%@",str2); /

ios NSString字符串如何转为NSNumber(已解决)

今天同事问我 NSString字符串如何转为NSNumber,思考了一下解决了 思路:先将字符串转为NSInteger类型,再通过NSNumber的创建方法@(数字)即可实现 NSString * str = @"890909"; // 字符串转为NSInteger类型 NSInteger num = [str integerValue]; NSLog(@"%li",num); // 字符串转为NSNumber对象类型 NSNumber * nums = @(num

NSString字符串全部API作用解释

iOS8最新API和一些生僻API,做了红色标注,便于大家查阅. //0.定义一个无符号整型 两个字节 范围[0,65535] typedef unsigned short unichar; //1.提前进入以下六个类告诉编译器,六个都是类的名称 @class NSData,NSArray,NSDictionary,NSCharacterSet,NSURL,NSError,NSLocale; //2.异常处理字符串,控制台出错信息报告 FOUNDATION_EXPORTNSString *con

ios开发-CGRect,CGSize等结构体与NSString字符串互相转换

ios/oc中的结构体如何 转为  一个 NSString 方法呢? 或者一个字符串如何转换为 结构体呢? 系统已经为我们提供了很多好用的方法了! 此处列举一下: 结构体转字符串 NSString *NSStringFromCGPoint(CGPoint point); NSString *NSStringFromCGVector(CGVector vector); NSString *NSStringFromCGSize(CGSize size); NSString *NSStringFrom

iOS NSString 字符串处理:截取字符串、匹配字符串、分隔字符串

用到老是要去找,还是记下来方便!!! 1.截取字符串 NSString*string [email protected]"tate_zwt";string = [string substringToIndex:3];//截取下标7之后的字符串WTLog(@"截取的值为:%@",string); 2.匹配字符串NSString*string [email protected]"tate_zwt";NSRangerange = [stringrang

NSString字符串类型-学习总结

1.字符串的创建 (1)创建常量字符串 NSString *str = @"This is a String"; //str是变量名 (2)创建空的字符串,给字符串赋值 NSString *str = [NSString alloc] init]; str = @"科比 布莱恩特"; //直接赋值 (3)花样赋值 <1>使用初始化方法:initWithFormat:根据一定的字符串格式来初始化字符串对象,将格式串中的内容写入字符串对象空间内 NSStri

NSString 字符串

示例1: NSString *str1 = @"hello world";   //在oc当中,用NSString用来表示字符串 NSLog(@"%@",str1);  //%@是oc当中,对象的格式符 示例2: int a = 5; NSString *str2 = [NSString stringWithFormat:@"身高是:%i",a]://stringWithFormat:这个类方法,打印格式化的字符串 NSLog(@"%@