小编Sen*_*ful的帖子

Swift类中的静态vs类函数/变量?

以下代码在Swift 1.2中编译:

class myClass {
    static func myMethod1() {
    }
    class func myMethod2() {
    }
    static var myVar1 = ""
}

func doSomething() {
    myClass.myMethod1()
    myClass.myMethod2()
    myClass.myVar1 = "abc"
}
Run Code Online (Sandbox Code Playgroud)

静态函数和函数有什么区别?我应该使用哪一个,何时使用?

如果我尝试定义另一个变量class var myVar2 = "",它会说:

类中尚未支持的类存储属性; 你的意思是'静态'吗?

当支持这个特性时,静态变量和变量之间的区别是什么(即两者都是在类中定义的)?我应该使用哪一个,何时使用?

(Xcode 6.3)

variables static class function swift

398
推荐指数
8
解决办法
14万
查看次数

Xcode 5中有哪些新的文档命令?

一个Xcode中5的新功能是一种特殊的注释语法来记录自己的代码的能力.格式类似于doxygen,但似乎只支持这些功能的子集.

支持哪些命令,哪些命令不支持?
他们的任何用法与doxygen有什么不同?

documentation comments doxygen objective-c xcode5

186
推荐指数
4
解决办法
4万
查看次数

矢量图像如何在Xcode中工作(即pdf文件)?

矢量支持如何在Xcode 6中工作?

当我尝试调整图像大小时,它看起来是锯齿状的,是什么给出的?

xcode vector-graphics

168
推荐指数
4
解决办法
5万
查看次数

在Xcode Unit测试中使用@testable时"没有这样的模块"

我最近更新到Xcode 7 beta 5.我尝试在早期项目中添加单元测试,但是我收到错误消息"没有这样的模块[myModuleName]"就@testable import myModuleName行了.

在此输入图像描述

我试过了

  • 使用OptionClean Build Folder 清理项目
  • 检查"构建选项"中的"启用可测试性"(调试)是否设置为"是"
  • 删除测试目标,然后重新添加iOS单元测试包

这项工作都没有用(但我已经在另一个项目中进行了测试).还有其他人有这个问题并解决了吗?

xcode unit-testing ios xctest

141
推荐指数
13
解决办法
7万
查看次数

当尝试推送SourceTree时,"更新被拒绝,因为标签已经存在"

尝试通过源树推送时,我收到以下错误:

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master 
Pushing to https://user@github.com/repo.git
To https://user@github.com/repo.git
 = [up to date]      master -> master
...
 ! [rejected]        example_tag -> example_tag (already exists)
updating local tracking ref 'refs/remotes/origin/master'
error: failed to push some refs to 'https://user@github.com/repo.git'
hint: Updates were rejected because the tag already exists in the remote.
Completed with errors, see above
Run Code Online (Sandbox Code Playgroud)

据我所知,我没有对这个标签做任何改动.我怎样才能解决这个问题?

git push atlassian-sourcetree

93
推荐指数
5
解决办法
5万
查看次数

在.NET中按创建日期获取文件

我有一个包含许多文件的文件夹.有没有简单的方法来获取目录中的文件名按创建日期/时间排序?

如果我使用Directory.GetFiles(),它将返回按文件名排序的文件.

.net c# file

81
推荐指数
4
解决办法
12万
查看次数

如何通过忽略Swift中的关联值来比较枚举与关联值?

在阅读如何使用关联值测试Swift枚举的相等性之后,我实现了以下枚举:

enum CardRank {
    case Number(Int)
    case Jack
    case Queen
    case King
    case Ace
}

func ==(a: CardRank, b: CardRank) -> Bool {
    switch (a, b) {
    case (.Number(let a), .Number(let b))   where a == b: return true
    case (.Jack, .Jack): return true
    case (.Queen, .Queen): return true
    case (.King, .King): return true
    case (.Ace, .Ace): return true
    default: return false
    }
}
Run Code Online (Sandbox Code Playgroud)

以下代码有效:

let card: CardRank = CardRank.Jack
if card == CardRank.Jack {
    print("You played a jack!") …
Run Code Online (Sandbox Code Playgroud)

comparison enums swift

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

删除所有影响UIView的约束

我有一个UIView,通过几个约束放在屏幕上.一些约束由superview拥有,其他约束由其他祖先拥有(例如,可能是UIViewController的view属性).

我想删除所有这些旧约束,并使用新约束将其置于新的位置.

如果不为每个约束创建一个IBOutlet并且必须记住哪个视图拥有所述约束,我该怎么做呢?

详细说明,天真的方法是为每个约束创建一堆IBOutlet,然后涉及调用代码,例如:

[viewA removeConstraint:self.myViewsLeftConstraint];
[viewB removeConstraint:self.myViewsTopConstraint];
[viewB removeConstraint:self.myViewsBottomConstraint];
[self.view removeConstraint:self.myViewsRightConstraint];
Run Code Online (Sandbox Code Playgroud)

这段代码的问题在于,即使在最简单的情况下,我也需要创建2个IBOutlet.对于复杂的布局,这可以轻松达到4或8个所需的IBOutlet.此外,我需要确保在正确的视图上调用我的删除约束的调用.例如,想象一下,myViewsLeftConstraint拥有viewA.如果我不小心打电话[self.view removeConstraint:self.myViewsLeftConstraint],什么都不会发生.

注意:方法constraintsAffectingLayoutForAxis看起来很有前景,但仅用于调试目的.


更新:很多我收到处理问题的答案self.constraints,self.superview.constraints或一些人的变种.这些解决方案不起作用,因为这些方法只返回视图所拥有的约束,而不是影响视图的约束.

要澄清这些解决方案的问题,请考虑以下视图层次结构:

  • 祖父
    • 父亲
        • 儿子
        • 女儿
      • 哥哥
    • 叔叔

现在假设我们创建了以下约束,并始终将它们附加到最近的共同祖先:

  • C0:我:和儿子一样(由我拥有)
  • C1:我:宽度= 100(由我拥有)
  • C2:我:和兄弟一样高(由父亲拥有)
  • C3:我:和叔叔一样(由祖父拥有)
  • C4:我:和祖父一样(由祖父拥有)
  • C5:兄弟:和父亲一样(由父亲拥有)
  • C6:叔叔:和祖父一样(由祖父拥有)
  • C7:儿子:和女儿一样(由我拥有)

现在假设我们要删除所有影响的约束Me.任何适当的解决方案应该删除[C0,C1,C2,C3,C4],没有别

如果我使用self.constraints(自我就是我),我会得到[C0,C1,C7],因为这些是我拥有的唯一约束.显然,删除它是不够的,因为它丢失了[C2,C3,C4].此外,它正在C7不必要地删除.

如果我使用self.superview.constraints(自我就是我),我会得到[C2,C5],因为那些是父拥有的约束.显然我们无法删除所有这些因为C5完全无关Me.

如果我使用grandfather.constraints,我会得到[C3,C4,C6].同样,我们无法删除所有这些,因为 …

constraints objective-c uiview ios autolayout

71
推荐指数
6
解决办法
8万
查看次数

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

获得最顶级的UIViewController

如果我推动视图控制器和/或提供模态视图控制器UINavigationController,我怎样才能找出最顶层的UIViewController?或者在我的情况下,我想知道某个UITableViewController是否是最重要的.

我试过用:

self.navigationController.topViewController == self
Run Code Online (Sandbox Code Playgroud)

......但这不起作用.我猜测它失败了,因为我在它上面呈现模态视图控制器,并且topViewController只跟踪推送了哪些视图UINavigationController(而不是那些以模态方式呈现的视图).

cocoa-touch objective-c uiviewcontroller uinavigationcontroller

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