我正在制作一款iOS游戏,它将从数据库中的线索存储库中随机挑选一条线索(文本)和图像(线索和图像进入一组,一行)。我有一个webMethods和函数的Web服务,允许我拉出数据库行。 (测试线索)我一直在Google上搜索有关如何从db导入图像到iOS的文章,但无济于事。
如何通过Web服务从DB导入图像(使用c#构建)?有谁能指导我正确的方向?我希望它存储在mutableArray中,以便在玩家完成播放后,线索和图像将擦除临时数组。 (我不想将图像放在应用程序中,因为这会使应用程序非常大,用户可以上传自己的线索和图像,因此数据库中的实时源是理想的方法。
现在我在导入图像时停留在Web服务端。我目前正在使用List来存储线索,但不知道用什么来存储图像。我正在考虑使用存储对象的ArrayList,但不知道如何在iOS端将其转换为图像。正如我上面提到的,我似乎找不到任何通过Web服务将图像导入iOS应用程序的教程或示例。 (或者我使用错误的搜索词)
如果any1可以帮助我,或者提供可以实时更新图像和线索的替代解决方案,将会很有帮助。
编辑 - 我找到了ImageList()和List。我现在应该使用哪一个? 还发现制作图像文件只是 - > image testfile;
EDIT2 - problem I'm facing
-dealing with image file (image? imagelist?
-when drawing datarow from DB in webservice, how do i deal with the image file. (guessing ImageList or List<image> (after some luck on research)
-assuming 2nd point works fine, i should be able to solve the client side
(sorry, noobie at webservice, )
。
what I have
-webservice that draw datarow from database for clue(string) (tested and working fine with my function)
-iOS client side with RESTful architecture
what I need
-webservice that draw datarow from database for picture(image (format not so important yet)) (code should be similar to drawing clue, only which function to store it in. (using List<string> for clues)
答案 0 :(得分:2)
听起来你可能会领先一步。尝试一次解决一个问题;你会取得更大的进步。
首先,您知道如何将图像下载到iOS应用程序吗?尝试下载一个非常简单的公开图片,如Google涂鸦:https://www.google.com/logos/2012/gymnastics-2012-hp.jpg
。无论您使用哪种IOS应用程序工具包,都应该有一个演练来了解如何下载图像并通过HTTP呈现它。
其次,您知道如何在Web服务器上托管图像文件吗?尝试自己下载随机的JPG或PNG图像,并将其作为静态文件托管在您的服务器上。然后将您的IOS应用程序指向该静态文件,并将其下载,就像使用Google涂鸦一样。
如果这两个步骤都有效,则可以开始在服务器上托管动态图像。创建一个页面(如果您使用的是ASP.NET)或控制器路径(如果您使用的是MVC)并让您的C#代码使用Response.TransmitFile
将图像上传到点击流。再次,将该图像下载到您的IOS应用程序以验证它是否有效。
最后,修改服务器应用程序以获取参数 - 通过查询字符串(例如:myhost.com/mypage.aspx?image_id=1
)或MVC路径(例如:myhost.com/images/1
)。使用该ID号从数据库中检索图像信息。然后将图像传输到客户端。如果一切顺利,您应该能够在IOS应用程序中检索此图像。
我希望这可以帮助您更接近您的项目!
答案 1 :(得分:1)
我没有在iOS上编程的经验,但我认为最简单的方法是为此准备RESTful api。考虑到REST准则,您最终得到的是定义资源的Web服务,而您的客户端只需要请求特定文件(我假设客户端以某种方式知道图像的id /名称是什么)。这有一个很大的优势 - 很容易开发(在任何平台上) - 服务器端。
说到客户端:
1.使用WebRequest
对象创建http get请求
2.等待下载数据(您可以使用后台工作程序或仅使用其他线程,以便不阻止您的应用程序)
3.请求完成后,您将获得响应对象 - 读取已发送的内容。它将是二进制图像。
4.使用二进制数据(图像)并将其显示在您的应用程序中。
我在不同的SO帖子中提供了如何使用WebRequest
对象的示例:https://stackoverflow.com/a/11891240/165751
注意:我假设您知道如何从服务器端的DB(或任何类型的存储)中检索图像,以便您的Web服务可以读取它并将其作为Web响应返回。
在服务器端技术方面有很多可能性,但是如果你想继续使用.Net技术堆栈 - 我建议你看看WCF REST Service Template 40(CS) - 我一直在使用它过去(我的服务也是返回图像:)我很高兴。