(1)概念:条件变量 linux多线程共享变量时候应用

(2) 新装的renren sdk总是编译失败,出现原因是xcode版本不对,重新换成新的好了。

(3) timeoutInterval  已经没有了作用。
这个问题只有在3.0以及之后的os中才有的,而且只有在当调用了setHTTPBody之后才会出现timeout失效。这个是苹果公司对URL Loading System的在OS3.0中的一个改动,不过在我看来其实这就是一个bug!在setHTTPBody之后,request的timeout会被改为 240s(这个你可以通过NSLog [request timeoutInterval]查看),苹果开发人员的解释就是通常我们自己设置的太短的timeout其实是没什么作用的,尤其对移动设备上来讲与网 络沟通需要的时间往往是比较长的,假如你的timeout是10s,在WWAN的网络环境下,可能才刚刚“bring WWAN Interface up”(不知道怎么翻译,囧)。所以自从OS 3后,如果设置了HTTP body的data,系统就会自动设置一个最低的timeout值,即240s,而且这个值都是不能被改动的,即是你自己再次设置了 timeoutInterval,你通过NSLog [request timeoutInterval]得到的还是240S!!

解决办法只有自定义一个操作。办法比较笨,但是真的好使(网上找的,感谢wolf_childer,原处:http://hi.baidu.com/wolf_childer/item/250f95c5eefde479ced4f851)

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:self.address
                                                                                                                 cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
                                                                                                         timeoutInterval:self.defaultTimeout];
    NSData *bodyData = [outputBody dataUsingEncoding:NSUTF8StringEncoding];
   
    if(cookies != nil) {
        [request setAllHTTPHeaderFields:[NSHTTPCookie requestHeaderFieldsWithCookies:cookies]];
    }
    [request setValue:@"wsdl2objc" forHTTPHeaderField:@"User-Agent"];
    [request setValue:soapAction forHTTPHeaderField:@"SOAPAction"];
    [request setValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
    [request setValue:[NSString stringWithFormat:@"%u", [bodyData length]] forHTTPHeaderField:@"Content-Length"];
    [request setValue:self.address.host forHTTPHeaderField:@"Host"];
    [request setHTTPMethod: @"POST"];

[request setHTTPBody: bodyData];
       
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:operation];
   
    //自定义时间超时
    [NSTimer scheduledTimerWithTimeInterval:self.defaultTimeout target: self selector: @selector(handleTimer) userInfo:operation repeats:NO];
   
    operation.urlConnection = connection;
   
    [connection release];
}

//时间超时定义
-(void) handleTimer
{
    [operationCopy connection:[NSError errorWithDomain:@"时间超时!" code:256 userInfo:nil]];
}

(4)ASIHttpRequest的一个Bug与30秒超时(网摘,主要用于自己记忆)

今天在项目中发现一个ASIHttpRequest的Bug。这个Bug可能会导致你Http请求延时至少在timeout设置时间结束之后。更可怕的是,为了找出这个Bug,可能会浪费程序员更多的时间。为这个问题我至少奋斗了3个小时!

项目中一直在使用ASIHttpRequest,但有一次,我发现Http请求居然总是不成功。我下意识地以为这是网络延时问题,我延长了ASIHttpRequest的超时时间至30秒,于是程序不再报错。

但今天在使用同样的代码时,我发现以前我全错了。这不是超时的问题,而是ASIHttpRequest的一个Bug。

因为这次我请求本机的Tomcat服务器的某个jsp页面,页面代码写得很简单,在firefox中请求该页面的响应时间不会超过0.01秒,但在iPhone模拟器中居然用了20多秒才返回。这不可能是网络延时的原因。

当我把超时时间改小至10秒,等待超时时间结束,ASIHttpRequest甚至直接报kCFStreamEventErrorOccurred错误。

我打开ASIHttpRequest的所有调试日志,发现ASIHttpRequest似乎在尝试用上次的连接去连接服务器:

Request #3 will use connection #2

Request attempted to use connection #2, but it has been closed -will retry with a new connection

Request #3 will use connection #3

它好像连接时重用上次的http连接。这样肯定是不行的,因为上次的http请求结束后服务器已经把连接关闭了。

于是我们只能把ASIHttpRequest的连接重用关闭:

[requestsetShouldAttemptPersistentConnection:NO];

这样,前面的问题就不会出现了。其实,在不同的http会话中,不应该开启PersistentConnection。

(5).关于oc的内存释放问题

self.obj 是对属性进行操作,而obj是对指针进行操作。

例子:

self.userTextField = nil;//相当于两句:[userTextField relase]; userTextField = nil;

userTextField = nil; //只相当于一句: userTextField = nil;

因此,我们在使用的时候,可以使用:self.userTextField = nil;或者:[userTextField release];userTextField = nil;

(6)delloc中,要先释放继承类的内容,再调用[super delloc];

(7)添加和删除图片资源:将要删除的图片直接从文件夹中(show in findler)删掉,然后再删掉bundle,再在相应的文件夹中增加图片,将bundle再拖到工程里面

转载于:https://www.cnblogs.com/Peterahan/archive/2012/09/19/2670791.html

ios 学习札记 细节(四)相关推荐

  1. ios 学习札记 细节(三)

    本节纪录学习WebView的心得 1.包含web的controller遵从UIWebViewDelegate协议. 2.定义 UIWebView 与 URL @property (nonatomic, ...

  2. MongoDB学习札记

    本文参考地址: http://www.codefrom.com/p/mongodb http://www.cnblogs.com/spnt/archive/2012/07/25/2608057.htm ...

  3. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  4. IOS学习之蓝牙4.0

    转载请注明出处 作者:小马 IOS学习也一段时间了,该上点干货了.前段时间研究了一下IOS蓝牙通讯相关的东西,把研究的一个成果给大家分享一下. 一 项目背景 简单介绍一下做的东西,设备是一个金融刷卡器 ...

  5. ios学习 准备列表

    2019独角兽企业重金招聘Python工程师标准>>> Skip to content This repository Pull requests Issues Gist Watch ...

  6. 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前

    [学习札记NO.00004]Linux Kernel Pwn学习笔记 I:一切开始之前 [GITHUB BLOG ADDR](https://arttnba3.cn/2021/02/21/NOTE-0 ...

  7. IOS音视频(四十六)离线在线语音识别方案

    IOS音视频(四十六)离线在线语音识别方案 IOS音视频(四十六)离线在线语音识别方案 方案一:Siri语音识别 Siri语音识别简介 Siri语音识别功能类介绍 Siri语音识别功能集成 方案二:百 ...

  8. IOS学习之蓝牙4.0 BLE

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/26740237 作者:小马 IOS学习也一段时间了,该上点干货了.前段时间研究了一下 ...

  9. 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

最新文章

  1. asp.net控件开发基础(19)
  2. Oracle体系结构四(学习笔记)
  3. Ethercat解析(一)之获取、编译、安装(Ubuntu14.04)
  4. [网文摘录]云计算平台管理
  5. 极简代码(七)—— SNR
  6. 《SEM长尾搜索营销策略解密》一一2.9 长尾,寻找蓝海的最好方式
  7. java中aliases的意思,Java Charset.aliases方法代码示例
  8. 案例 | 省去繁琐简历筛选,「微伴助手」选择 ShowMeBug 在线笔试提高人才精准度
  9. 使用depends查看64位dll/exe
  10. 都有哪些较好用的项目管理软件?
  11. 特殊字符ascii码
  12. vue清除地址栏参数
  13. 【旅行青蛙】你的蛙到底在干什么?
  14. PS初学者实例教程——图层样式的学习[斜面和浮雕]
  15. operands could not be broadcast together with remapped shapes
  16. ERDAS将DN值转换为TOA光谱辐射亮度时 出现建模错误原因
  17. 行车记录仪android,车叮咚:一款搭载 Android 系统的行车记录仪是怎样的?
  18. 代码规范检查工具+代码规范生成工具
  19. 计算机程序必须在有限的步骤内完成,苏教版必修三 §1.1 算法的含义 学案.docx...
  20. python实现自动断网_《自拍教程62》Python adb反复断网联网测试

热门文章

  1. bzoj 3450: Tyvj1952 Easy(概率DP)
  2. skypebridge.exe 损坏的映像 错误代码 0xc000012f
  3. 吴恩达神经网络和深度学习-学习笔记-19-机器学习策略(正交化+单一数字评估指标)
  4. spring mvc-基础-简单程序
  5. 查看Oracle表空间以及用户与其默认表空间情况
  6. RX库中的IDisposable对象
  7. Direct3D11学习:(二)基本绘图概念和基本类型
  8. 深入理解include预编译原理
  9. 工作经验总结:百万数据引发的性能瓶颈问题
  10. INFO:AdminStudio Debug