self = [super init];在继承NSObject的同时编写自定义初始化方法是否有意义?我知道在继承任何其他类时,它是必要的,因为它可能有自定义初始化,但NSObject init方法是否做了什么?
假设我正在制作一个国际象棋应用程序,其中的位置存储如下:
struct Position {
var pieces: Set<Piece>
// some other stuff
}
Run Code Online (Sandbox Code Playgroud)
Piece 定义如下:
struct Piece: Hashable {
var row: Int
var column: Int
let player: Player
let type: PieceType
var hashValue: Int {
return 8 * row + column
}
}
Run Code Online (Sandbox Code Playgroud)
Player并且PieceType是简单的枚举:
enum Player {
case White, Black
}
enum PieceType {
case Queen, King, ...
}
Run Code Online (Sandbox Code Playgroud)
现在,我想通过 a Piecein aPosition在董事会上的位置来访问它。a 的哈希值Piece由其位置唯一确定,因此Piece应该可以在恒定时间内访问 a 。但是,Swift 集合没有通过其哈希值获取其元素之一的函数。我能想到的就是
for piece in pieces …Run Code Online (Sandbox Code Playgroud) 你好,我有这样的约会
2016-02-10 00:00:00
Run Code Online (Sandbox Code Playgroud)
我想以这种方式得到它的日期
14.05.2016 or 14-05-2016
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的
let dateFormatter = NSDateFormatter()
let date = "2016-02-10 00:00:00"
dateFormatter.dateFormat = "dd-MM-yyyy"
let newdate = dateFormatter.dateFromString(date)
print(newdate) //nil is coming
Run Code Online (Sandbox Code Playgroud) 我知道这是使用单元测试时的常见错误消息,但我没有这样做。这就是我所做的:
print("Hello, World!")我在该行放置了一个断点po 3+3在控制台中输入类似的内容然后我收到这条消息:
objc[929]:类 _TtCs18_EmptyArrayStorage 在 /Users/tim/Library/Developer/Xcode/DerivedData/TestProject-hlekdhnmnvllzganostmsaamwjje/Build/Products/Debug/TestProject 和 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault 中实现.xctoolchain/usr/lib/swift/macosx/libswiftCore.dylib。将使用两者之一。哪一个是未定义的。
不仅是_TtCs18_EmptyArrayStorage,还有_TtCs24_ContiguousArrayStorage1大约两打。
我没有对我的项目做任何事情(甚至没有更改任何代码),所以我不确定我做错了什么。几天前我什至在我的 Mac 上进行了全新安装。我可以做什么来解决这个问题?
我有一个关联类型的协议:
protocol MyProtocol {
associatedtype Q
}
Run Code Online (Sandbox Code Playgroud)
现在我想要一个枚举
enum MyEnum<Q> {
case zero
case one(MyProtocol)
case two(MyProtocol, MyProtocol)
}
Run Code Online (Sandbox Code Playgroud)
其中每个关联的值都Q作为其关联类型。这不起作用:
enum MyEnum<Q> {
case zero
case one<P: MyProtocol where P.Q == Q>(P)
case two<P1: MyProtocol, P2: MyProtocol where P1.Q == Q, P2.Q == Q>(P1, P2)
}
Run Code Online (Sandbox Code Playgroud)
显然,单个枚举成员不能有自己的通用约束。
我唯一能想到的就是将这些约束移动到枚举声明中,但这会固定关联的类型。为了证明为什么这不是我想要的,这就是我希望能够做的:
struct StructA: MyProtocol {
typealias Q = Int
}
struct StructB: MyProtocol {
typealias Q = Int
}
var enumValue = MyEnum.one(StructA())
enumValue = .two(StructB(), StructA())
enumValue = .two(StructA(), StructB()) …Run Code Online (Sandbox Code Playgroud) 我试图在11个按钮之间获得水平相等的间距,我尝试过使用IB,但我无法在不同的屏幕尺寸上同样获得按钮.此外,我想增加按钮的大小,并保持每个按钮在更大的屏幕上的比例.
我一直在尝试所有不同的约束设置,但我无法做到正确.这可能实现,如果是,如何?
UIButton例如,在Xcode中创建单个视图应用程序并拖动输入时,在iPhone模拟器中运行应用程序时会显示该按钮.但是,在创建新UIViewController类并将其设置为情节提要文件中的视图控制器的自定义类时,iPhone模拟器中仅显示黑屏.
我做错了什么?
在我的方法中,我声明了一些变量,包括int blockCount;.我不止一次称这种方法.使用Xcode调试器,我发现在第二次调用该方法之后,将值blockCount设置为364265,而将其设置为2,仅提前几毫秒.
这不是一个真正的问题,因为我可以将它设置为0或我想要的任何其他数字,但是一次又一次地声明某个变量是不好的编程习惯?我对编程很陌生,我想确保我正确地做事.:)
我正在连续四个应用程序,或者,至少是一个计算最佳动作和内容的类.游戏板的高度为6,宽度为7.我不确定是否应该命名实例变量gamePosition[6][7]或gamePosition[7][6].我知道我会使用哪一个并不重要,但是比另一个更常见?我想马上以正确的方式做到这一点.
我学得很快,想要了解如何制作嵌套函数
extension Auto {
// MARK: Auto extensions
func isRegistred() -> Bool {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想验证一个Auto是否已经注册我必须使用这一行如果Auto.isRegistered()
自动注册了我也希望能够验证它是否是一个新的,所以我想添加一个isNew()功能.是否有可能增加一个嵌套函数,这样我仍然可以验证,如果汽车所注册Auto.isRegistered()并使用Auto.isRegistered().isNew(),以验证它是一个注册的汽车,一个新的?就像是
extension Auto {
// MARK: Auto extensions
func isRegistred() -> Bool {
func isNew() -> Bool{
return true
}
return true
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的网页上添加了一个javascript文件,如下所示:
<script type="text/javascript" src="../../js/filename.js"></script>
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,然后我尝试将相对路径更改为绝对路径,如下所示:
<script type="text/javascript"
src="/home/name/domains/domain.com/public_html/js/filename.js"></script>
Run Code Online (Sandbox Code Playgroud)
这会导致此服务器以404 (Not Found)状态响应.
我很确定这是这个文件的正确绝对路径,因为使用require_once()非常相似的绝对路径导入某个php文件可以正常工作.实际上,PHP函数realpath("../../js/filename.js")产生了"/home/name/domains/domain.com/public_html/js/filename.js".
我究竟做错了什么?
我有以下结构
aSectionArray = [[objA, objB, objC], [obj1, obj2, obj3], [objX, objY, objZ]]
Run Code Online (Sandbox Code Playgroud)
比如,objA有一个bool isEnabled.
我需要过滤aSectionArray基于这个bool(比方说isEnabled == true).
需要帮助.