如何在 iPhone 上验证从网络下载的图像文件?

2023-12-13

我正在使用 NSURLConnection sendSynchronousRequest 方法下载图像,效果很好。但是,有时我会遇到图像 URL 指向图像文件以外的其他内容的问题。例如,我发现这个非图像 URL 导致了问题:http://www.100plusposters.com/images/ExoticFlowers.jpg该 URL 返回一个网页,我认为发生这种情况是因为站点中缺少图像。

Objective-C 的一大优点是无效图像不会导致崩溃。它简单而安静地继续运行,只是不显示任何图像,但这仍然是一个问题。

在显示之前如何验证返回的数据以确保它是有效的图像文件?

Thanks!

我的相关代码,如果有帮助的话......

NSError *error = nil;
NSURLResponse *response;
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:5];

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

if(data != nil && [error localizedDescription] == nil) 
{
    //Create UIImage object using initWithData method
    //Display UIImage
}

看起来 NSURLResponse 对象包含一个MIME 类型属性。这应该可以让您很好地了解返回数据的类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 iPhone 上验证从网络下载的图像文件? 的相关文章

  • 如何使用MKMapView完成加载委托,可能的“完成显示”委托?

    当用户在选择注释后点击 保存 时 我尝试保存地图视图的缩略图 当用户尚未放大该注释时会出现问题 因此尚未加载关闭缩放级别 这就是用户点击保存后我正在做的事情 将布尔值 saving 设置为 true 居中并放大注释 无动画 当调用mapVi
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 多次添加同一个子视图来查看

    我不知道这是否可行 但我想做的是将子视图多次添加到视图中 我尝试过这样的事情 self view addSubview newView newView center CGPointMake 160 100 self view addSubv
  • UIWebView 中的 PDF

    我正在创建一个杂志应用程序 我在 UIWebView 中显示杂志的每一页 不过 Web 视图不会用 PDF 填满屏幕 它周围有一个边界 我怎样才能全屏显示它 我还没有使用 UIWebView 尝试过此操作 但您也许可以执行类似的操作来以编程
  • GMSMapView 中的倒多边形

    我必须在我的 iPhone 项目中使用 Google 地图 并且我正在使用 GMSPolygon 来绘制多边形 但是如何填充地图上除多边形内部之外的所有位置 就像下图一样 谢谢 我玩过你的问题 主要思想是用多边形填充整个地球 然后为您的特定
  • 有什么方法可以让我知道按屏幕的力度有多大

    我想找到触摸的压力 我只是不知道如何在不越狱并获取原始触摸数据的情况下实现该结果 有谁知道我会怎么做 你无法获得来自SDK的压力nor未记录的方法 然而你can使用未记录的方法检测触摸的大小 在 GSEvent UIEvent 的较低级别表
  • 如何确定iPhone铃声的当前级别?

    我正在使用 AVSystemController 将 iPhone 铃声静音 但我不知道如何确定铃声的当前级别 有任何想法吗 PS 是的 我知道使用 AVSystemController 可能会导致应用程序被 App Store 禁止 这不
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • 玻璃效果 UIView

    我想知道如何在 UIView 上添加玻璃效果 我想像这样的效果 http pttrns com pickers detail 0dc9d9f6c6a7577613b3453768eee3b3在灰色半透明视图上 您 可以在这里看到 Thank
  • 如何将 NSIndexpath 转换为 NSInteger 或简单的 int?

    我需要将 nsindexpath var 转换为 NsInteger 或简单的 int 例如 int rowIndex mGoogleBaseTable selectedRow mGoogleBaseTable is a NSTable t
  • UICollectionView 未出现

    我正在尝试设置UICollectionView 以编程方式在我的视图控制器中扩展UIViewController 由于某种原因 我的收藏视图根本没有显示 以下是我所拥有的 为什么没有出现 我将它连接到委托和数据源并将其添加为子视图self
  • PresentModalViewController 不执行任何操作

    我有一个 UIViewController parent 调用presentModalViewController与另一个 UIViewController child on viewDidLoad If parent没有 UINaviga
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 将 CALayer 旋转 90 度?

    如何旋转CALayer90度 我需要旋转所有内容 包括子图层和坐标系 Obj C theLayer transform CATransform3DMakeRotation 90 0 180 0 M PI 0 0 0 0 1 0 Swift
  • 将 iPhone 上的 stderr 写入文件和控制台

    我正在遵循答案中的建议here https stackoverflow com questions 5179108 iphone how to read application logs from device用于将 iOS 设备上的 NS

随机推荐

  • Rails 实现自动完成搜索

    我不确定如何为我的搜索功能添加自动完成表单 我有一个具有自定义操作的以下控制器 def query users Search user params query article Search article params query end
  • SQL Server 2005 用 0 填充数据透视表

    I have 这个查询在 SQL Server 2005 中 我仅使用更方便的 2008 插入方法作为示例 我需要在网格输出中将 null 替换为 0 无论如何要这样做吗 你会使用ISNULL 功能 看SQL小提琴 SELECT lesso
  • 在开发过程中调整 MySQL 以快速创建列/索引

    假设 MySQL MyISAM 表包含 1 GB 数据和 1 GB 索引 此外 假设在开发过程中 列和索引将非常频繁地从表中添加和删除 由于数据库的大小 使用标准的未调整的 MySQL 设置时 列 索引的创建速度很慢 为了最大限度地减少添加
  • 获取传递给方法的参数名称[重复]

    这个问题在这里已经有答案了 复制 确定用作方法参数的变量名称 有什么方法可以检索传递给方法的参数的名称 例如 int someParameter 1 Method someParameter public void Method int p
  • NextJS React - WebpackError:窗口未定义

    我正在尝试玩 React 我遵循了 NextJs 的 入门 教程 link 并且我已经成功创建了新项目 一旦我尝试导入第三方插件 例如当前设备 or 平滑滚动条我收到以下错误 ReferenceError window is not def
  • .Net Maui:如何从任何内容页面(MVVM)读取/写入(获取/设置)全局对象

    我确信我在这里遗漏了一些深刻或明显的概念 现在我有了一个页面 可以设置各种蓝牙传感器并从心率监视器 速度计和踏频传感器获取数据 使用插件 BLE 因此 我在 ViewModel 中为名为 BluetoothPage 的 ContentPag
  • 反转 CSS 动画

    我这样做了 http codepen io yayoni pen pgXoWY 当我点击小按钮时 我想反转动画 但我所做的不起作用 我不明白为什么 function anim var div document getElementById
  • Android LinearLayout 在 Horizo​​ntalScrollView 中具有多行

    我在 Horizo ntalScrollView 中使用 LinearLayout 滚动部分正在工作 但我不知道如何制作 3 行 例如 Bold显示当前显示的内容 在模拟器中 在屏幕上 Current 按钮1 按钮2 按钮3 按钮4 按钮5
  • 单击菜单标题时连接函数

    我正在尝试找到开放的端口并将它们添加到我的菜单中 现在 我成功地对菜单执行了一个操作 例如 查找端口 并且只有单击它时 它才会连接到获取所有可用端口的函数 不幸的是 这不是我想要的 我想点击菜单title 并获取我的菜单中的所有端口 下面是
  • 从数值向量获取类别

    我有这个数字向量 vec lt 1 7 如何使用这些逻辑规则将其转换为 3 类 if vec gt 1 vec lt 4 then category1 else if vec gt 4 vec lt 6 then category2 els
  • 具有 Azure AD B2C 和单点登录的 MSAL

    我正在开发一个带有几个 Angular 4 SPA 的系统 每个 SPA 都与一个单独的 Asp NET Core 2 0 WebAPI 进行通信 Azure AD B2C 用作每个 SPA API 的身份服务 MSAL js 用作我们 A
  • 如何获取网络接口及其正确的 IPv4 地址?

    我需要知道如何获取所有网络接口及其IPv4地址 或者只是无线和以太网 要获取所有网络接口详细信息 我使用以下命令 foreach NetworkInterface ni in NetworkInterface GetAllNetworkIn
  • 我需要什么样的加盟?

    我有一个投票表 votes userid gameid a 1 a 2 a 3 b 1 b 2 和一张游戏桌 games gameid title 1 foo 2 bar 3 fizz 4 buzz 我将使用哪种联接来执行查询 从 用户 A
  • SonarQube MSBuild 无法排除文件

    我正在 debian 上使用 msbuild 运行分析 使用以下命令 mono msbuild SonarQube Scanner MSBuild exe begin d sonar login
  • Maven war/jar 大小太大

    我正在构建一个项目 其中最终的战争 罐子大小非常大 我不知道如何减小罐子的大小 如何只构建项目所需的jar 目前我们只是在依赖项中给出了 maven 构建插件 并在顶部给出了构建 war 或 jar 的工件 id 请指教 Thanks 在您
  • Redis 数据库 TTL

    无论如何 有没有办法创建一个 Redis 数据库 其中键HAVE TO一定时间后会过期吗 我知道我可以使用以下命令使单个密钥过期EXPIRE命令 但由于无论如何我都会在一定时间后使每个密钥过期 因此最好在 Redis 配置文件中指定此行为
  • Java如何计算时差

    如果用户输入是 2255 和 2305 我如何计算 24 小时内的时间差 输出应该是 10 分钟 我的一个想法是将输入分成两部分 2 位数字和 2 位数字 前 2 位数字是小时 乘以 60 即可得到分钟 然后加上后2位数字 然后计算差值 我
  • R - 查找数据框子集中的所有唯一值

    我有一个包含两列的数据框 第一列定义数据的子集 我想找到第二列中仅出现在第一列的一个子集中的所有值 例如 来自 df data frame data subsets rep LETTERS 1 2 each 5 data values c
  • ViewPager2 selectCurrentItem - 选择选项卡,但在此选项卡内放置错误的片段

    我有基本的 ViewPager2 和 Tablayout 在每个页面中我都有不同的片段 当我需要不从第一个 默认 选项卡打开此视图时 我正在这样做 viewPager currentItem selectedTabPosition 此代码选
  • 如何在 iPhone 上验证从网络下载的图像文件?

    我正在使用 NSURLConnection sendSynchronousRequest 方法下载图像 效果很好 但是 有时我会遇到图像 URL 指向图像文件以外的其他内容的问题 例如 我发现这个非图像 URL 导致了问题 http www