小编koe*_*oen的帖子

实现内部类型不同的 Swift 5.1 集合

我正在构建一个在 TableViewController 中显示远程 iBeacon 的 iOS 应用程序。

为了提高性能并测试新的 Swift 5.1 差异功能,我编写了以下代码:

private func updateBeacons(_ rangedBeacons: [CLBeacon]) {
    guard beacons != rangedBeacons else { return }

    let difference = rangedBeacons.difference(from: beacons)
    // Also tried:
    // let difference = rangedBeacons.difference(from: beacons, by: { $0.uuid == $1.uuid })

    // ...
}
Run Code Online (Sandbox Code Playgroud)

当到达此代码时,将fatalError抛出:

致命错误:不受支持:文件 /BuildRoot/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-1100.2.259.70/swift/stdlib/public/core/ArrayBuffer.swift,第 231 行

如何对CLBeacons执行收集差异?

引用的代码可以在这里找到:https : //github.com/apple/swift/blob/master/stdlib/public/core/ArrayBuffer.swift#L226-L232

ios swift

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

RegEx用于解析化学式

我需要一种方法将化学式分离成其组分.结果应如下所示:

   Ag3PO4 -> [Ag3, P, O4]
      H2O -> [H2, O]
   CH3OOH -> [C, H3, O, O, H]
Ca3(PO4)2 -> [Ca3, (PO4)2]
Run Code Online (Sandbox Code Playgroud)

我不知道正则表达式语法,但我知道我需要这样的东西

[可选括号] [大写字母] [0或更多小写字母] [0或更多数字] [可选括号] [0或更多数字]

这很有效

NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern:@"[A-Z][a-z]*\\d*|\\([^)]+\\)\\d*"
                              options:0
                              error:nil];
NSArray *tests = [[NSArray alloc ] initWithObjects:@"Ca3(PO4)2", @"HCl", @"CaCO3", @"ZnCl2", @"C7H6O2", @"BaSO4", nil];
for (NSString *testString in tests)
{
    NSLog(@"Testing: %@", testString);
    NSArray *myArray = [regex matchesInString:testString options:0 range:NSMakeRange(0, [testString length])] ;
    NSMutableArray *matches = [NSMutableArray arrayWithCapacity:[myArray count]];

    for (NSTextCheckingResult *match in myArray) { …
Run Code Online (Sandbox Code Playgroud)

regex objective-c

6
推荐指数
1
解决办法
4183
查看次数

UIAlertController有时会阻止UIRefreshControl隐藏

UIRefreshControl在我的tableview上使用更新项目.最后,我展示了一个UIAlertController通知用户更新已完成,以及更新了多少项目.非常简单,它适用于一件事.如果我连续多次刷新,有时即使解除警报后刷新控制也不会被解除.我需要向上滑动桌子才能让它消失.

这是我使用的代码,所有UI的东西都很好地在主线程上完成:

    if(refreshControl.refreshing) {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            [self refreshItems];

            dispatch_async(dispatch_get_main_queue(), ^{
                [refreshControl endRefreshing];
                [self.tableView reload];
                [self showUpdateInfo];                     
            });
        });
    }
Run Code Online (Sandbox Code Playgroud)

知道是什么原因引起的吗?

编辑:这是我在代码(in viewDidLoad)中创建刷新控件的方式:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle   = [[NSAttributedString alloc] initWithString: @"Checking for updates…"];
[refreshControl addTarget: self
                   action: @selector(refreshOutdatedItems)
         forControlEvents: UIControlEventValueChanged];

self.refreshControl = refreshControl;
Run Code Online (Sandbox Code Playgroud)

objective-c ios uirefreshcontrol uialertcontroller

6
推荐指数
3
解决办法
1763
查看次数

adjustmentFontForContentSizeCategory 不适用于 UITextView 和 UITextField

我将不再preferredContentSizeChanged用于adjustsFontForContentSizeCategory我的UILabelUITextView、 和UITextField课程。它适用于UILabel,但不适用于UITextViewUITextFieldsetNeedsDisplay仅当我调用inside时它才有效preferredContentSizeChanged

我缺少什么?

dynamic font-size ios

6
推荐指数
1
解决办法
2250
查看次数

更改模态视图控制器的cornerRadius

我的目标是将模态呈现的控制器的角半径增加到 25。正如您在图片中看到的,默认情况下它具有圆角,但我需要它们具有更大的半径。我尝试通过访问控制器视图来圆角,但它不起作用。

view.layer.cornerRadius = 25
Run Code Online (Sandbox Code Playgroud)

我在苹果文档中没有找到任何提及它,有什么办法让它工作吗?这可能吗?

在此输入图像描述

cornerradius uiview ios swift

6
推荐指数
2
解决办法
2797
查看次数

UINavigationBar奇怪的颜色变化

我正在使用我自己设置的UINavigationBars的自定义颜色(在iOS7上) didFinishLaunchingWithOptions:

[[UINavigationBar appearance] setBarTintColor: [UIColor mainThemeColor]];
Run Code Online (Sandbox Code Playgroud)

这很好用,但在我的两个屏幕中,我看到了一些很奇怪的东西.当视图出现时,我看到一个黑暗的光晕从右边移动,并且条形的颜色最终比我设置的颜色更深.我尝试在viewDidAppear等人中设置颜色,但同样的事情发生了.

我不知道如何发生这种情况,我的所有视图和viewControllers都设置相同.

此外,当应用程序在后台,我转到应用程序切换视图(所有微型屏幕),这两个屏幕的栏是完全黑暗,而不是主题颜色.

有没有人见过这个?

编辑:它与调用self.edgesForExtendedLayout = UIRectEdgeNone;我的视图控制器有关.如果我删除该行,则导航栏的颜色仍然正确.但是,在这种情况下,我的部分视图是隐藏的.

cocoa-touch uinavigationbar ios7

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

子类AFHTTPRequestOperationManager?

我发现自己AFHTTPRequestOperationManager在整个代码中重复使用了很多代码,所以我在考虑对它进行子类化,所以我可以将它设置为单例,并将所有代码放在子类中,而不是通过我的代码展开项目.然而,在AFNetworking 2.0(http://nshipster.com/afnetworking-2/)的NSHipster剧集中,它说:

2.0中的主要区别在于,您实际上将直接使用此类,而不是将其子类化,原因在"序列化"部分中进行了解释.

由于AFNetworking和NSHipster拥有相同的作者,我认为这是一个有效的论点.

所以我的问题是,AFHTTPRequestOperationManager为了在一个类中使用大多数网络代码,人们是否为子类,或者我是否忽略了使用框架的某些内容?

objective-c ios afnetworking-2

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

Swift - 对数组中每个字符串中的字符进行排序

所以这个问题是对这个问题的跟进:快速字符串排列允许相同的字符串

在那里,我询问了我可以使用一组已定义的字符串进行的所有可能的突变.我接下来要做的是过滤掉所有具有相同组合但结果不同的结果.

因此,如果输入为:["AB", "AC", "CA", "CB"],则输出应为["AB", "AC", "CB"],因为"AC"和"CA"具有相同的构建块.

所以我的想法是先按字母顺序排序每个字符串,然后创建一个Set.

我已经卡在第一部分:(

let array = ["AB", "AC", "DC", "CA", "CB"]
print(type(of: array))
print(array)

let sortedArray = array.map{ $0.sorted() }
print(type(of: sortedArray))
print(sortedArray)
Run Code Online (Sandbox Code Playgroud)

输出是:

Array<String>
["AB", "AC", "DC", "CA", "CB"]
Array<Array<Character>>
[["A", "B"], ["A", "C"], ["C", "D"], ["A", "C"], ["B", "C"]]
Run Code Online (Sandbox Code Playgroud)

虽然我期待sortedArray:

["AB", "AC", "CD", "AC", "BC"]
Run Code Online (Sandbox Code Playgroud)

然后我想把各个字符串加在一起:

print(array.map{ $0.joined() } )
Run Code Online (Sandbox Code Playgroud)

导致 ambiguous reference to member 'joined()'

但是如何解决这个我不明白.

我也看到了这一个:字符串中的swift排序字符,其中使用了以下代码:

var nonSortedString …
Run Code Online (Sandbox Code Playgroud)

arrays sorting string swift4

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

mac Catalina PermissionError: [Errno 1] 不允许操作

安装 macOS Catalina 更新后,我无法再使用我的程序(Spyder GUI)。我想读取不在当前工作区中的文件并对它们执行操作。读取文件目录时,出现此错误:

PermissionError: [Errno 1] 不允许操作: {file directory}

当前工作区中的文件没问题。

permissions macos spyder macos-catalina

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

Swift 包管理器 - 类型“Bundle”没有成员“模块”错误

正在为框架实施 SPM,但遇到了Type 'Bundle' has no member “module”错误。

我最近在这里这里看到了另外两篇关于此的帖子,但是按照所有步骤操作,它仍然对我不起作用,没有resource_bundle_accessor生成任何文件。

在这里询问了我的 Package.swift 文件,这个问题已经得到解答和解决。为了完整起见,这里是文件:

// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "BioSwift",
    products: [
        // Products define the executables and libraries a package produces, and make them visible to other packages.
        .library(
            name: "BioSwift",
            targets: ["BioSwift"]
        )
    ],
    targets: [
        // Targets are the basic building blocks …
Run Code Online (Sandbox Code Playgroud)

xcode swift swift-package-manager

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