background image
(6)防止两次释放一个指针。 
(7)防止使用野指针。 
 
七、http 请求方式有几种?分别是哪些? 
  标准 Http 协议支持 6 种请求方法,分别是: 
(1)GET——  GET 可以说是最常见的了,它本质就是发送一个请求来取得服务器上的某一
资源。资源通过一组 HTTP 头和呈现数据(如 HTML 文本,或者图片或者视频等)返回给客
户端。GET 请求中,永远不会包含呈现数据。 
(2)HEAD——和 GET 本质是一样,区别在于 HEAD 不含有呈现数据,而仅仅是 HTTP 头信
息。有的人可能觉得这个方法没什么用,其实不是这样的。想象一个业务情景:欲判断某个
资源是否存在,我们通常使用 GET,但这里用 HEAD 则意义更加明确。 
(3)PUT——这个方法比较少见。HTML 表单也不支持这个。本质上来讲,  PUT 和 POST
极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT 通常指定了资源的存
放位置,而 POST 则没有,POST 的数据存放位置由服务器自己决定。举个例子:如一个用于
提交博文的 URL,/addBlog。如果用 PUT,则提交的 URL 会是像这样的”/addBlog/abc123”,
其中 abc123 就是这个博文的地址。而如果用 POST,则这个地址会在提交后由服务器告知客
户端。目前大部分博客都是这样的。显然,PUT 和 POST 用途是不一样的。具体用哪个还取
决于当前的业务场景。 
(4)DELETE——删除某一个资源。基本上这个也很少见,不过还是有一些地方比如 amazon
的 S3 云服务里面就用的这个方法来删除资源。 
(5)POST——向服务器提交数据。这个方法用途广泛,几乎目前所有的提交操作都是靠这
个完成。 
(6)OPTIONS——这个方法很有趣,但极少使用。它用于获取当前 URL 所支持的方法。若
请求成功,则它会在 HTTP 头中包含一个名为“Allow”的头,值是所支持的方法,如“GET, 
POST
”。 
大部分情况下只用到了 GET 和 POST,如果想设计一个符合 RESTful 规范的 web 应用程序, 
 
八、  属性 readwrite,readonly,assign,retain,copy,nonatomic  各是什么作用,在哪种
情况下用? 
(1)readwrite  是可读可写特性;需要生成 getter 方法和 setter 方法时 
(2)readonly  是只读特性  只会生成 getter 方法  不会生成 setter 方法  ;不希望属性在类外
改变 
(3)assign  是赋值特性,setter 方法将传入参数赋值给实例变量;仅设置变量时;