- 浏览: 217958 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
15197442045:
求demo,谢谢
IOS 后台执行代码(voip socket) -
15197442045:
我用了你这种方式,还是不能后台运行~~~~~
IOS 后台执行代码(voip socket) -
wlpych:
这个m_socket,从哪获得啊,什么方法?用的pjsip。求 ...
IOS 后台执行代码(voip socket)
NSString 的理解
- 博客分类:
- iphone基础开发
1, 创建一个NSString对象
简单方法:
NSString *aString = @"我是个NS字符串!"; //除了引号外加@, 没别的区别
*上面的不需要操心内存管理哟~
复杂一点儿:(需要内存管理的)
NSString *aString = [[NSString alloc] initWithFormat:@"这也是个NS字符串!"];
*initWithFormat是其中一个初始化方法,常用的还有
//从一个文件读取需要的内容- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error//从一个地址读取需要的内容- (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error
*以上方法得到的NSString的retain值为1,所以记得release掉阿~~
2,使用一个NSString对象
NSString *aString = @"This is a NSString"; NSLog(aString); //在控制台输出信息,该函数方法需要一个NSString对象作为参数 NSLog("这样不会好使的"); NSLog(@"这样就会好使拉~");
再比如设置一个UIView的标题:
[UIView setTitle:aString]; [UIView setTitle:@"标题"]; UIView.title = aString;
3,释放NSString
[aString release]; //对象将被系统释放掉咯
*记得不要释放直接用 = @”xxx” 的NSString对象哟,系统会管的~
4,快速使用一个NSString
NSLog([NSString stringWithFormat:@"一个NS字符串"]);
//这种快速方法返回的是一个retain为1,autorelease的对象,不需要操心它的内存管理
5,常用方法
我喜欢NSString的地方就在于很多方法非常方便,比如:
nString = [aString substringToIndex:4]; //nString将得到aString中的前四个字符
6,常见错误
NSString *aString = [NSString alloc] initWithString:nil];(会出错,相当于用nil初始化)
NSString *aString = [NSString alloc] initWithString:@""];(ok)
<!--StartFragment-->
7,字符串链接
将几个NSString字符串进行连接
NSString* str1; NSString* str2
1. NString* str3= [NSString initWithFormat:@"%@,%@", str1, str1];
2. NString* str3= [string1 stringByAppendingString:str2];
3 . NString* str3= [string stringByAppendingFormat:@“%@,%@”,str1, str2];
<!--EndFragment-->8,类型转换
int 到NSString :[NSString stringWithFormat:@"%d",myInt];
NSString到int,float都是 int myInt = [str1 intValue];
日期转为NSString
<!--StartFragment-->
<!--StartFragment-->
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter
setDateFormat:@"MM-dd-hh-mm-ss"]; NSString*locationString=[formatter
stringFromDate: [NSDate date]]; NSArray*timeArray=[locationStringcomponentsSeparatedByString:@"-"]; float value_D= [[timeArray objectAtIndex:1]floatValue];
float value_h= [ [timeArray objectAtIndex:2]floatValue];
float value_m= [ [timeArray objectAtIndex:3]floatValue];
float value_s= [ [timeArray objectAtIndex:4]floatValue];
float value_All=value_D*24*60*60+value_h*60*60+value_m*60+value_s; [formatter release]; 9,常见方法
<!--StartFragment-->
<!--StartFragment-->
NSString方法 +(id) stringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误 +(id) stringWithContentsOfURL:url encoding:enc error:err 创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误 +(id) string 创建一个新的空字符串 +(id) stringWithString:nsstring 创建一个新的字符串,并将其设置为nsstring -(id)initWithString:nsstring 将分配的字符串设置为nsstring -(id) initWithContentsOfFile:path encoding:enc error:err 将字符串设置为path制定的文件的内容 -(id) initWithContentsOfURL:url encoding:enc error:err 将字符串设置为url(NSURL
*)url的内容,使用字符编码enc,如果非零,则返回err中的错误 -(id) (UNSIgned int)length 返回字符串中的字符数目 -(unichar)characterAtIndex:i 返回索引i的Unicode字符 -(NSString *)substringFromIndex:i 返回从i开始知道结尾的子字符串 -(NSString *)substringWithRange:range 根据指定范围返回子字符串 -(NSString *)substringToIndex:i 返回从该字符串开始到索i的子字符串 -(NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写 -(NSComparator *)compare:nsstring 比较两个字符串 -(BOOL)hasPrefix:nsstring 测试字符串是否以nsstring开始 -(BOOL)hasSuffix:nsstring 测试字符串是否以nsstrng结尾 -(BOOL)isEqualToString:nsstring 测试两个字符串是否相等 -(NSString *) capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写) -(NSString *)lowercaseString 返回转换为小写的字符串 -(NSString *)uppercaseString 返回转换为大写的字符串 -(const char*)UTF8String 返回转换为UIF-8字符串的字符串 -(double)doubleValue 返回转换为double的字符串 -(float)floatValue 返回转换为浮点值的字符串 -(NSInteger)integerValue 返回转换为NSInteger整数的字符串 -(int)intValue 返回转换为整数的字符串 NSMutableString方法 +(id) stringWithCapacity:size 创建一个字符串,初始包含size的字符 -(id) initWithCapacity:size 使用初始容量为size的字符串来初始化字符串 -(void) setString:nsstring 将字符串设置为nsstring -(void) appendString:nsstring 在接收者的末尾附加nsstring -(void) deleteCharactersInRange:range 删除指定range中的字符 -(void) insertString:nsstring atIndex:i 以索引i为起始位置插入nsstring -(void) replaceCharactersInRange:range withString:nsstring 使用nsstring替换range指定的字符 -(void) replaceOccurrencesOf String:nsstring withString:nsstring2 options:opts range:range 根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)
<!--StartFragment-->
在你自己的初始化方法中,需要调用自己的指定初始化函数或者超类的指定初始化函数。一定要将超类的初始化函数的值赋给self对象,并返回你自己的初始化方法的值。超类可能返回一个完全不同的对象。
<!--EndFragment-->发表评论
-
UIWebView清空缓存
2016-07-25 10:03 477- (void)clearAllUIWebViewData { ... -
iOS显示FPS值的工具FHHFPSIndicator
2016-07-04 13:56 0转载:http://www.cocoachina.com/io ... -
响应者链及相关机制总结
2016-06-30 14:25 475转载:http://www.cocoachina.com/i ... -
KVO&KVC的再次认知
2015-02-02 16:01 668KVO模型中,有两种通知观察者的方式,自动通知和手动通知。顾名 ... -
代码重构的理解(持续更新)
2015-01-13 17:27 561代码重构的理解和思考。 1:何时进行重构?当重复出现的时候,你 ... -
深入浅出Cocoa之Framework(转)
2015-01-06 17:49 0Framework 简介 转自 http://www.coc ... -
iOS静态库和动态库
2014-12-24 17:55 769一、什么是库? 库是共 ... -
svg图片在ios上的使用
2014-12-23 15:22 6681:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
svg图片在ios上的使用
2014-12-23 15:22 32061:从UI设计师那里得到的是每个svg图通过网站icomoon ... -
Xcode设置项之Architectures和Valid Architectures
2014-12-22 10:42 595本文所讲的内容都是围绕iPhone的CPU指令集,现在先说说不 ... -
Xcode中Build Settings更改编译后能发现的问题
2014-12-17 13:36 7021:for循环不加括号 2:枚举赋值时类型不匹配 3:for循 ... -
静态库编译心得
2014-12-16 11:16 490我们编译静态库时一般会生成模拟器,真机两个包的.a文件 这二个 ... -
xcode编译选项整理
2014-12-11 19:15 0LINK_WITH_STANDARD_LIBRARIES = ... -
根据dsym解析crash_log
2014-12-01 14:15 8731:拷贝symbolicatecrash到/bin目录下 su ... -
autolayout心得
2014-10-28 13:30 654一:实现方案在以前就已经确定了下面几个点: 1 使 ... -
Objective-C的消息传递机制[转]
2014-07-31 20:34 600一直想写一篇类似的。 直接转载了 http://www.cnb ... -
iOS开发模拟限速
2012-12-07 17:47 53481. 模拟器网速调整: 限制时输入下面两行,根据需要修改下面的 ... -
iphone中结束电话后返回自己的应用(转载)
2012-04-10 10:30 1168iphone中结束电话后返回自己的应用 大家想不想在 ... -
Info.plist中常用的key简介(转载)
2012-03-15 15:55 909UIRequiresPersistentWiFi 在程序中弹出 ... -
UIScrollView 原理(转载)
2012-03-10 19:46 1128scroll view 原理 在滚动过程当中,其实是在修 ...
相关推荐
4.源码及其简单,易于理解和掌握。 5.扩展自己的功能也非常得简单,容易。 6,只关心字段和字段值,完全不用关心数据库操作逻辑. 特别提示:字段值全部以字符串的形式统一处理 常用的api如下: /** 获取数据库...
小编给大家整理了关于IOS中宏(define)与常量(const)的正确使用方法,有助于大家更加深入的理解这方面的内容。 当我们想全局共用一些数据时,可以用宏、变量、常量 宏: #define HSCoder @”汉斯哈哈哈” 变量: ...
我们先大概这样理解: @property = Ivar + setter + getter Ivar Ivar可以理解为类中的一个变量,主要作用是用来保存数据的。 我们不妨来看个例子,通过下边的例子能够很清楚的解释这两个东东: 我们新建一个...
Foundation框架:学习Foundation框架中提供的常用类,如NSString、NSArray、NSDictionary等。 Cocoa和UIKit:了解这两个框架提供的界面开发相关类和接口。 协议与代理:理解协议(Protocol)和代理(Delegate)设计模式...
NSString *const kFoundationExportString = @Hello World; NSString *const kExternString = @Hello World; 然后在.h文件中加上以下声明, 就可以在导入该.h文件的类中访问该常量。 FOUNDATION_EXPORT ...
个人对于category理解后的练习,一个是自己自定义的类,一个是NSString的类别
深入理解iOS热修复原理背景顾名思义热bug就是使App有了线上bug的能力,但是遗憾的是苹果出于安全的考虑考虑了热修复。虽然App审核加快了,但是依然无法很好的控制线上bug的影响范围。 JSPatch存在审核风险,所以我们...
为方便读者和未来自己更好理解,我们创建这样场景。(在表视图的清除缓存一单元格内创建一个UILabel *cacheLabel用于显示当前缓存,当点击单元格弹出提示框,点击确定,清除缓存)。 下面是实现代码: #pragma ...
这个方法不是很理解,实际上,这可以扩展到KVC中的高级用法上去。该方法非常强大。下面就来给大家详细介绍iOS中valueForKeyPath的常用方法,话不多说了,来一起看看详细的介绍吧 valueForKeyPath的常用方法 1、...
实现mac端调试工具验证结果正确性,代码兼容iOS和MacOS,其中SM3,SM4使用C语言代码,补位代码和分组模式代码自行通过objective-c代码实现,加强理解。代码基本通过category形式提供。 当前完成 NSString和NSData各种...
4.源码及其简单,易于理解和掌握。 5.扩展自己的功能也非常得简单,容易。 6.支持arc和mrc 常用的api如下: /** 数据库中是否存在表 */ + (BOOL)isExistInTable; /** 保存或更新 * 如果不存在主键,保存, * 有...
本文主要介绍了IOS图文混排的资料,这里整理了在网上查找的内容,帮助理解,掌握这部分知识,以下就是整理的内容: 利用CORETEXT进行图文混排。 实现代码: void RunDelegateDeallocCallback( void* refCon ){ ...
一、引言 在现代汉语的解释中,谓词是用来描述或判断客体性质、特征或者客体之间关系的词项。通俗的说,它是描述事物属性的。在iOS开发Cocoa框架中,有提供NSPredicate类,这个类通常也被成为谓词类,其主要的作用是...
其中block 因为其简洁实用规范的代码 无疑是大牛们传值的不二选择 但对于初学者来说要理解并能运用 起初确实有些难以理解 以下我将细细的介绍下block 首先我总结了一下block的公式: 步骤1.block 的声明 返回值类型...
喜欢读一些开源项目源码的人,总是会发现,大神的代码中总是有那么一些简短而高效的宏定义,点击进去一看,发现晦涩难懂,别说学习了,有时候理解都是一种困难,但是宏定义本身并没有那么难,但是写出一个好的宏当然...
UIPickerView控件是比UIDatePicker控件更普通的Picker控件,UIDatePicker控件可以理解成是从UIPickerView控件加工出来的专门进行日期选择的控件。 UIPickerView控件的用法比UIDatePicker复杂一点。本文中的小例子将...
尽管有很多现存的第三方库可以将下载和缓存功能都封装好了供开发者使用,但从学习的角度出发,看懂源码,理解其中的原理,结合自身的实际需求写出自己的代码是很必要的。在刚结束的Demo中,有用到异步图片下载功能,...
IOS 静态方法与动态方法详解 ... 从根本来说,c++、objective-c、java都发源于c语言,因此这些语言实际上可以理解了经过封装的c语言,所以它们更加方便使用但效率不如c语言。 因此,对象的底层实际上就是结构体