- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有任何关于开发 iPhone 应用程序时要避免的陷阱的指南?
最佳答案
当然,数千。对于任何软件开发来说都是如此。不幸的是,列举它们的最简单方法就是将它们写在一张纸上,同时等待友好的灵魂将您从刚刚陷入的困境中解救出来。
但是:
不要尝试重新发明轮子。 iPhone API 非常完整——您只需寻找您需要的功能即可。事情并不总是按照您期望的方式实现。仔细阅读指南。查看教程并分析它们是如何工作的。 (尝试在教程中在这里或那里更改一行,看看更改会产生什么差异。)我在 1 年的 iPhone 开发中犯的最大错误是没有足够努力地找到iPhone 方式做某事。
不要忽视内存管理;尽早并经常掌握它。使用 Instruments 中的对象分配和泄漏工具经常检查内存泄漏。我建议您在完成每个功能或 View 后进行检查;如果您不断发现错误,则频率会更高。最终你可能会非常了解它,从而可以停止这样做。
不要只使用默认的build设置。和他们一起玩,了解他们在做什么。弄清楚认证和分发。 快速进入开发者计划 - 可能需要一段时间才能完成该管道。 [当您收到需要续订的通知时,请立即进行更新——该过程存在问题。 ]
不要忽视仔细阅读人机界面指南 (HIG)。如果他们说不要做某事——那就不要做。 Apple 将拒绝滥用其图标的应用程序。
不要吝惜营销。是的,App Store 将您的应用程序展示给数百万人……理论上是这样。但登上头版的可能性很小。 App Store 上有很多出色的应用程序,但销量并不高,因为没有人了解它们。
不要安于现状。如果出现一项新技术,看看它是否能让你的工作变得更轻松;如果是的话,请花时间学习它。个人例子:我现在正尝试从基于 SQLite 的数据管理切换到 Core Data,因为我开始最近的项目时很着急;现在我希望我当时能放慢速度思考一下。
不要陷入你的设计思维(例如)“我如何用表格 View 实现我的概念?”确实, TableView 对于许多信息和实用应用程序来说是很自然的,但不要受到限制。相反,想想用户想要做什么,如何让他们变得更容易——将要一起使用的东西放在一起,等等。如果您从未探索过用例的概念,请阅读他们。
不要犹豫构建复合 View 。我在 Stack Overflow 上看到的许多问题都与将工具栏放在表格顶部或在文本字段的背景中放置图像有关。我理解以简单的方式做事的愿望,正如我在上面#1 中所说的,如果有简单的方法,就使用它。但在许多情况下,解决方案只是以适当的位置和透明度对几个 View 进行分层。
关于iphone - iPhone 开发的陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1216532/
正如问题所说,C++ 程序员在转向 Java 时面临哪些常见/主要问题?我正在寻找一些广泛的主题名称或示例以及工程师必须进行的日常调整。然后我可以去深入阅读这个。 我对多年来使用 C++ 并不得不使用
我们正在准备发布一个在过去一年中一直在开发的大型网络应用程序。我们即将开始集成 ActiveMerchant 的过程,以处理该服务的经常性订阅费用。 我正在寻找关于考虑到我们的要求(如下所列)的最佳实
您陷入过哪些 Powershell 陷阱? :-) 我的是: # ----------------------------------- function foo() { @("text")
对于商业数据库而言,数据库升级是一个优先级很高的事情,有版本升级路线图,有相应的补丁,而且对于方案还有一系列的演练,显然是一场硬仗。而在MySQL方向上,升级这件事情就被淡化了许多,好像只能证明它的
Android 新增了 AsyncLayoutInflater类到他们的支持库版本 24.0 和更高版本,并且可以在 Android SDK 4.0 或更高版本(几乎所有可用的设备)中使用。 根据 A
作为一名刚接触 Vala 的程序员,您对刚接触该语言的人的第一条建议是什么? 最佳答案 这很大程度上取决于您的背景。如果您来自 C/C++/Java,最好的建议是学习函数式编程。 Vala 支持真正的
作为 Spring 世界的新手,我认为如果有一个社区 Wiki 页面列出基于 Spring 的项目中常见的陷阱会很好。 这些包括: 被误解的概念 在 Spring 3.X 中不再推荐的 Spring
我正在开发一个脚本来管理一些陷阱。一开始我只用这段代码管理 INT 和 SIGTSTP,它工作得很好: #!/bin/bash function capture_traps() { echo
bash 中是否可以在函数退出时调用某些命令。我的意思是: function foo { # something like this maybe? trap "echo \"exit
我们在我们的域中托管了一个应用程序。所有用户都需要先通过 POST 表单登录。登录后,表单会自动重定向到我们网站上的仪表板页面。 是否可以允许一些客户托管他们自己的登录表单(在他们的网站上),然后发布
我有一个无窗口计时器(没有 WM_TIMER),它只在给定的时间段过去后触发一次回调函数。它作为 SetTimer()/KillTimer() 实现。时间段足够小:100-300 毫秒。 对于每个如此
我使用 Java 大约一个月了,总体而言仍然是编程方面的业余爱好者,所以如果我有什么不对的地方,请随时纠正我。也许我会提供一些多余的细节,但我现在很困惑,无法决定什么才是重要的。 因此,我一直在开发多
我正在开发一个需要使用 FileSystemWatcher 类的 C# 程序,以便在创建新文件时通知它。作为初始化的一部分,程序会扫描目录,以便处理其中已存在的任何文件。一切正常。 但是,在与另一位开
下面材料整理自Internet&著作。 STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list
我正在使用 NuGet 包 Polly实现捕获故障转移 SQL 异常的重试逻辑。我在 Azure 中设置了 SQL Server Always On 高可用性。 我不想捕获所有 SQL 异常(这是不正
在编写 Scala RemoteActor 代码时,我注意到了一些陷阱: 必须设置 RemoteActor.classLoader = getClass().getClassLoader() 以避免“
出于某种原因,当我针对不存在的文件运行以下脚本时,我的脚本没有捕获异常。我基于我在网上找到的示例中的代码,但它似乎对我不起作用。 我将不胜感激有关如何解决此问题的任何提示或指示。 注意:在下面的例子中
我正在尝试从 R 调用 winBUGS 来估计逻辑回归。我正在使用以下代码: # Directorio de trabajo setwd("~/3 Diplomado/7 Bayesiana/8t1"
我正在尝试从 R 调用 winBUGS 来估计逻辑回归。我正在使用以下代码: # Directorio de trabajo setwd("~/3 Diplomado/7 Bayesiana/8t1"
我正在使用 ctypes 包装一个大型 C 库。 ctypesgen生成了包装代码(与我自己的做法相差不远)。作为包装 C 结构的 ctypes 的一部分,它们被制作为对象,其中一些在 C 中具有“s
我是一名优秀的程序员,十分优秀!