Tag: ios5

通过HTTP POST发送大文件的正确方式是什么,而不是将整个文件加载到内存中?

我目前正在研究一个应用程序,通过简单的http后,从iPhone上传大video文件到web服务。 截至目前,我build立一个NSURLRequest并在加载请求之前预加载所有的video文件数据。 如果文件相当大,这自然会吃掉大量的内存,在某些情况下甚至是不可能的。 所以基本上我的问题是:有没有一个正确的方式来stream式传输数据或加载它没有应用程序的任何修改的networking服务器? 谢谢。 编辑澄清:我正在寻找一种方法来stream大型多部分/表单数据从 iPhone 到networking服务器。 而不是周围的其他方式。 编辑后接受答案:我刚刚发现,苹果有一些漂亮的源代码编写的确切目的,它显示附加额外的数据,而不仅仅是大文件本身。 有人需要它: SimpleURLConnections – PostController.m 还有一个编辑:当使用苹果的源代码片段时,我遇到了一个非常愚蠢和丑陋的问题,即使wireshark也无法帮助我debugging。 一些networking服务器在引号之间声明时不理解边界string(如苹果示例)。 我在Apache Tomcat上遇到了问题,删除了引用的function非常棒。

UINavigationBar setBackgroundImage:forBarMetrics:不工作

我只是切换到iOS 5,除了自定义导航栏,一切似乎都在我的应用程序中工作。 我环顾四周,并按照每个人的build议调用新方法setBackgroundImage:forBarMetrics:但它似乎不工作。 这是我试图放置在应用程序委托和一些视图控制器的viewDidLoad方法内的代码: UINavigationBar *nb = [[UINavigationBar alloc]init]; if( [nb respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) { UIImage *image = [UIImage imageNamed:@"navBarBackground.png"]; [nb setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; } [nb release]; 不幸的是,这是行不通的。 如果有人有任何build议,我都耳朵!

从服务器实时更新的iOS应用程序:套接字(使用stream)或苹果推送通知服务?

我正在尝试制作一个iOS 5应用程序,其中包含来自服务器的实时内容。 它只会在应用程序运行时使用这些。 为了实时进行轮询,我一直在评估两条devise路线: 从应用程序创build一个套接字到服务器,并通过stream交换信息。 优点:相对简单,不会涉及第三方。 缺点:电池寿命耗尽。 有关这可能工作的概述,请查看这个优秀的教程: http : //www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server 使用标准的HTTP与服务器进行通信,并通过应用程序的每个请求让服务器知道他们正在查看什么。 如果有新的东西可供用户使用,请发送苹果推送通知(没有可见的提醒)让应用程序知道它可以去下载新的东西。 优点:不打开一个新的TCP连接,所以电池寿命不会不必要地消耗。 缺点:感觉像一个可怜的黑客。 APN官方文档http://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html 我想套接字是要走的路,但在我承诺之前,我想要第二个意见,因为这是我第一次做出这样的事情!

ios5 – 与故事板模式视图控制器的大小

有没有什么办法来调整模态使用故事板segue提出的视图控制器? 如何从模态视图控制器以翻转过渡显示另一个视图控制器? 如果我将其定义为Style = Modal,Presentation = Default,Transition = Flip Horizo​​ntal,则看起来很奇怪(背景是白色的)。 谢谢!

过渡到iOS 5时要注意什么?

简介: 您可以添加到我的清单的事情要注意的时候迁移到iOS 5? 在我升级到iOS 5的时候,StackOverflow是非常宝贵的。我发现了一些我在Xcode 4.2之前错过的非常基本的东西,而且我想知道还有哪些潜在的“陷阱”。 细节:本周iOS 5发布,我不得不对一些我的应用程序进行一些更改。 由于新的ARC特性,Xcode 4.2在分析内存pipe理代码方面做得更好。 iOS 5更新是查看所有内存pipe理代码的好地方。 新编译器还发现了一些早期编译器错过的其他问题。 向苹果编译器工程师致敬。 以下是主要的帮助(其中许多也将适用于早期版本的iOS)。 确保在dealloc方法的END处调用[super dealloc] ,而不是开始。 在viewDidUnload中, 有些人已经报告了需要在你的viewDidUnload 的最后而不是开始处调用[super viewDidUnload]的错误 。 了解保留计数,合成设置者以及何时调用释放或自动释放。 新的编译器会比旧的编译器指出更多的问题。 (我以为我很小心,但显然我不够小心。)苹果的内存pipe理指南是必读的 – 没有捷径。 debugging时打开僵尸是一个好主意(在Xcode中,selectProduct | Edit Scheme …并selectDebugscheme;在Diagnostics选项卡上选中Enable Zombie Objects)。 这可以帮助你find企图使用僵尸(对象,你不应该再使用)。 泄漏仪器也是有帮助的。 在configuration文件模式下运行您的应用程序,然后select泄漏模板。 在“仪器”窗口中,select“泄漏”工具,然后选中“收集泄漏的内存内容”框,它将帮助您查看泄漏内存源自代码的位置。 我遇到了一些困难: 苹果的单身模式需要“单向”添加到返回types声明: – ( oneway void)释放{} 您可能需要在Build Settings中手动添加“armv6”作为体系结构types (并确保Build Active Architecture Only设置为NO)。 任何其他build议我应该寻找潜在的陷阱? 我有一种感觉,现在我的应用程序更加稳定,但之前我对它们感觉相当不错。

用ARC手动保留

在ARC之前,我有以下代码,在asynchronous操作正在进行时保留委托: – (void)startAsyncWork { [_delegate retain]; // calls executeAsyncWork asynchronously } – (void)executeAsyncWork { // when finished, calls stopAsyncWork } – (void)stopAsyncWork { [_delegate release]; } ARC与这种模式有什么相同之处?

NSIncrementalStore以普通英语解释

我一直在看NSIncrementalStore ,因为我一直在研究使用核心数据与Web服务进行交互的最佳方式。 在阅读了Drew Crawford的一篇文章之后, 一个编程指南 , 一个类的引用 和本教程几次,我仍然在努力理解NSIncremental存储的是什么,为什么以及何时使用它。 有人可以解释吗? 编辑 读完mundi的回答后,我可以看到一些进一步的背景是必需的。 我正在研究与正在构build的Web服务一起使用核心数据。 我试图find最好的方式来将用户信息存储在本地设备上,并在存在连接时发布到Web服务。 我对核心数据知识的缺乏促使了我的研究,但我无法完全理解NSIncrementalStore的用处。

如何在CALayer.contents中添加Stretchable UIImage?

我有一个CALayer,我想添加一个可拉伸的图像。 如果我只是这样做: _layer.contents = (id)[[UIImage imageNamed:@"grayTrim.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0.0, 15.0, 0.0, 15.0)].CGImage; 它将不起作用,因为图层的默认contentGravity是kCagravityResize。 我读过这可以使用contentsCenter来完成,但我似乎无法弄清楚我将如何使用它来实现CALayer中的拉伸图像。 任何想法都欢迎! 霍拉丘

在帐户框架的iOS 5 Twitter中转推,回复和collections

我在我的应用程序中整合了iOS 5 Twitter。 我可以通过TWTweetComposeViewController与Twitter和Accounts框架的集成发送推文。 现在我想借助Accounts框架在iOS 5中转发,回复和collections。

iOS:iOS 4.3和5.0之间的不同addSubview行为

而在iOS 4.3编码之前,我发现一个视图控制器的视图添加到另一个视图与[superview addSubView:controller.view] ,控制器实例将不会收到-viewWillAppear/viewDidAppear消息,比我发现同样的问题,在某些线程堆栈溢出。 之后,我-viewWillAppear/-viewDidAppear根据需要手动调用-viewWillAppear/-viewDidAppear 。 但是,升级到iOS 5.0 ,一些活泼的UIView行为发生了。 最后我发现,在iOS 5中, [superview addSubView:controller.view]会自动发送一个-viewWillAppear/-viewDidAppear消息给控制器实例,再加上我的手动调用,每次控制器动作时会有两个重复的消息。 而且我也发现了一个类似的问题: iOS 5:-viewWillAppear在解除iPad中的模式之后不会被调用 现在,问题是,search苹果的文件后,我没有find任何明确的文件差异有关这些问题。 我甚至想知道这是否是iOS 5.0中的有保证的视图生命周期行为。 有没有人修复类似的问题或find一些关于这些差异的指导 因为我想在4.x & 5.x iOS运行我的应用程序。