小编Leo*_*nid的帖子

Swift 3错误:[_SwiftValue pointSize]无法识别的选择器发送到实例

我刚刚将项目迁移到swift 3并因为一个问题看到了很多崩溃:

终止应用程序由于未捕获的异常"NSInvalidArgumentException",原因是:" - [_ SwiftValue的pointsize]:无法识别的选择发送到实例

出现这种错误的原因是:

[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]
Run Code Online (Sandbox Code Playgroud)

我注意到的是,如果我将String转换为NSString并调用boundingRectWithSize它,它将抛出该错误.它似乎也发生在许多其他部分,例如,如果我在故事板中发送了一个视图控制器标题,它会抛出相同的错误.

谁有同样的问题?

重现问题:

在Xcode 8中创建一个新的Swift 3项目,并在viewDidLoad中添加以下行:

let attributes: [String: AnyObject?] = [
            NSFontAttributeName: UIFont.systemFont(ofSize: 14)
        ]
    let boundingRect = ("hello" as NSString).boundingRect(with: CGSize(width: 100, height: 100), options: .usesLineFragmentOrigin, attributes: attributes, context: nil)
Run Code Online (Sandbox Code Playgroud)

但正如我所说,它在许多其他地方崩溃,因为UIKit似乎在很多部分内部使用这种方法

string nsstring uifont ios swift

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

具有自动布局的UICollectionViewCell动态高度

我正在使用UICollectionViewCell的自动布局.因此,我们的想法是允许CollectionViewCell根据布局确定它的大小.所有约束都设置正确,但问题是我无法计算数据源方法的大小

collectionView:layout:sizeForItemAtIndexPath:
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想计算Cell的高度,执行以下操作:

static MyCell *myCell = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
    myCell = [[MyCell alloc] initWithFrame:CGRectZero];
});
cell.model = model;
[cell updateConstraints];
[cell layoutSubviews];
return cell.frame.size;
Run Code Online (Sandbox Code Playgroud)

但它不会强制更新约束,因此单元格的框架为零.你能建议我如何根据它的约束来计算细胞的大小?

谢谢

autolayout uicollectionview nslayoutconstraint uicollectionviewcell

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

iOS 目标 c 套接字 p2p 连接与 NAT 后面的对等方

我必须在位于 NAT 后面(在不同网络中)的两个对等点之间在 iOS (Objective-C) 中实现套接字通信。是否有任何技术可以让我实现这一目标?基本上,我正在寻找一些 STUN、TURN 实现,它可以让我找出外部 IP/端口地址。

提前致谢,列昂尼德

sockets objective-c nat stun ios

6
推荐指数
0
解决办法
756
查看次数