小编Hon*_*ney的帖子

当您在 swift 中运行已弃用的代码时会发生什么?

例如在 iOS 10 中有UserNotifications框架。在此之前,您只需要使用:

let settings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
 application.registerUserNotificationSettings(settings)
 application.registerForRemoteNotifications()
Run Code Online (Sandbox Code Playgroud)

(我在 iOS 10 上运行了上面的代码,但什么也没发生)。

我的一般问题是:运行不推荐使用的语法是否会一直崩溃,什么都不做(就像现在一样)或者它如何处理是未知的?

我要求获得更好的调试理解

syntax deprecated swift

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

CountableRange的startIndex和lowerBound有什么区别?

文档说

关联的Bound类型是CountableRange的元素和索引类型。范围的每个元素都是其自己对应的索引。CountableRange实例的下限是其开始索引,上限是其结束索引。

var lowerBound: Bound { get } 被宣布

var lowerBound: Bound
The range's lower bound.

In an empty range, lowerBound is equal to upperBound.

Declaration
var lowerBound: Bound { get }
Run Code Online (Sandbox Code Playgroud)

var startIndex: Bound { get } 被宣布

var startIndex: Bound
The position of the first element in a nonempty collection.

If the collection is empty, startIndex is equal to endIndex.

Declaration
var startIndex: Bound { get }
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别,我该如何决定使用哪一个呢?

collections range swift

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

如何使用私有集扩展协议?

我正在编写一个具有readOnly标签的协议.我想扩展它并给它一个默认的实现,其中符合类型是a UITextView.

码:

protocol CountingView {

    var keyboardLabel : UILabel {get}   
}

extension CountingView where Self : UITextView {

    var keyboardLabel : UILabel {
        get {
            let label = UILabel()
            label.textColor = UIColor.white
            label.translatesAutoresizingMaskIntoConstraints = false

            return label
        }
        private (set) {
            keyboardLabel = newValue
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我添加private之前,set我得到以下错误.

期望'get','set','willSet'或'didSet'关键字来启动访问者定义

我查看了这个错误的其他问题,但没有发现它们与我的相关.

protocols private swift swift-extensions swift-protocols

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

如何在 GitHub 上的 readme.md 中获取彩色关键字标签?

这可能是一个愚蠢的问题,但我不知道如何将彩色关键字标签添加到我的readme.md文件中

在此处查看我所追求的示例 https://github.com/reactstrap/reactstrap

如何获得类似于您可以在上面链接的页面上看到的这些内容:CDNJS NPM 版本构建状态覆盖状态许可证

label github keyword readme

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

为什么在重新启动应用程序或我执行 NSBatchDeleteRequest 两次之前不会删除条目?

我正在阅读删除/重置 Core Data 中的所有条目?.

如果我按照以下步骤操作,会得到意想不到的结果:

  1. 调用下面的代码
  2. 然后在模拟器中查询一个实体,我会取回一个实体!!!
  3. 如果我clearCoreDataStore再次调用(或重新启动),则不会从核心数据中检索该值

我错过了什么?

func clearCoreDataStore() {
    let entities = dataManager.persistentContainer.managedObjectModel.entities
    for entity in entities {
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: entity.name!)
        let deleteReqest = NSBatchDeleteRequest(fetchRequest: fetchRequest)
        do {
            try context.execute(deleteReqest)
        } catch {
            print(error)
        }
    }
    dataManager.saveContext()
}
Run Code Online (Sandbox Code Playgroud)

core-data nsmanagedobject nsmanagedobjectcontext ios nsbatchdeleterequest

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

core-data 中具有自定义类型的所有属性都必须是关系吗?

这是以下注释中的后续问题如何映射嵌套的复杂 JSON 对象并将它们保存到核心数据?

\n\n

想象一下我的应用程序已经有了这段代码。

\n\n
class Passenger{\n    var name: String\n    var number: String\n    var image : UIImage\n    // init method\n}\nclass Trip {\n    let tripNumber : Int\n    let passenger : Passenger\n\n    init(tripNumber: Int, passenger: Passenger) {\n        self.tripNumber = tripNumber\n        self.passenger = passenger\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我决定为我的应用程序添加持久性。我只想一张旅行表。我想向乘客显示行程,但不需要表格来直接查询乘客。它只是旅行的自定义对象/属性。每次我访问乘客都是通过 Trips。

\n\n

那么有没有一种方法可以让我创建一个名为 \'TripEntity\' 的新 NSManagedObject 子类并存储我的乘客 \xe2\x80\x94 ,而无需 1. 为 \'Passenger\' 创建另一个 NSManagedObject 子类 2. 创建与乘客和行程之间存在反比关系吗?简而言之,我只是希望它成为一个属性。从概念上讲,对我来说它也只是一个属性。这根本就不是一种关系……

\n\n

或者,一旦您使用 Core-data,那么每个自定义类型都需要显式成为 NSManagedObject 的子类?否则它不会被持久化。我猜这也是对象图的含义。你的图表需要完整。图表之外的任何内容都将被忽略......

\n\n

我问这个问题是因为我实际想要存储的 JSON 对象非常庞大,并且我正在尝试减少需要完成的工作。

\n

json core-data nsvaluetransformer swift codable

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

如何使用 RxDataSources 避免重复点击 Tableview 上的按钮

我有一个带有 RxDataSources 的表格视图,其中单元格项目有一个删除图标。当单元格出队并单击该删除图标时,所有先前的单击事件都会被触发,从而重复点击。项目单元格:

 removeImageView.rx.tap().map { _ in indexPath } 
            .bind(to: viewModel.onRemoveItem).disposed(by: cellDisposeBag)
Run Code Online (Sandbox Code Playgroud)

单元格视图模型:

let onRemoveItem = PublishSubject<IndexPath>()
Run Code Online (Sandbox Code Playgroud)

单元格和 ViewModel 绑定的视图控制器视图模型:

 let vm = ItemViewModel(with: item)
            vm.onRemoveItem.bind(to: self.onRemoveItem).disposed(by: self.rx.disposeBag)

            return SectionItem.item(viewModel: vm)
Run Code Online (Sandbox Code Playgroud)

视图控制器:

let dataSource = RxTableViewSectionedReloadDataSource<SectionItem>(configureCell: { dataSource, tableView, indexPath, item in
    switch item {
    case .item(let viewModel):
        let cell = (tableView.dequeueReusableCell(withIdentifier: itemtIdentifier, for: indexPath) as? ItemCell)!
        cell.bind(to: viewModel, at: indexPath)
        return cell
    }
}, titleForHeaderInSection: { dataSource, index in
    let section = dataSource[index]
    return section.title
}  )

output?.items
    .bind(to: …
Run Code Online (Sandbox Code Playgroud)

uitableview ios swift rx-swift rxdatasources

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

如何打印CharacterSet.decimalDigits的内容?

我尝试打印内容CharacterSet.decimalDigits

print(CharacterSet.decimalDigits)
Run Code Online (Sandbox Code Playgroud)

输出:CFCharacterSet 预定义十进制数字集

但我的期望是这样的:

[1,2,3,4...]

所以我的问题是:如何打印 的内容CharacterSet.decimalDigits

swift character-set

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

块中的@synchronized(self)会导致保留周期吗?

假设我想@synchronized(self)在一个区块内做.我想这会导致保留周期,所以通常我们会像这样重写它:

-(void)myMethod
{
    __weak TheClass * weakSelf = self;
    dispatch_async(dispatch_get_main_queue(),
    ^{
        TheClass * strongSelf = weakSelf;
        if(strongSelf == nil)
        {
            return;
        }

        @synchronized(strongSelf)
        {
            //mutex code
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当你以@synchronized这种方式使用指令时,它是否相当于@synchronized(self)

memory-management objective-c synchronized objective-c-blocks reference-cycle

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

你为什么不能设置cell.selectionStyle = UITableViewCellSelectionStyleBlue?

我已经看到了以下问题,但是没有解释,虽然你可以简单地设置cell.SelectedStyleUITableViewCellSelectionStyleGray或者UITableViewCellSelectionStyleNone,你不能将它设置为selectionStyle UITableViewCellSelectionStyleBlue.

他们只提供一个没有解释的黑客.我只是想知道为什么我可以更好地理解objective-c

UITableViewCellSelectionStyleBlue不起作用

ios7 UITableViewCell selectionStyle不会再回到蓝色

无法更改UITableView蓝色高亮颜色

objective-c uitableview ios

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