1)rangeOfString:截取指定字符串的长度;
NSRange rRange = [newEmotiontextrangeOfString:seperateroptions:NSNEXTSTEPStringEncodingrange:pointer];
2) substringToIndex:7:截取从0 索引到指定索引(7)长度的字符串
3) substringFromIndex:9:截取从指定索引(9)到末尾长度的字符串
4) NSRange range = NSMakeRange(0,7);截取从指定索引(0)到指定(7)长度的字符串
5) substringWithRange:range:截取从指定索引(0)到指定(7)长度的字符串
6) isEqualToString:@"p://www":比较字符串包含关系,区分大小写
7) stringWithFormat:格式化字符串。
8)stringByAppendingString:
NSString* str2 = @"";//必须初始化才行,不然没有效果的
str2 = [str1 stringByAppendingString:@","];
9)去空格
NSString
*cleanString = [text stringByTrimmingCharactersInSet:[
NSCharacterSet
whitespaceAndNewlineCharacterSet]];
9) c++ string转NSString
string str = [aNSString UTF8String];
10)NSString转c++ string
string str("testStr");//前提是这个string是以utf-8编码的
NSString * aString = [NSString stringWithUTF8String:str.c_str()];
iOS 头文件中NSData的定义如下:说明这是一个缓冲区。
包含首地址和长度,那么跟NSString相比的话,NSData像是NSString的游标。
可以获取任意长度的内容,但是NSData本身没有存储实质内容。
@interface NSData :NSObject <NSCopying,NSMutableCopying,NSCoding>
- (NSUInteger)length;
- (constvoid *)bytes;
@end
//1.NSString 转换成NSData对象
NSData* data = [@"testdata"dataUsingEncoding:NSUTF8StringEncoding];
//2.NSData转换成NSString
NSString* result = [[NSStringalloc]initWithData:data encoding:NSUTF8StringEncoding];
//3.NSData转换成char*这个应该最简单
char *test = (char*)[data bytes];
//4.char*转换成NSData对象
Byte* tempData =malloc(sizeof(Byte)*16);
NSData* content = [NSDatadataWithBytes:tempDatalength:16];
NSIndexPath是一个对象,它用来表示一个树形的记录地址。
比如下图1:
Method:
+(id) indexPathWithIndex:(NSUIInterger) index,创建一个节点的indexPath。
+(id)indexPathWithIndex:(NSUIInterger*)indexs Length:(NSUIInterger)Length.
其中,indexs是一个数组,用来出事后indexpath对象,length是深度,即数组的长度。
如何使用:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
第一次看到NSIndexPath是在UITableView的实例中,请参考我的博文 http://blog.csdn.net/hherima/article/details/8628829
查看UITableView的帮助文档我们会注意到UITableView有两个Delegate分别为:dataSource和delegate。
dataSource 是UITableViewDataSource类型,主要为UITableView提 供显示用的数据(UITableViewCell),指定UITableViewCell支持的编辑操作类型(insert,delete和 reordering),并根据用户的操作进行相应的数据更新操作,如果数据没有更具操作进行正确的更新,可能会导致显示异常,甚至crush。
delegate 是UITableViewDelegate类型,主要提供一些可选的方法,用来控制tableView的选择、指定section的头和尾的显示以及协助完成cell的删除和排序等功能。
提到UITableView,就必须的说一说NSIndexPath。UITableView声明了一个NSIndexPath的类别,主要用 来标识当前cell的在tableView中的位置,该类别有section和row两个属性,前者标识当前cell处于第几个section中,后者代 表在该section中的第几行。
NSURL其实就是我们在浏览器上看到的网站地址,这不就是一个字符串么,为什么还要在写一个NSURL呢,主要是因为网站地址的字符串都比较复杂,包括很多请求参数,这样在请求过程中需要解析出来每个部门,所以封装一个NSURL,操作很方便:
结果:
NSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。
正常来说,
id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];和id myObj = [[MySpecialClass alloc] init];是一样的。
但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。
因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。
比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:
[[NSClassFromString(@"NSTask") .....]] 而不要直接使用[NSTask ...]这种写法。
NSClassFromString的好处是:
1 弱化连接,因此并不会把没有的Framework也link到程序中。
2 不需要使用import,因为类是动态加载的,只要存在就可以加载。因此如果你的toolchain中没有某个类的头文件定义,而你确信这个类是可以用的,那么也可以用这种方法。