小编AyB*_*Bay的帖子

如何更改故事板上视图控制器的大小以进行编辑?

我有一个简单的问题,我花了无数个小时试图解决这个问题.

如何在Xcode Storyboard中更改视图控制器的大小以进行编辑?

我有一个大型表格/问卷,我想放在我的视图控制器上,而我根本无法使用故事板给我的当前大小.

此外,所提供的尺寸("推断","FreeForm","Retina 3.5"和"Retina 4")都不够大!

有没有人能解决我的问题?

iphone xcode storyboard ios

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

Swift使用哪种通用排序算法?它在排序数据上表现不佳

我一直在选择和探测Swift标准库sort()函数的Array类型.令我惊讶的是,我注意到它在已经排序的数据上表现不佳.

对一个数组进行排序的排序Int似乎比已经排序的同一个数组的排序速度快5倍.对一个混洗对象的数组进行排序比按排序顺序排序相同的数据快4倍(排序对象数组与Int数组使用不同的算法我确定所以我将它们排序以消除偏差).

这些是结果:

Shuffled Int array sort time: 1.3961209654808
Shuffled ColorObject array sort time: 3.14633798599243
NOnshuffled Int array sort time: 7.34714204072952
NOnshuffled ColorObject array sort time: 10.9310839772224
Run Code Online (Sandbox Code Playgroud)

以下是我的代码参考:

class ElapsedTimer {

    let startTime: CFAbsoluteTime
    var endTime: CFAbsoluteTime?

    init() {
        startTime = CFAbsoluteTimeGetCurrent()
    }

    func stop() -> CFAbsoluteTime {
        endTime = CFAbsoluteTimeGetCurrent()
        return duration!
    }

    var duration: CFAbsoluteTime? {
        if let endTime = endTime {
            return endTime - startTime
        } else {
            return …
Run Code Online (Sandbox Code Playgroud)

arrays sorting performance time-complexity swift

13
推荐指数
3
解决办法
5556
查看次数

Swift中的字典与Mutable Array作为值表现得非常慢?如何优化或构建正确?

我试图在Swift中构建一个数据结构,将Integer映射到一个对象数组(一个字典,其中int为键,数组为value).对象非常小,它们只需包装UIColor和Int.我有两个实现,一个使用Swift数组作为Dictionary的值类型,而另一个使用NSMutableArray作为值类型.我的Objective-C代码执行速度非常快,但我的Swift代码运行得非常慢.理想情况下,我不想使用NSMutableArray,并希望将其保留为Swift数组.原因是我正在编写算法和性能问题,我注意到了objC_msgSend的一些开销.任何人都可以帮我优化我的Swift代码吗?我做错了什么,或者这只是快速处理数组作为值类型的副产品?如果是,我想理解为什么值类型在这种情况下表现得如此之慢,我的选择是什么,以及这种情况如何能够在未来扩展?下面我发布了一个代码段和结果基准:

Swift数组代码:

let numColors = colorCount(filter: filter, colorInfoCount: colorInfo.count)
var colorCountsArray: [Int] = [Int]()
var countToColorMap: [Int:[CountedColor]] = [Int:[CountedColor]](minimumCapacity: capacity)
var topColors = [CountedColor]()

var startTime = CACurrentMediaTime()
for (color, colorCount) in colorInfo {
    colorCountsArray.append(colorCount)
    if countToColorMap[colorCount] != nil {
        countToColorMap[colorCount]?.append(CountedColor(color: color, colorCount: colorCount))
    } else {
        countToColorMap[colorCount] = [CountedColor(color: color, colorCount: colorCount)]
    }
}
var endTime = CACurrentMediaTime()
print("Time after mapping: \(endTime - startTime)")
Run Code Online (Sandbox Code Playgroud)

迅捷表现:

Time after mapping: 45.0881789259997
Run Code Online (Sandbox Code Playgroud)

NSMutableArray代码:

let numColors = colorCount(filter: filter, colorInfoCount: colorInfo.count)
var colorCountsArray: …
Run Code Online (Sandbox Code Playgroud)

algorithm value-type nsmutablearray swift swift-dictionary

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

iOS上的蓝牙设备日志

我目前正在开发一款与蓝牙设备配对的iPhone应用程序.

我们在此配对方面存在一些延迟问题,并在我们的设备配对/连接时检测到正确的时间.

你们知道iPhone是否有一些log我们可以查看/提取蓝牙设备的信息吗?

iphone mobile bluetooth ios

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

C ++算法/加速库是否具有基数排序?

我想对整数进行排序,并且我知道基数排序对此非常有用。任何此类的库实现?

c++ sorting algorithm radix-sort

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

在Objective-C中调整方法的正确方法

目前swizzling正在Objective-C中尝试方法,我有一个问题.我试图理解方法混合的正确方法,在网上研究后我偶然发现了这个NSHipster帖子:http://nshipster.com/method-swizzling/

在帖子中,作者有一些方法调整样本代码.我正在寻找有人能够更好地向我解释作者正在做什么.特别是我对didAddMethod逻辑感到困惑.为什么作者不仅仅是直接的swapping/exchanging方法实现?我唯一的理论是,可能还有一些机会viewWillAppear:尚未加入UIViewController's method dispatch_table.特别是如果可能先将类别加载到内存中UIViewController......这是为什么?看起来很奇怪?只是寻找更多洞察力/清晰度,谢谢:)

objective-c objective-c-runtime swizzling method-swizzling

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

如何在 Swift 3(引擎盖下)中实现转义闭包?它们是否像objective-c那样隐式地block_copied/retained?

我想了解转义闭包在 Swift 3 中是如何工作的?来自 Objective-C 世界,对于闭包可以逃避其封闭函数的返回的场景,您必须按照以下方式做一些事情:

@property (nonatomic, copy/strong) void (^callback)(NSData *rawData);

-(BOOL)someFunctionThatConsumesABlock:(void (^)(NSData *rawData))block 
{
  if (callback) {
      self.callback = block;
      return YES;
  }
  return NO;
}

-(void)someFunctionThatExecutesAtSomeLaterPoint
{
  NSData *data = [self bytesFromSomeProcess];
  self.callback(data);
}
Run Code Online (Sandbox Code Playgroud)

基本上在objective-C的上述代码中,消耗块的对象执行堆复制并强保留块。这种强保留是有道理的,因为块也需要在它作为参数传递的函数范围之外停留(因为它是一个转义闭包/块)。

在 Swift 3 中,似乎不再需要上述内容。所有需要做的只是将闭包注释为“转义”。那么 Swift 3 在幕后做了什么?它和Objective-C做同样的事情吗?从本质上讲,Swift 3 中的转义闭包是否也会被它们传递的对象隐式强保留?我不知道该语言还有什么方法可以实现这一点并使闭包“保持不变”。

closures objective-c objective-c-blocks swift swift3

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

如何在Swift中实现线程安全哈希表(PhoneBook)数据结构?

我正在尝试实现线程安全的PhoneBook对象。电话簿应该能够添加一个人,并根据其姓名和phoneNumber查找一个人。从实现的角度来看,这仅涉及两个哈希表,一个关联名称-> Person,另一个关联电话号-> Person。

需要注意的是,我希望该对象是threadSafe。这意味着我希望能够在电话簿中支持并发查找,同时确保每次只有一个线程可以将一个人添加到电话簿中。这是基本的读写器问题,我正在尝试使用GrandCentralDispatch和Dispatch障碍解决此问题。尽管遇到问题,但我仍在努力解决此问题。以下是我的Swift操场代码:

//: Playground - noun: a place where people can play

import UIKit
import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true

public class Person: CustomStringConvertible {
    public var description: String {
        get {
            return "Person: \(name), \(phoneNumber)"
        }
    }

    public var name: String
    public var phoneNumber: String
    private var readLock = ReaderWriterLock()

    public init(name: String, phoneNumber: String) {
        self.name = name
        self.phoneNumber = phoneNumber
    }


    public func uniquePerson() -> Person {
        let randomID = UUID().uuidString
        return Person(name: randomID, phoneNumber: randomID) …
Run Code Online (Sandbox Code Playgroud)

multithreading grand-central-dispatch barrier data-synchronization swift

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

C中的XOR运算符

在进行按位操作时,我无法确定何时使用XOR运算符.Bitwise And和Or非常直接.如果要屏蔽位,请使用按位AND(常见用例是IP寻址和子网掩码).当你想打开位时使用包含或.然而,XOR总是让我感觉如果在面试中被问到需要使用XOR的问题,我将永远不会得到它.有人可以说明何时使用它和一些常见的用例.

c bit-manipulation xor bitwise-operators

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

当您终止应用程序的当前实例时,iOS应用程序Documents /目录中的数据是否会被删除?

我正在构建一个应用程序,我正在考虑将一些数据保存/写入应用程序文档/目录.我希望数据能够跨实例持续存在,这意味着如果用户杀死了我的应用程序的当前实例,那么我写入Documents /目录的任何数据都应该保留.

通常,当您终止应用程序的实例时,会清除哪些类型的应用程序数据?

persistence persistent-storage ios nsdocumentdirectory

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