小编Zax*_*nov的帖子

Swift中的只读和非计算变量属性

我正在尝试使用新的Apple Swift语言来解决问题.假设我曾经在Objective-C中做过类似的事情.我有readonly属性,他们不能单独更改.但是,使用特定方法,属性会以逻辑方式更改.

我采用以下示例,一个非常简单的时钟.我会在Objective-C中写这个.

@interface Clock : NSObject

@property (readonly) NSUInteger hours;
@property (readonly) NSUInteger minutes;
@property (readonly) NSUInteger seconds;

- (void)incrementSeconds;

@end

@implementation Clock

- (void)incrementSeconds {
     _seconds++;

     if (_seconds == 60) {
        _seconds = 0;
        _minutes++;

         if (_minutes == 60) {
            _minutes = 0;
            _hours++;
        }
    }
}

@end
Run Code Online (Sandbox Code Playgroud)

出于特定目的,我们不能直接触摸秒,分和小时,并且只允许使用方法逐秒递增.只有这种方法可以通过使用实例变量的技巧来更改值.

由于Swift中没有这样的东西,我试图找到一个等价物.如果我这样做:

class Clock : NSObject {

    var hours:   UInt = 0
    var minutes: UInt = 0
    var seconds: UInt = 0

    func incrementSeconds() {

        self.seconds++

        if self.seconds …
Run Code Online (Sandbox Code Playgroud)

properties objective-c swift

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

Swift:如何从NSScanner中获取AutoreleasingUnsafePointer <NSString?>的值?

我不知道如何使用AutoreleasingUnsafePointer.我有以下代码:

var myString: AutoreleasingUnsafePointer<NSString?>

myScanner.scanUpToCharactersFromSet(NSCharacterSet.newlineCharacterSet(), intoString: myString)
Run Code Online (Sandbox Code Playgroud)

现在,我该怎么做才能从'myString'中获取字符串?我知道它可以是零,但我不知道如何得到字符串值,以防它不是零.Swift展开技术仅适用于Optional类型.

谢谢!

macos cocoa ios swift

4
推荐指数
1
解决办法
3174
查看次数

标签 统计

swift ×2

cocoa ×1

ios ×1

macos ×1

objective-c ×1

properties ×1