小编Rob*_*ert的帖子

为什么在枚举和切换时需要强制解包?

我注意到奇怪的快速行为,因为在我看来,颜色变量不应该在下面写的开关的情况下强制解包,但是没有展开编译器会向我显示错误消息.

enum Colours: Int {
case Red = 0, White, Black
}

var colours: Colours!
colours = .Red

switch colours! { // <-- why I have to unwrap colours? As you can see colours are declared as '!'
case .Red: break
default: break
}
Run Code Online (Sandbox Code Playgroud)

如果colors变量未解包编译器显示错误: 在此输入图像描述

在我看来,它是迅速的不一致,有没有人有一些想法?

enums ios swift

33
推荐指数
1
解决办法
3928
查看次数

来自Xcode UI Test的截图文件在哪里?

我很感兴趣如何找到在我的应用程序的UI测试期间创建的屏幕截图的位置.我想了解Fastlane Snapshot如何抓取此屏幕截图.经过几个小时的研究,我无法找到这些截图的位置.

ios xcode-ui-testing fastlane

15
推荐指数
3
解决办法
5670
查看次数

Posdpec 验证错误

我尝试提交我的第一个 cocoapod,然后输入:

pod trunk push MyLib.podspec
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

- ERROR | [iOS] unknown: Encountered an unknown error (/usr/bin/xcrun simctl list devices

xcrun: error: unable to find utility "simctl", not a developer tool or in PATH) during validation.
Run Code Online (Sandbox Code Playgroud)

我试图找到解决方案但没有很好的结果

xcode ios cocoapods swift

5
推荐指数
0
解决办法
1885
查看次数

如何将'nil'设置为[String:String]字典的值是有效的?

我很好奇为什么这个代码片段在Playground中正常工作:

var dict = [String: String]()
dict["key"] = nil
let value = dict["key"]
Run Code Online (Sandbox Code Playgroud)

我们可以看到我用非可选值声明了Dictionary,在Playground中检查它后它的工作方式与声明为的字典类似 [String: String?]

我的问题是在nil声明为[String: String]和的字典之间设置值的区别在哪里[String: String?]

dictionary swift

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

从数据库中实现核心数据故障 - 是正常的吗?

我有这个注释的问题.我已经下载了几个教程,例如:http://www.raywenderlich.com/14742/core-data-on-ios-5-tutorial-how-to-work-with-relations-and- 谓词和此示例代码中的"fault fulfilled"消息也是可见的.我的问题是:

  • 可以在没有此警报的情况下从Core Data创建和获取数据?
  • 核心数据中是否有非常关键的警报?

我的数据库看起来像这样: 我的数据库看起来:

当我想从"FailedBankDetails"表中获取数据时会出现问题,例如"closeDate".

首先,我从"FailedBankInfo"表(上面的代码)中获取所有行:

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription
                               entityForName:@"FailedBankInfo" inManagedObjectContext:self.managedObjectContext];

NSSortDescriptor *sort = [[NSSortDescriptor alloc]
                          initWithKey:@"name" ascending:NO];

[fetchRequest setEntity:entity];

[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                                                                              managedObjectContext:self.managedObjectContext
                                                                                                sectionNameKeyPath:nil
                                                                                                         cacheName:nil];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
Run Code Online (Sandbox Code Playgroud)

接下来我想使用表格单元格显示数据:

 if ([[_fetchedResultsController objectAtIndexPath:indexPath] isKindOfClass:[FailedBankInfo class]]) {
    FailedBankInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = info.name;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"%@, %@", info.city, info.details.closeDate];

}
Run Code Online (Sandbox Code Playgroud)

我的意见我访问info.details.closeDate发生"故障已完成"警报,因为当我将此更改为例如info.name时,此警报不会出现.

还有其他方法可以访问与特定"FailedBankInfo"对象相关的"closeDate"字段吗?

我已经厌倦了解决这个问题,请给我一些好的建议.

这是我的警报: …

core-data objective-c ios

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

如何从远程通知操作按钮打开应用

与主题一样,我试图在用户点击远程通知上的“接受”按钮时打开应用程序。

下面列出了AppDelegate负责处理按钮动作的方法:

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)notification  completionHandler: (void (^)())completionHandler {

    if ([identifier isEqualToString: @"ACCEPT_IDENTIFIER"]) {

    }

    completionHandler();
}
Run Code Online (Sandbox Code Playgroud)

我一直在寻找解决方案,但找不到对我有用的信息。



更新: 由于句子“可操作的通知按钮”引起混乱,因此以下img显示了此句子的意思。

在此处输入图片说明

objective-c apple-push-notifications ios

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

不变违规:"RCTImageView"的原生组件不存在

我在Xcode中创建了一个带有"主"页面的本机项目,我希望在React Native中完成项目的其余部分.一切都很顺利,直到我尝试<Image>在JSX中使用标签.我试图找到解决方案,但没有效果.

如果我在React Native中完全创建项目(没有Xcode中的现有部分),<Image>标签可以完美地工作.

在此输入图像描述

xcode node.js ios react-native

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

单线程调用两次performBlockAndWait是否会导致死锁?

我在文档中发现了类似的内容performBlockAndWait

可以安全地以可重入的方式调用此方法。

我的问题是,这是否意味着当我在单个上下文中像这样调用它时,它永远不会导致死锁?:

NSManageObjectContext *context = ...

[context performBlockAndWait:^{
       // ... some stuff

       [context performBlockAndWait:^{

       }];
 }];
Run Code Online (Sandbox Code Playgroud)

multithreading core-data ios

3
推荐指数
1
解决办法
274
查看次数

如何在url字符串中编码''+'字符?

我想+在我的url字符串中编码字符,我试着这样做:

let urlString = "www.google.com?type=c++"

let result = string.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
Run Code Online (Sandbox Code Playgroud)

但这不适用+.

任何的想法?谢谢.

更新:

type=url中的这个参数是动态的,我不会对+ 字符做一些隐含的替换.此type=参数表示UITextField值,因此可以键入任何内容.

我也很好奇为什么addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)不能在这种特殊情况下工作?

url ios swift swift3

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

RxSwift如何从流中获取最后一个值

我正在学习RxSwift,我想实现的就是让机制打印我textUITextFied,但考虑到时间间隔之后.

它现在如何工作:当我输入第一个字符时,这个字符立即被打印出来(不是在延迟之后我的预期)并且如果我继续键入长句,text则在每两秒后打印一次(因为间隔设置在节流中),但是我我想只有最新的text价值.

我的代码:

inputField.rx.text.orEmpty
        .throttle(2, latest: true, scheduler: MainScheduler.instance)
        .subscribe(onNext: { text in
            print("\(text)")
        }, onDisposed: nil)
        .addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)

我正在寻找你的帮助Rx研究员:)谢谢

uitextfield swift rx-swift

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

如何在bash中从剪贴板获取值

就像在主题中一样。我很好奇如何从剪贴板获取 bash 脚本中的值。

我想编写 sh 脚本,执行后将从剪贴板(Ctrl+c)获取值,但我还没有找到如何在脚本中获取该值。

大家有什么想法吗,谢谢:)

linux macos bash clipboard

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

如何链接Observable并为错误处理创建一个公共位置

我想知道如何以更优雅的方式编写我的代码......我有两个请求,第二个请求必须等待第一个请求.如果第一个失败了整个句子应该失败,我想知道如何在一个共同的地方捕获错误?

    enum TestError: ErrorType {
        case Connection
    }

    private func runTest() {
        rx_firstReq()
            .subscribeNext() { _ in
                return self.rx_secondReq()
                    .subscribeNext() { _ in
                        print("whole req sequence finished with success!")
                }.addDisposableTo(self.myDisposeBag)
        }.addDisposableTo(myDisposeBag)
    }

    func rx_firstReq() -> Observable<Bool> {
        return Observable.create() { observable -> Disposable in
            observable.onError(TestError.Connection) // We are assuming that first req gets failed
            observable.onCompleted()

            return NopDisposable.instance
        }
    }

    func rx_secondReq() -> Observable<Bool> {
        return Observable.create() { observable -> Disposable in
            observable.onNext(true)
            observable.onCompleted()

            return NopDisposable.instance
        }
    }
Run Code Online (Sandbox Code Playgroud)

如你所见,没有任何错误处理的地方......我不知道如何建模它,此时我的链中的每个下一个请求都会创建下一个缩进级别...在我看来它不是很好的用法RxSwift ...

..一些提示或链接示例代码与常见的处理错误对我来说将是很好的.

ios swift rx-swift

0
推荐指数
1
解决办法
1203
查看次数

KVO keyPathsForValuesAffecting不起作用

我的keyPathsForValuesAffecting<key>方法有问题。我想通知观察者fullName何时namesurname已更改。但是不幸的是没有通知观察者。

我的代码:

将要观察的课程:

class DependencyTest: NSObject {
    @objc dynamic var fullName: String {
        return name + " " + surname
    }
    @objc var name = ""
    @objc var surname = ""

    class func keyPathsForValuesAffectingFullName() -> Set<NSObject> {
        return ["name" as NSObject, "surname" as NSObject]
    }
}
Run Code Online (Sandbox Code Playgroud)

观察者ViewController:

let dep = DependencyTest()

    override func viewDidLoad() {
        super.viewDidLoad()

        addObserver(self, forKeyPath: "dep.fullName", options: .prior, context: nil)

        dep.name = "bob" // Im expecting that `observeValue:` method …
Run Code Online (Sandbox Code Playgroud)

key-value-observing ios swift

0
推荐指数
1
解决办法
366
查看次数