ios 基础学习二

1:@property  @synthesize 属性(类似java里的get set)

上面那个类原先的实现是这样:

#import  
 
@interface Photo : NSObject {  
 
NSString* caption;  
 
NSString* photographer;  
 
}  
 
- (NSString*) caption;  
 
- (NSString*) photographer;  
 
- (void) setCaption: (NSString*)input;  
 
- (void) setPhotographer: (NSString*)input;  
 
@end  

假如用属性来实现就是这样:

#import  
 
@interface Photo : NSObject {  
 
NSString* caption;  
 
NSString* photographer;  
 
}  
 
@property (retain) NSString* caption;  
 
@property (retain) NSString* photographer;  
 
@end  
 
@property是Objective-C来声明属性的编译指令。括号里面的"retain"指明了setter需要retain输入的对象。这行其他的部分指定了属性的类型以及名字。


下面让我们来看看这个类的实现:

#import "Photo.h"  
 
@implementation Photo  
 
@synthesize caption;  
 
@synthesize photographer;  
 
- (void) dealloc  
 
{  
 
[caption release];  
 
[photographer release];  
 
[super dealloc];  
 
}  
 
@end  
 
@synthesize指令自动的生成了我们的setters和getters。所以我们只需要实现类的dealloc方法。

Accessors只有当他们原先没有的时候,才会被生成。所以可以放心大胆的去用@synthesize来指定属性。而且可以随意实现你自己的getter和setter。编译器会自己去找哪个方法没有。
View Code

 2:沙盒概念

 IOS沙盒机制 

 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像, 属 性列表,文本文件等。

1.1、每个应用程序都有自己的存储空间 

1.2、应用程序不能翻过自己的围墙去访问别的存储空间的内容 

1.3、应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行。     

 通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是:sandbox对应用程序执行各种操作的权限限制

 

 

注意

    (1)、应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。

    (2)、应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。

    (3)、苹果禁止任何读、写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中。

    (4)、沙盒根目录里有三个文件夹:Documents,一般应该把应用程序的数据文件存到这个文件夹里,用于存储用户数据或其他应该定期备份的信息。Library,下有两个文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序偏好设置文件,不过不要在这里修改偏好设置。temp,存放临时文件,即应用程序再次启动不需要的文件。

获取上面对应路径的方法:

1、用NSHomeDirectory获取

2、(1)用用户名获取

 (2)、获取Document路径

(3)、获取tmp路径

(4)、获取cache路径

 

 

 

 

posted on 2015-05-19 20:31  yujian_bcq  阅读(100)  评论(0编辑  收藏  举报

导航