小编Jos*_*Mum的帖子

检测UITableView何时滚动到底部

以下帖子仍然是检测UITableView实例何时滚动到底部[在Swift中],或者是否已被更改(如:改进)的可接受方式?

检测UITableView是否已滚动到底部时出现问题

谢谢.

uitableview ios swift

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

为什么Xcode 6.3 beta调试器会显示Swift NSData的字节数为190但没有属性?

在运行Swift 1.2的Xcode 6.3 beta中,我似乎成功地从API中检索了一个JSON对象,但是调试器声称该对象没有属性.API在localhost上运行,并且调用如下:

  NSURLConnection.sendAsynchronousRequest( request, queue: queue,
    completionHandler: completionHandler )
Run Code Online (Sandbox Code Playgroud)

completionHandler 是一个带断点的闭包:

let completionHandler =
{
  ( response: NSURLResponse!, data: NSData!, error: NSError! ) -> Void in
  // BREAKPOINT HERE
}
Run Code Online (Sandbox Code Playgroud)

调试器显示在Xcode 6.3 beta中使用Swift 1.2 数据:NSData!是一个190字节的ObjectiveC.NSObject但没有属性,这似乎是完全矛盾的.我只是希望JSON数据,我希望隐藏在那些字节中的某个地方.我不知道调试器,或需要为Swift 1.2更新的代码,或者我对事物的理解,或其他东西都应该受到指责.我只想要JSON.

后记

JSON数据一直存在,就像字节数一样,并且得到它非常简单(使用SwiftyJSON):

let json = JSON( data: data )
Run Code Online (Sandbox Code Playgroud)

不过,Xcode 6.3 beta调试器中的属性发生了什么,仍然是一个谜.我不是把它作为我自己问题的答案,因为虽然它有效,但它可能不一定是答案.我对Swift太新了,不知道实际的答案是什么,或者即使有一个答案.

xcode ios swift

19
推荐指数
1
解决办法
1522
查看次数

为什么我的 Podspec 抛出多个:“执行策略异常注册失败并被跳过”注释?

Podspec 是:

Pod::Spec.new do |s|
    s.name             = 'MyPod'
    s.version          = '0.1.0'
    s.summary          = 'my summary.'
    s.platform         = :ios, '13.0'
    s.description      = <<-DESC
  My description.
                         DESC
    s.homepage         = 'https://github.com/MyAccount/MyPod'
    s.license          = { :type => 'MIT', :file => 'LICENSE' }
    s.author           = { 'Me' => 'my@email.com' }
    s.source           = { :git => 'https://github.com/MyAccount/MyPod.git', :tag => s.version.to_s }
    s.swift_version    = '5.0'
    s.source_files     = 'MyPod/Classes/**/*'
    s.static_framework = true

    s.dependency 'Firebase'
    s.dependency 'Firebase/Core'
    s.dependency 'Firebase/Auth'
    s.dependency 'Firebase/Database'
    s.dependency 'GoogleSignIn'
    s.dependency 'GoogleAPIClientForREST/Core'
    s.dependency 'GoogleAPIClientForREST/Sheets'
    s.dependency 'GTMAppAuth' …
Run Code Online (Sandbox Code Playgroud)

xcode xcodebuild ios cocoapods podspec

17
推荐指数
0
解决办法
2639
查看次数

成员'print'的模糊引用 - (Swift闭包中的范围?)

这编译:

let s = SignalsService()
s.addListener( "key", callback: { a, b in print( "success" ) } )
Run Code Online (Sandbox Code Playgroud)

这不是:

let s = SignalsService()
let cb = { a, b in print( "success" ) }
s.addListener( "key", callback: cb )
Run Code Online (Sandbox Code Playgroud)

引发错误Ambiguous reference to member 'print'let cb = ...行.

那为什么呢?

closures swift

9
推荐指数
1
解决办法
4916
查看次数

Swift:为什么带有setter的变量也必须有一个getter?

快速问题:为什么?


语境:

我使用Swinject依赖注入将small-s单例模型类添加到我的视图中:

defaultContainer.registerForStoryboard( MyViewController.self )
{
    responder, viewController in
    viewController.proxy = responder.resolve( MyProxy.self )!
}
Run Code Online (Sandbox Code Playgroud)

我想通过使用计算属性来防止意外覆盖此单例实例的风险:

private var _proxy: MyProxy!

var proxy: MyProxy 
{ 
    set { if _proxy == nil { _proxy = newValue } } 
}
Run Code Online (Sandbox Code Playgroud)

但.我不能.因为我还必须宣布一个吸气剂.

令人沮丧!

现在我使用以下hack.但真的......

var proxy: MyProxy?
{
    get { return nil }
    set { if _proxy == nil && newValue != nil { _proxy = newValue } }
}
Run Code Online (Sandbox Code Playgroud)

getter setter swift

7
推荐指数
1
解决办法
4348
查看次数

有没有更好的方法来应对斯威夫特的嵌套"如果让""厄运的金字塔?"

有没有比嵌套if语句更好的处理可选属性链的方法?我被建议在检查可选属性时使用if,这有意义,因为它在编译时而不是运行时处理它们,但它看起来像是疯狂!有更好的方法吗?

以下是我最终得到的"厄运金字塔",例如:

( users: [ JSONValue ]? ) in

if let jsonValue: JSONValue = users?[ 0 ]
{
    if let json: Dictionary< String, JSONValue > = jsonValue.object
    {
        if let userIDValue: JSONValue = json[ "id" ]
        {
            let userID: String = String( Int( userIDValue.double! ) )
            println( userID )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

后记

Airspeed Velocity的答案是正确的答案,但是你需要使用Swift 1.2来使用逗号分隔的多个let,因为他建议,目前只在测试版的XCode 6.3中运行.

xcode if-statement let optional swift

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

Swift函数范围 - 引用self(表示"self as the enveloping function")

采取这个基本功能:

func sampleFunction ()
{
    print( self )
}
Run Code Online (Sandbox Code Playgroud)

这里self指的是包含它的类实例,而不是 - 可能可以说更有意义 - 包含它的函数.

如何获得对包络函数的引用而不是它的包络类实例

理想情况下,我希望做这样的事情:

func sampleFunction ( value: Int )
{
    print( selfAsEnvelopingSampleFunction, value )
}
Run Code Online (Sandbox Code Playgroud)

iphone ios swift

5
推荐指数
1
解决办法
152
查看次数

Xcode 9.2的正确应用图标(appicon)命名约定是什么?

我从https://makeappicon.com下载了23个iOS应用程序图标集,它们具有以下文件名:

Icon-App-20x20@1x.png
Icon-App-20x20@2x.png
Icon-App-20x20@3x.png
Icon-App-29x29@1x.png
Icon-App-29x29@2x.png
Icon-App-29x29@3x.png
Icon-App-40x40@1x.png
Icon-App-40x40@2x.png
Icon-App-40x40@3x.png
Icon-App-57x57@1x.png
Icon-App-57x57@2x.png
Icon-App-60x60@1x.png
Icon-App-60x60@2x.png
Icon-App-60x60@3x.png
Icon-App-72x72@1x.png
Icon-App-72x72@2x.png
Icon-App-76x76@1x.png
Icon-App-76x76@2x.png
Icon-App-76x76@3x.png
Icon-App-83.5x83.5@2x.png
Icon-Small-50x50@1x.png
Icon-Small-50x50@2x.png
ItunesArtwork@2x.png
Run Code Online (Sandbox Code Playgroud)

将它们拖放到Xcode > New Project > Single View App > Assets.xcassets > AppIcon窗口上时,将发生以下构建警告:

应用程序图标集“ AppIcon”有23个未分配的子级。

这就是我以前创建应用程序图标的方式,但是显然出了点问题,而且我找不到任何有用的文档或StackOverflow问题或解答。我需要怎么做才能使Xcode接受这些png作为应用程序图标?

感谢您的阅读。

xcode ios appicon

5
推荐指数
1
解决办法
1498
查看次数

是否可以在 Swift 中创建具有 Self 或关联类型要求的通用计算属性,如果可以,如何创建?

考虑以下:

protocol SomeProtocol: Equatable {}

// then, elsewhere...

var someValue: Any?

func setSomething<T>(_ value: T) where T: SomeProtocol {
    someValue = value
}

func getSomething<T>() -> T? where T: SomeProtocol {
    return someValue as? T
}
Run Code Online (Sandbox Code Playgroud)

这些函数工作正常,但本质上就像计算属性一样。有什么方法可以实现以下内容吗?

var something<T>: T where T: SomeProtocol {
    get { return someValue as? T }
    set { someValue = newValue }
}
Run Code Online (Sandbox Code Playgroud)

感谢您的阅读。如果这个问题已经在其他地方被问过,我很抱歉,我已经搜索过,但有时我的搜索功能很弱。

generics swift computed-properties

5
推荐指数
1
解决办法
1597
查看次数

为什么注册 Swinject 模型类时没有使用“.inObjectScope(.Container)”生成单例?

这个问题是针对对Swinject for Swift有丰富经验的人。

我将展示有问题的代码,我的问题在底部。

代码有点多,抱歉。

这是MySwinjectStoryboard.swift注册:

import Swinject

extension SwinjectStoryboard
{
    class func setup ()
    {
        defaultContainer.register( Stopwatch.self )
        {
            responder in Stopwatch( 
                signals: responder.resolve( SignalsService.self )! 
            )
        }

        defaultContainer.register( SignalsService.self ) 
        { 
            _ in SignalsService() 
        }.inObjectScope( .Container )

        defaultContainer.register( ImageService.self )
        {
            responder in ImageService(
                signals: responder.resolve( SignalsService.self )!
                , stopwatch: responder.resolve( Stopwatch.self )!
            )
        }.inObjectScope( .Container )

        defaultContainer.registerForStoryboard( StartUpViewController.self )
        {
            resolvable, viewController in
            viewController.stopwatch = resolvable.resolve( Stopwatch.self )!
            viewController.image = resolvable.resolve( ImageService.self )!
        }
    } …
Run Code Online (Sandbox Code Playgroud)

singleton ios swift swinject

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