拿String字符串来说
查了下为什么前面进行NSString alloc定义以后需要release
函数alloc是可返回一个指向n个连续字符存储单元的指针,alloc函数的调用者可以利用该指针存储字符序列
简单来说就是程序已经将其实例化,并且分配了一块内存,如果不进行回收的话,则申请的内存还在,但是却不在使用,一直占据这内存资源
1.无需手动释放的字符串创建方法
NSString * str =@"itcast";
使用完后无需去手动进行release,创建完成即可使用
2.创建完成需要先使用然后释放
NSString *str2=[[NSString alloc] initWithString:@"12345678“]
//如果需要进行使用的话则需在release之前进行使用,简单来说
//系统进行log打印
NSLog(@"str2=%@",str2);
[str2 release];
//系统自带的对象方法都有一个相对应的类方法来完成相同的功能
//用的情况很少,一般使用第一种,弱弱的吐槽一句,oc连个垃圾回收机制都没有,不过这对程序员要求的比较高点吧,但是IOS对方法什么的封装的很好
3.定义一个动态的string
NSString *str3 =[[NSSting alloc] initWithFormat:@"my age is %d",25];
NSLog(@"str3=%@",str3);
[str3 release];
NSString *str4=[NSString stringWithFormat:@"age is %d",20];
4.将c语言转化为oc
initWIthUTF8String
//发现这个oc封装的方法名称很好哎,基本看名称就知道该方法是做什么用的了,但是定义和使用稍微要注意内存的释放
通过以上四个方法的使用,个人感觉其实这些可以举一反三,首先可以联想一下Android或者java
先定义再使用,但是IOS还要根据不同的定义方法来决定是否决定释放内存
感觉如果不进行[[NSString alloc]]是不用进行内存释放的,前提是你定义的这个元素后期不会循环调用,周期很短
再有就是初始化,相信有过良好的编码习惯的java或者Android程序员一般都会在初始化的生命周期定义两个方法initVIew();initData;(根据安卓的习惯 java的话应该init就行了),同样,IOS也是一样的,甚至来说更简单,IOS不开源,它自身有很好的API接口,可以让程序员进行调用。
同样的,程序员可以根据自己的定义的类型使用相应的初始化的api接口函数,一般你可以根据名字就能够猜出使用的方法,因为博主初学,没那么长时间学习基础,基本就是看一下用法想一下其他的用法怎么使用,如有不足还请读者补充,谢谢
举个例子:
IOS进行文件的读取,一般都是先去获取路径,然后将其读取到内存
万变不离其宗,同样IOS其实也是这样的,先定义path,简单说一下,IOS可以直接定义路径,不和Android一样还要调用方法或者判断是那个内存
NSString *path=@“/Users/apple/Desktop/fanyafeng.txt”;
NSString *str=[[NSString alloc] initWithContentsOfFile:path encoding NSUTF8StringEncoding error:nil];
简单说下三个参数的作用,第一个是获取路径,第二个是编码格式(这里是可以进行汉字的读取的),第三个个人理解是判断是否读取成功,但却不是boolean类型的,IOS中nil是空的意思
error中携带着信息,成功为nil,失败的话会返回相应的信息(\n是换行,好长没用过c了,都忘的差不多了,记得是大一的时候学的c和c++)
IOS中的ns和@用的好频繁,相当频繁。。。不过IOS方法的命名真的很人性化,比java简单多啦
说一下移动端最重要的,就是发送相应的地址请求获取相应的数据
//url的格式:协议头://全路径
//网络协议头http;本地文件协议头:file;ftp服务器协议:ftp
//URL:代表一种资源,每一个资源都有自己唯一的URL地址
NSURL *url=[NSURL URLWithString:@"http://www.baidu.com"];
NSString *str=[[NSString alloc] initWithContentsOfURL:url ecoding:NSUTF8StringEncoding error:nil];
//大家可以测试抓一下包,我写Android一般都是用httpclient
//千万别忘了进行内存的释放
[str release];
现在貌似一般都是用的json吧,或者直接返回一个int数字,例如登录的时候,-1,0,1未知错误,失败,成功
然后根据此进行判断,基本上博主都能理解了,可以进行下一步的学习了,希望不要把Android和IOS弄混了