NSURLConnection 在第二次调用时挂起的原因可能有以下几个:
1. 连接已经被取消或关闭:如果在第一次调用的连接还没有完成或关闭时,进行第二次调用,会导致第二次调用失败。可以通过检查连接的状态来确定是否可进行第二次调用。
2. 缓存问题:如果在第一次调用时使用了NSURLRequest的缓存策略,并且缓存数据在第二次调用时仍然有效,那么第二次调用可能会直接从缓存中获取数据,导致连接挂起。
3. 网络问题:如果在第一次调用时发生了网络故障或超时,那么第二次调用可能会受到网络问题的影响,导致连接挂起。可以通过检查网络连接和调整超时设置来解决。
4. 并发问题:如果在第一次调用时没有等待连接完成或关闭,就进行了第二次调用,那么第二次调用可能会因为连接资源已经被第一次调用占用而挂起。可以使用GCD或NSOperationQueue等方式来实现并发操作,避免并发问题。
需要根据具体的使用场景和代码逻辑来确定具体原因,并进行相应的调试和处理。