5 3.Foundation2-NSString的创建
NSSTring的创建
1)、创建常量字符串
NSString *string = @”This is a String!”;
2)、创建空字符串,给予赋值
NSString *string = [ [NSString alloc] init];
String = @”This is a String! ”;
3)、通过字符串创建字符串
[[NSString alloc] initWithString : @”This is a String!”];
// 或者 [[NSString alloc] initWithFormat : @”My age is %i”, 17 ];
4)、用标准C创建字符串
char *cString = “这是一串中文”;
[[NSString alloc] initWithCString : cString encoding:NSUTF8StirngEncoding];
或者 [[NSString alloc] initWithUTF8String : cString];
//字符串编码可以在NSString.h中查阅
例一:
Main.m
// // main.m // Foundation1 - 结构体 // // Created by qwz on 13-12-9. // Copyright (c) 2013年 renhe. All rights reserved. //
#import <Foundation/Foundation.h>
#pragma mark NSString的创建 void stringCreate(){ //这种方式创建出来的字符串是不需要释放的 NSString *str1 = @"A String!"; NSString *str2 = [[NSString alloc] init];
str2 = @"A String!"; [str2 release];
NSString *str3 = [[NSString alloc] initWithString:@"A String!"]; [str3 release]; //不需要管理内存 str3 = [NSString stringWithString:@"A String!"];
NSString *str4 = [[NSString alloc] initWithUTF8String:"A String!"]; [str4 release]; str4 = [NSString stringWithUTF8String:"A String!"];
NSString *str5 = [[NSString alloc] initWithFormat:@"My age is %i and height is %.2f",19, 1.55f];
// 这句代码放在中间会造成2个错误; // 1、前面创建的字符串没有被释放 // 2、后面创建的字符串会释放过度,造成野指针错误 //str5 = [NNString stringwithFormat::@"My age is %i and height is %.2f",19, 1.55f]
NSLog(@"str5:%@", str5); [str5 release]; str5 = [NSString stringWithFormat:@"My age is %i and height is %.2f",19, 1.55f]; }
void stringCreate2(){ //从文件中读取文本 NSString *path = @"/users/apple/Desktop/test.txt"; //这个方法已经过期,不能解析中文 //NNString *str1 = [NNString stringWithContentOfFile:path];
//定义一个NSError变量 NSError *error;
//指定字符串编码为UTF-8 //NSString *str1 = [NSStrng stringWithContentOfFile:path encoding:NSUTF8StringEncoding error:nil]; --该行是正确的 NSString *str1 = [NSString stringWithContentOfFile:path encoding:NSUTF8StringEncoding error:&error];
if(error == nil){ NSLog(@"读取文件成功:%@", str1); }else{ NSLog(@"读取文件失败:%@", error); }
NSURL *url = [NSURL URLWithString:@"/users/apple/Desktop/test.txt"]; NSString *str2 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@", str2);
NSURL *url2 = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *str3 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@", str3); }
int main(int argc, const char * argv[]) { @autoreleasepool { //stringCreate(); stringCreate2(); } return 0; }
|
相关推荐
例如,NSData、NSArray、NSDictionary、NSString等常用类都属于Foundation框架。在Objective-C项目中,通常会首先导入这个头文件,确保能使用这些基本的类和对象。 其次,`#import <UIKit/UIKit.h>`则引入了UIKit...
Foundation框架中的`NSString`类提供了一系列强大的方法来操作字符串,包括查找、替换、拼接等功能。`NSMutableString`则允许对字符串进行修改。 #### 数组 数组是存储同类型数据的容器。`NSArray`和`...
其他常用的Foundation类包括`NSString`(不可变字符串)、`NSArray`(有序对象集合)和`NSDictionary`(键值对集合)。 5. **Xcode开发环境**: 在Apple的开发环境中,Xcode是编写Objective-C程序的主要工具。它...
### 2. 自定义属性 - **Synthesize**:自动为属性生成getter和setter方法。 - **Dynamic**:动态地处理属性访问,通常用于KVC或KVO等场景。 ### 3. UITableView与UICollectionView - **UITableView**:用于展示列表...
#### 2. KVC(Key Value Coding)与KVO(Key Value Observing) - **KVC**:允许对象通过键来获取和设置值,而不必了解对象内部的具体实现。 - **KVO**:用于观察对象属性的变化,并在属性变化时收到通知。 #### 3....
- `+ (NSBundle *)bundleWithPath:(NSString *)path`: 创建并返回一个用给定路径初始化的程序包。 - **实例方法**: - `-(NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext`: 返回给定名称和...
### 2. 类与协议 - **Category**:类别可以扩展已有类的功能,但不能添加实例变量。 - **Protocol**:协议定义了一组方法,用于实现多继承和接口定义,常用于代理模式。 - **Inheritance**:Objective-C支持单继承...
- 用格式化的字符串创建`NSString`。 - **[NSDictionary dictionaryWithObjectsAndKeys:ankush, @"TA", janestudent, @"Student", nil];** - 用键值对创建`NSDictionary`。 - **[NSArray ...
- `stringWithFormat:`方法允许我们根据指定的格式创建字符串,它可以接受参数并将其插入到格式化字符串中,如`NSString* str5 = [NSString stringWithFormat:@"Now is: %@", someDate];`。 5. **其他方法**: - ...
2. **Objective-C类和对象**:类是Objective-C中的蓝图,用于创建对象。对象是类的实例,具有特定的属性和行为。了解如何声明、初始化和使用类及对象是学习Objective-C的关键。 3. **消息传递**:Objective-C使用...
2. `md5Data(_:)` 同样接受一个`String`,但返回的是`Data`类型的MD5哈希值,适用于需要原始二进制数据的情况。 3. `md5(_:)` 的另一个重载版本,直接处理`Data`对象,计算其MD5哈希并返回16进制字符串。 使用这个...
1. 创建字符串:可以使用`@""`字面量或者`+[NSString stringWithString:]`等方法创建字符串。 2. 字符串比较:`= `比较的是指针,`isEqualToString:`比较的是内容。 3. 大小写转换:`uppercaseString`和`...
#### 2. 语法基础 - **2.1 数据类型** - **基本数据类型**:包括整型 (`int`, `long`), 浮点型 (`float`, `double`) 等。 - **NSObject**:所有 Objective-C 对象类的基类。 - **2.2 变量与常量** - **变量声明*...
5. **CFBase.h**:这是CoreFoundation的基础头文件,包含通用的类型定义、宏和函数,如`CFTypeID`和`CFRelease`。它是其他所有CoreFoundation类型的基类。 6. **CFSet**:`CFSet.h`中的`CFSetRef`是一个不重复元素...
2. **NSString**:NSString也是Foundation框架的一部分,它代表了不可变的Unicode字符串。NSString提供了丰富的字符串操作方法,如拼接、查找、替换等。NSString对象可以由字符数组、C语言字符串(C字符串)或者其他...
在iOS和macOS开发中,Objective-C(OC)是主要的编程语言,而Foundation框架则是OC的核心库,它为应用程序提供了基本的数据管理和服务。本文将深入探讨OC Foundation框架中的重要概念、常用类以及它们的使用方法。 ...
《Foundation Framework:深入理解苹果核心框架》 Foundation框架是苹果公司为开发者提供的核心框架之一,主要应用于macOS、iOS、watchOS以及tvOS等操作系统上。该框架包含了处理基本类型数据(如字符串、数字和...
- **格式化字符串**:可以通过`[NSString stringWithFormat:]`方法来创建格式化的字符串,例如`[NSString stringWithFormat:@"Hello, %s!", name]`。 - **NSMutableString**: - **定义**:NSMutableString继承自...
2. **NSArray**: 用于存储不可变对象数组的类,提供了一组操作数组的方法,如添加、删除、查找元素等。 3. **NSMutableArray**: NSArray的子类,支持动态修改数组内容。 4. **NSDictionary**: 存储键值对的数据结构...