小编SPa*_*tel的帖子

排除Realm模型类

我在我的应用程序中配置了两个Realm文件.我想将我的Log模型存储到与其他模型不同的文件中.我的问题是我也在Log我的默认Realm文件中看到了我的模型类,我不想要它.如何从给定的Realm文件中排除特定的模型类?

我使用主Realm文件的默认配置,我想将Log模型仅存储在另一个数据库文件中,但是当我default.realm在Realm Browser中时,它也会显示Log模型.

在此输入图像描述

realm ios swift

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

保留嵌套 collectionView 的滚动位置

之后,tableView.reloadData()可见collectionView显示的第一行意外马上。

我在其单元格中构建了一个tableView包含collectionView,用户可以tableView像 Instagram 一样在每一个中滚动多个图像。我该如何解决?谢谢!

表视图数据源

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return photoRolls.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableViewCell", for: indexPath) as! HomeTableViewCell
    if photoRolls.isEmpty {
        return UITableViewCell()
    }        
    let user: UserModel = users[indexPath.row]
    let photoRoll: PhotoRoll = photoRolls[indexPath.row] //this Model contains post info: likes, comments etc.
    let photoUrls: UrlStrings = urls[indexPath.row] //this Model contains a …
Run Code Online (Sandbox Code Playgroud)

uitableview collectionview ios swift

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

如何在 Swift 中的 didReceiveRemoteNotification 上从 App Delegate 推送视图控制器?

我找不到任何明确的答案,我开始挣扎。到目前为止,我最接近的是present所需的视图控制器,但显然它以模态显示,而不是使用选项卡栏或导航栏。

我在我AppDelegatedidReceiveRemoteNotification函数中尝试处理 Firebase 推送通知。基本上,我希望能够根据我在 Firebase 控制台上分配的键值对自动切换到我的应用程序中的特定视图控制器。

到目前为止,我的 App Delegate 看起来像这样:

应用程序委托

    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {

        let info = userInfo as NSDictionary
        let name: String = info.value(forKey: "view-controller") as! String

    switch name {
    case "controller1":
        print("controller1")
        let storyBoard = UIStoryboard.getMainStoryboard().instantiateInitialViewController()
        UIApplication.shared.delegate!.window!!.rootViewController = storyBoard
        DispatchQueue.main.asyncAfter(deadline: .now() + 5.0) {
            print("Time now reached")
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let controller1VC = storyboard.instantiateViewController(withIdentifier: "controller1VC") …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller apple-push-notifications ios swift firebase-cloud-messaging

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

Swift 协议:{ get } 和 { get set } 之间的区别有具体的例子吗?

我对 Swift 还是很陌生,虽然我已经阅读了 Apple 的文档以及许多关于此的主题和线程,但我仍然无法理解{ get }{ get set }. 我的意思是,我正在寻找一个具体例子的解释。

比如,例如:

protocol PersonProtocol {
    var firstName: String { get }
    var lastName: String { get set }
}
Run Code Online (Sandbox Code Playgroud)

这两个属性之间的实际区别是什么?我试图在操场上玩这些属性:

struct Person: PersonProtocol {
    var firstName: String
    var lastName: String
}

var p = Person(firstName: "John", lastName: "Lennon")
print(p.firstName) // John
print(p.lastName) // Lennon
p.firstName = "Paul"
p.lastName = "McCartney"
print(p.firstName) // Paul
print(p.lastName) // McCartney
Run Code Online (Sandbox Code Playgroud)

没有帮助...感谢您的帮助。

swift swift-protocols

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

红色组名颜色

Xcode用红色显示组名。

在此处输入图片说明 在此处输入图片说明

如何删除它或使其正常

我正在使用Xcode 9

ide xcode bundle ios swift

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

创建具有通用类型的可编码结构

首先,很抱歉问题标题不清楚

我正在制作一个可编码的结构,它将用作json消息。

enum MessageType: String, Codable{
    case content
    case request
    case response
}

struct Message: Codable{
    var type: MessageType
    var content: /* NEED HELP HERE */
}

struct Content: Codable {...}
struct Request: Codable {...}
struct Response: Codable {...}
Run Code Online (Sandbox Code Playgroud)

声明Message(如果type是)时content,其content类型应为Content

let message = Message(
    type: .content,
    content: Content( ... )
}
Run Code Online (Sandbox Code Playgroud)

type为is时request,其content类型应为Request

let message = Message(
    type: .request,
    content: Request( ... ) …
Run Code Online (Sandbox Code Playgroud)

swift codable

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