我正在使用Xcode 6 Beta 4.我有这种奇怪的情况,我无法弄清楚如何适当地测试选项.
如果我有一个可选的xyz,是正确的测试方法:
if (xyz) // Do something
Run Code Online (Sandbox Code Playgroud)
要么
if (xyz != nil) // Do something
Run Code Online (Sandbox Code Playgroud)
文档说这是第一种方式,但我发现有时,第二种方式是必需的,并且不会产生编译器错误,但有时,第二种方式会产生编译器错误.
我的具体示例是使用桥接到swift的GData XML解析器:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
Run Code Online (Sandbox Code Playgroud)
在这里,如果我刚刚做了:
if xmlError
Run Code Online (Sandbox Code Playgroud)
它总会回归真实.但是,如果我这样做:
if (xmlError != nil)
Run Code Online (Sandbox Code Playgroud)
然后它工作(如在Objective-C中如何工作).
是否存在GData XML以及它对待我缺少的选项的方式?
我有一个简单的表视图,我在表视图上处理select操作.这个动作遵循一个segue.
如果segue是push
segue,则立即显示下一个视图.如果segue是modal
segue,则下一个视图:
我试着四处寻找一些想法,但似乎没有一个适用于我的情况.特别是:
viewDidLoad
).此外,当segue push
表示加载目标视图时没有问题,它显示在瞬时附近nil
给sender
; 同样的效果.有没有人对此有任何想法?
我创建了一个构建并测试它的框架(称为ProjectOne).我想允许使用这个框架Carthage
.我编辑了我的方案,并将默认"ProjectOne"
方案分享到了XCODE
.我做了一个carthage构建并验证框架是在Carthage/Build/iOS中构建的.
然后我推送到github并创建一个版本.
在另一个项目中,我正在使用这个框架.但是,carthage报道 "Dependency ProjectOne没有针对任何平台的共享框架方案:iOS".
我很确定我在ProjectOne中分享了这个计划 - 有谁知道为什么会这样?
我正在使用Xcode 5与故事板和自动布局.我的观点是:
在两个选项卡视图中,我在其上放置了一个UITableView,并设置了标准的IB内容.两个选项卡视图控制器在设置方面几乎完全相同(它们都来自UIViewController).
然而,对于tableview来说,事情很奇怪.第一个表视图具有正确的设置,其中单元格从"导航下方"开始,您可以向上滚动它.第二个表视图以"在导航下"的单元格开头 - 似乎插图是错误的.
但是为什么仅仅第二个标签视图出错,而不是第一个?我也没有做任何时髦的事情,并且我多次仔细研究代码,以确保两个tableview控制器几乎相同(除了单元格内容).
(在第二张图像上,注意"载波"状态栏下的绿色位).
我正在设计一个类,当发生某些事情时,它会"触发事件".这些事件往往与非UI相关.我想知道这样做的最佳方法是什么.我一直在探索:
代表
我将定义一个委托类,在init函数中接受委托,并在事件发生时调用委托类上的方法.
C风格的街区
我将定义一个函数指针,并在init函数中接受一个函数.我会在事件发生时调用它.
在这两种情况下,我可能需要处理多个"源",因此我需要一组委托或块.
我注意到在iOS编程中,代表往往更喜欢UI框架.但是我来自函数编程背景,我非常适合接受函数点并在调用站点传递lambdas,我喜欢编译器为你处理吊装变量,而且你通常需要较少的类状态.但我发现许多iOS开发人员正在使用委托.
iOS中通常首选的机制是什么?