Questions tagged «ios»

有关与Apple iOS操作系统(直接或间接)特别相关的问题的问题。

15
开发人员应如何拒绝不可能的要求?[关闭]
这是我面临的问题: 来自项目经理的报价: 嘿Spark,我正在为您分配开发可用于许多不同iOS应用程序的框架的任务。要求如下: 它应该能够检测用于操纵UI的拇指或手指的粗细。 有了这些信息,UI的所有元素都应该自动排列和调整大小。 对于较大的拇指,应将元素排列在靠近屏幕中心的位置。 对于较小的拇指,应将元素布置在屏幕的角落附近。 对于较大的拇指,所有字体都应较小。(在这种情况下,我们假设是成年人。) 对于较小的拇指,所有字体都应较大。(在这种情况下,我们假设年龄较小。) 摘要: 该框架对于以编程方式创建用户友好的用户界面是必需的。框架的开发方式应使我们可以根据需要用于许多项目,因此它也必须对开发人员非常友好。 我是承担此任务的开发人员,所以我的问题如下: 我怎么能解释这些要求有点荒谬? 我该如何解释,集中精力开发实际项目会更好? 我怎么能解释,即使这是可能的,我也不建议开发这样的东西? 我如何礼貌,温和,礼貌地对这个项目说不? 我如何解释,即使对于具有3年经验的开发人员,这也可能无法实现?

6
如何避免iOS上笨拙的UITableViewController?
在iOS上实施MVC模式时遇到问题。我已经搜索了Internet,但似乎找不到解决此问题的任何好方法。 许多UITableViewController实现似乎很大。我见过的大多数示例都允许UITableViewController工具<UITableViewDelegate>和<UITableViewDataSource>。这些实现UITableViewController是变大的一个重要原因。一种解决方案是创建实现<UITableViewDelegate>和的单独类<UITableViewDataSource>。当然,这些类必须参考UITableViewController。使用此解决方案是否有任何弊端?通常,我认为您应该使用委托模式将功能委托给其他“ Helper”类或类似类。是否有解决此问题的完善方法? 我不希望模型包含太多功能,也不希望包含视图。我认为逻辑应该真正属于控制器类,因为这是MVC模式的基石之一。但是最大的问题是: 您应该如何将MVC实现的控制器划分为较小的可管理部分?(在这种情况下,适用于iOS中的MVC) 尽管我正在特别寻找iOS的解决方案,但可能会有解决此问题的一般模式。请举例说明解决此问题的好方法。请提供一个论点,为什么您的解决方案很棒。

2
MVCS-模型视图控制器存储
我最近决定开始学习iOS开发,为此,我一直在阅读iOS编程:The Big Nerd Ranch Guide。在这本书中,作者描述了一种设计模式MVCS-Model-View-Controller-Store,其基本思想是,由于许多应用程序使用多个外部数据源,因此将请求逻辑保留在控制器中可能会变得非常混乱。建议将所有请求逻辑从控制器中移出并移到单独的对象中。 简而言之,引用这本书 Model-View-Controller-Store将请求逻辑放入一个单独的对象中,我们将此对象称为存储(图28.4)。使用存储对象可以最大程度地减少冗余代码,并简化获取和保存数据的代码。最重要的是,它把处理外部资源的逻辑转移到了一个清晰且目标明确的类中。这使代码更易于理解,也易于维护和调试,并与团队中的其他程序员共享。 和 关于异步存储的一个很酷的事情是,即使很多对象在处理一个请求上做了很多工作,但请求的流及其响应却在控制器中的一个位置。这给我们带来了易于阅读且易于修改的代码的优势。 我想了解更多关于这种模式的信息,并想看看其他人可能要说些什么,但是在网上搜索时,我唯一能找到的参考是同一本书(这种模式也许以其他名字叫吗?)。 在我看来,作者的逻辑似乎很有意义,而且似乎是常规MVC模式的逻辑扩展,但这也许是因为我实际上对MVC模式没有太多的经验(除了涉足iOS开发之外,我还拥有带有骨干 .js的已使用MVV (也就是说,如果您将其视为MVC)。 我希望也许有更多经验的人可以阐明我所缺少的MVCS模式是否存在任何明显的缺陷/问题。

1
REST API-特定于移动设备的挑战
我正在移动端上开发一个新的iOS应用程序项目。正在进行一些体系结构更改,事实证明,我们将不得不依赖自定义构建的私有API,该API将由我们正在构建的应用程序以及网站等其他客户端使用。 正在设计的API遵循映射到HTTP动词的以资源为中心的URI和CRUD操作的Rest样式。像: GET www.example.com/books DELETE www.example.com/books/482094 POST www.example.com/users/6793 问题在于,这种风格通常导致移动客户端需要执行许多请求来加载单个应用程序屏幕或管理单个用户UI操作。这将导致应用程序处于加载模式8秒钟,直到拥有所需的一切为止。缓慢且无响应的应用程序。 移动客户端在连接方面有严重的限制,因此理想情况下,我们应遵循以下规则: 1个屏幕== 1个API调用 1个保存== 1个API调用。 在许多情况下,这会使您与REST设计原则发生冲突,例如: 假设您的应用离线了一天,您需要与后端数据库的四个表进行同步,并且您需要像 www.example.com/sync_everything?since=2015-07-24 可以说有一个屏幕,用户可以在其中编辑许多对象,例如在待办事项列表中勾选任务。应该有一种方法可以在一个批处理API调用中编辑所有这些任务记录,而不是每次编辑都可以一个API调用。 假设有一个混合了来自ORDER,SALESMEN和PRODUCT数据库表的信息的屏幕,我应该一次调用而不是三个调用来获取该数据。 这样做的风险是,我们最终可能会获得最宁静的API,以及最无用的无响应移动应用程序。 问题是我只是那里的新承包商,我需要的是可以帮助我阐明这些要点的东西,一些受到尊敬的消息来源的文章等等。主要参与者在针对其移动客户端的REST风格上妥协(例如:通过使用复合聚合API端点)。 或针对此一般问题的任何解决方案。谢谢!
25 rest  api  ios  mobile 

4
完美的淡入淡出
我发现很难用语言来描述这个问题,这就是为什么我制作了一个视频(45秒)来说明它的原因。这是问题的预览,请在Vimeo上查看它:http : //vimeo.com/epologee/perfect-crossfade 在过去十年中,在许多领域中,我一直都在反复讨论如何创建完美的淡入淡出效果或溶解两个图像或形状的问题。首先是视频编辑,然后是Flash动画,现在是iOS编程。当您开始对其进行谷歌搜索时,可以找到许多解决方法,但是我这次真的想解决这个问题,而不会受到黑客的攻击。 摘要: 如果要使生成的透明度与任一原始位图相匹配,则在对两个半透明,同色位图进行交叉渐变时应用的技术或曲线的名称是什么? 是否存在(数学)函数来计算淡入淡出期间所需的部分透明度/ alpha值? 是否有编程具有这些功能为预设语言,类似ease in,ease out或ease in out在ActionScript或可可中发现的功能呢? 更新:除了视频,我还制作了一个示例项目(需要Xcode和iOS SDK)并将其发布在github上。它显示了与视频相同的动画,但是这次使用了正方形:https : //github.com/epologee/StackOverflow-Example-Code

11
为什么需要在实际的iPhone设备上测试我的iPhone应用程序
我为iPhone开发了一个应用程序,现在我希望在App Store上使用它。我的许多iOS极客朋友告诉我要在实际设备(例如iPhone)上对其进行测试。 因此,我想知道为什么尽管他们(苹果公司)提供了与我的设备几乎相同的“模拟器”,但为什么有必要在实际的iPhone设备上测试我的iPhone应用程序吗?
23 testing  iphone  ios 

7
您是否有技术原因无法在Linux计算机上开发iOS应用程序?
我知道为什么您不能在Linux计算机上开发OS X应用程序,但是有充分的技术原因为什么您不能在Linux上开发iPhone和iPad应用程序吗?为什么无法将iOS源代码编译成iOS可执行文件并在Linux上的iOS模拟器中运行它,或将其安装在开发iOS设备上? 仅仅是因为XCode IDE是可可应用程序吗? 看来,您可以在任何类型的平台上开发Android应用。我不明白为什么iOS无法如此。
23 ios  linux  xcode 

10
iPhone中64位A7有什么好处
我试图弄清楚为什么在iPhone中使用64位处理器如此重要。我知道寄存器将是原来的两倍,因此处理器可以处理两倍的数据,从而可以提高性能。 但是,我认为很快就不会有很多手机的内存超过4GB。似乎过大,会对电池寿命产生负面影响。 我看到的另一个问题是,现在大多数变量都需要两倍的内存。这将在具有少量内存的移动环境中产生问题。 我相信Apple的员工很聪明,他们这样做的理由可能很充分,我只是想了解他们。 编辑 对GPU的了解不多,但有人告诉我,使用64位寄存器,可以将2个像素加载到每个寄存器中,并且可以分别对其进行操作。关于64位有图形优势吗?
21 ios  iphone  64-bit 

3
Massive View Controller-IOS-解决方案
我确定每个新的iOS开发人员都会遇到以下问题:View Controller会很快因各种目的而挤满代码,很容易获得500多行代码。 这是两个基本和通用屏幕的外观: 1)表单屏幕: 2)表格视图控制器屏幕 到目前为止,我已经阅读了两种不同的解决方案: 第一个解决方案:https : //bendyworks.com/single-responsibility-principle-ios/。这是基于通知的,它将View Controller与(意图)View Model完全分开,从而减少了View Controller中的代码。我认为它具有破坏代码的缺点,类似于Go-To结构。看起来像这样: 第二种解决方案使拥挤的View Controller保持相同(按钮操作在VC中执行,依此类推)。但使用TPKeyboardAvoiding,BlocksKit之类的库或其他大多数基于类别的解决方案。使用第二种解决方案,可以大大减少代码,但是视图控制器仍然承担着很多责任。 您如何看待这些解决方案?哪个更好?有更好的吗?
16 mvc  ios  objective-c 

2
我正在将我的应用程序从iOS移植到Android:我需要知道什么?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以改善并且可以重新提出,请访问帮助中心以获取指导。 关闭 6年前。 我应该避免什么陷阱? Objective-C开发人员始终误解哪些Java语言范例?我学会了用Java编程,但是多年来我一直在用Objective-C从事任何工作。 Android和iOS之间的设计模式有何不同? 如果您自己进行了转换,那么Android的哪些部分会让您感到困惑或使您学得比应该花的时间更长? Eclipse是适用于Android的最佳OS X IDE吗? 记录下来,我的应用与UIKit和Foundation紧密相连,因此“ porting”一词可能用词不当;实际上,我将完全为Android重写它。没有代码重用。另外,我这样做是为了学习Android,所以我宁愿在端口上失败并学习Android,也不愿走捷径。 作为背景知识,这个问题是由我在Stackoverflow上看到的问题类型提示的。通常,您可以通过尝试编写Obj-C时犯下的愚蠢错误来判断某人的背景(C#或Java)。我想避免使Java开发人员大失所望的各种错误,他们说:“愚蠢的Objective-C开发人员,他们会学吗?”
15 android  ios 

3
安全的iPhone应用程序↔服务器通信
在我的iOS应用与其服务器组件之间实现私人通信的最佳方法是什么?将一个不变的“秘密密钥”烘焙到应用程序源中是否足够,还是我需要以某种方式动态设置此类“握手”密钥的生成? 服务器本身无法访问任何敏感数据,因此,即使用户访问了一些专用端点,也无法将它们带到任何地方,但我只想对公众隐藏这些端点。基本上,我想忽略所有命中特定路由的请求,除非它们来自我的iOS应用。 如果重要的话,服务器组件可在RoR上运行。

1
iOS / OSX开源项目的命名约定
并非总是如此,但在大多数情况下,您会发现iOS或Mac OS X开源项目,其名称以作者姓氏和名字的首字母开头。如果项目要由Nick Leblanc创作,则该项目将被读取为NLMyProject。 例子: 符文·马德森(Rune Madsen)的RMSwipeTableViewCell, Ezequiel Becerra的EBCardCollectionViewLayout, SDiPhoneVersion塞巴斯蒂安Dobrincu, Leo Natan的LNNotificationsUI。 那是哪里来的 是否有人首先以这种方式编写的,然后其他人都遵循? 即使在《苹果指南》中,我也找不到任何相关信息。那个成语写在任何地方吗?

1
为iOS应用开发组织代码
我一直在为iOS平台开发应用程序,并且一直在进行中,我注意到我在整理文件(.h,.m,.mm)方面做得很糟糕。在为iOS项目组织文件时,是否有任何行业标准或最佳实践? 我的文件包括自定义类(在视图控制器旁边),自定义的视图控制器,第三方内容,仅适用于iOS 5.0+的代码以及适用于早期版本的代码。我正在寻找一种解决方案,以一种使其他人(或我自己在未来几年)可以查看并理解应用程序基本结构的方式来组织事物,而不会迷失在其中找到的多个文件中。

2
为什么Apple只允许iOS上使用静态框架?
显然,Apple可以为iOS创建动态加载的库(称为框架),因为它们带有XCode(例如UIKit)。应用开发人员只能创建静态库,或者充其量只能诱使Xcode在实际加载静态库时认为它正在加载框架,这被称为创建假框架,某些拖放方便,但没有任何动态加载优势。 Apple拒绝应用程序开发人员使用动态框架的原因是什么?似乎相当容易使用外部库,因为开发人员不必依赖挑剔的链接器标志或开源库依赖链。 我看到一个常见的原因是安全性。那么,为什么Apple允许OSX而不是iOS允许它?那里的安全性不是吗? 编辑:自iOS 8起,这不再相关。Apple已添加对动态框架的支持。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.