小编tng*_*tng的帖子

Swift:测试nil的选项

我正在使用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以及它对待我缺少的选项的方式?

optional ios swift

125
推荐指数
9
解决办法
15万
查看次数

当segue是模态时,performSegueWithIdentifier非常慢

我有一个简单的表视图,我在表视图上处理select操作.这个动作遵循一个segue.

如果segue是pushsegue,则立即显示下一个视图.如果segue是modalsegue,则下一个视图:

  • 需要6秒左右才能显示
  • 如果我再次点击(第二次点击)立即显示

我试着四处寻找一些想法,但似乎没有一个适用于我的情况.特别是:

  • 我正在主UI线程上执行segue
  • 我的观点非常简单(所以没有问题viewDidLoad).此外,当segue push表示加载目标视图时没有问题,它显示在瞬时附近
  • 我试过传递nilsender; 同样的效果.

有没有人对此有任何想法?

objective-c ios segue swift

45
推荐指数
2
解决办法
1万
查看次数

迦太基:没有iOS平台的共享框架方案(对于我自己的框架)

我创建了一个构建并测试它的框架(称为ProjectOne).我想允许使用这个框架Carthage.我编辑了我的方案,并将默认"ProjectOne"方案分享到了XCODE.我做了一个carthage构建并验证框架是在Carthage/Build/iOS中构建的.

然后我推送到github并创建一个版本.

在另一个项目中,我正在使用这个框架.但是,carthage报道 "Dependency ProjectOne没有针对任何平台的共享框架方案:iOS".

我很确定我在ProjectOne中分享了这个计划 - 有谁知道为什么会这样?

xcode ios carthage

22
推荐指数
2
解决办法
8641
查看次数

隐藏在导航栏下的Tableview(但仅适用于一个选项卡)

我正在使用Xcode 5与故事板和自动布局.我的观点是:

  • 根导航视图
  • 选项卡视图控制器(它是导航视图的默认视图)
  • 两个标签视图

在两个选项卡视图中,我在其上放置了一个UITableView,并设置了标准的IB内容.两个选项卡视图控制器在设置方面几乎完全相同(它们都来自UIViewController).

然而,对于tableview来说,事情很奇怪.第一个表视图具有正确的设置,其中单元格从"导航下方"开始,您可以向上滚动它.第二个表视图以"在导航下"的单元格开头 - 似乎插图是错误的.

但是为什么仅仅第二个标签视图出错,而不是第一个?我也没有做任何时髦的事情,并且我多次仔细研究代码,以确保两个tableview控制器几乎相同(除了单元格内容).

(在第二张图像上,注意"载波"状态栏下的绿色位).

第一个标签视图 - 看起来正确

第二个标签视图 - 看起来不对

objective-c uitableview ios

9
推荐指数
2
解决办法
2万
查看次数

Objective C委托还是C风格的块回调?

我正在设计一个类,当发生某些事情时,它会"触发事件".这些事件往往与非UI相关.我想知道这样做的最佳方法是什么.我一直在探索:

代表

我将定义一个委托类,在init函数中接受委托,并在事件发生时调用委托类上的方法.

C风格的街区

我将定义一个函数指针,并在init函数中接受一个函数.我会在事件发生时调用它.

在这两种情况下,我可能需要处理多个"源",因此我需要一组委托或块.

我注意到在iOS编程中,代表往往更喜欢UI框架.但是我来自函数编程背景,我非常适合接受函数点并在调用站点传递lambdas,我喜欢编译器为你处理吊装变量,而且你通常需要较少的类状态.但我发现许多iOS开发人员正在使用委托.

iOS中通常首选的机制是什么?

c lambda delegates objective-c ios

8
推荐指数
1
解决办法
3349
查看次数

标签 统计

ios ×5

objective-c ×3

swift ×2

c ×1

carthage ×1

delegates ×1

lambda ×1

optional ×1

segue ×1

uitableview ×1

xcode ×1