小编Awa*_*yaz的帖子

如何在Swift 4中正确实现MessageKit?| 委托函数没有被调用

我试图在我的iOS swift应用程序中为聊天功能实现MessageKitJSQMessagesViewController的替换)。我遵循了raywenderlich教程。我使用Pods进行安装,并逐步遵循了本教程。我的消息正在显示。根据本教程,为了隐藏用户头像,我将viewController设置为messagesLayoutDelegate和的委托messagesDisplayDelegate

//Inside view did load, i set the delegates, along with data source
messagesCollectionView.messagesDataSource = self
messagesCollectionView.messagesLayoutDelegate = self
messagesCollectionView.messagesDisplayDelegate = self
Run Code Online (Sandbox Code Playgroud)

但是,MessagesLayoutDelegate没有调用的委托函数。

我想隐藏用户头像,所以我在viewController中采用了协议

extension ChatLogVC_MessageKit: MessagesLayoutDelegate {

 func avatarSize(for message: MessageType, at indexPath: IndexPath,
              in messagesCollectionView: MessagesCollectionView) -> CGSize {

    //return zero size for hiding avatar, but this function is not being called. 

  return .zero
 }

 func footerViewSize(for message: MessageType, at indexPath: IndexPath,
                      in messagesCollectionView: MessagesCollectionView) …
Run Code Online (Sandbox Code Playgroud)

ios swift messagekit

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

无效的捆绑包 - Info.plist 应使用包含单个平台的数组指定 CFBundleSupportedPlatforms

我正在尝试将档案上传到应用商店连接。存档上传成功。当我去应用商店连接并在活动部分看到它时。它说“此版本无效”,带有红色感叹号。我检查了我的开发者电子邮件并收到了这条消息

`我们发现您的应用程序最近交付的一个或多个问题,“应用程序名称”。请更正以下问题,然后重新上传。

无效的捆绑包 - Info.plist 应使用包含单个平台的数组指定 CFBundleSupportedPlatforms


我搜索了解决方案,发现我的 info.plist 应该包含一个键“CFBundleSupportedPlatforms”,其中一个数组值只有一个条目“iPhoneOS”。

添加了所需的键值

信息表

所以我在 info.plist 中添加了所需的键和值。我再次制作存档并提交。但我再次面临同样的问题。红色感叹号出现在“活动”部分,当我点击这个标记时,它说这个版本无效

应用商店连接

我寻找解决方案。我找到了涉及包含模拟器平台的嵌套包的答案。但这些与我的情况无关

谢谢你帮助我。

ios app-store-connect

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

为什么通知服务扩展在 iOS 14 上没有启动?

我集成了UNNotificationServiceExtension,它允许我在推送通知呈现给用户之前更改其标题。

\n

我已遵循苹果开发人员文档中提到的指南,并浏览了 SO 的相关问题,但似乎没有任何效果。

\n
\n

按照指示,我已遵循这些准则

\n
    \n
  • 在推送通知有效负载中包含“mutable-content”:1
  • \n
  • 应正确设置扩展程序的部署目标(应与主应用程序目标匹配)
  • \n
  • 有效负载必须包含带有标题、副标题或正文信息的警报字典
  • \n
  • 推送通知有效负载中的“aps”字典必须包含带有字符串值的键“category”。
  • \n
\n
\n

问题

\n

当收到推送通知时,有时不会触发我的通知服务扩展,主要是当我删除并安装应用程序的新副本时。在这种情况下,断点也不会被触发。系统似乎忘记触发服务扩展。我选择了正确的扩展方案,而不是主要的应用程序目标。我的通知标题没有按照我的逻辑更新。

\n

注意:这是在 iOS 14 上发生的。在 iOS 12 上,它工作正常。这是 iOS 的错误吗?

\n

这些线程中已经对此进行了讨论。

\n

https://developer.apple.com/forums/thread/67202 \n https://developer.apple.com/forums/thread/125987

\n

任何帮助将不胜感激。\n谢谢

\n

示例代码

\n

我做了一个示例项目来演示这个问题。您可以从Github Repo下载它

\n

相关 WWDC 视频

\n

最佳实践和用户通知中的新增内容\xe2\x80\x99

\n

push-notification apple-push-notifications ios swift

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

区别:tableView.cellForRow和dataSource.cellForRowAtIndexPath

目前我正在开发一个项目,启动该项目的开发人员曾经使用过访问单元格

dataSource.cellForRowAtIndexPath(indexPath)
Run Code Online (Sandbox Code Playgroud)

但我习惯用来访问细胞

cellForRow(at: indexPath)
Run Code Online (Sandbox Code Playgroud)

有谁知道差异,哪个更好用?我问的原因是dataSource.cellForRowAtIndexPath(indexPath)导致我们崩溃的原因.

***由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'尝试为同一索引路径出列多个单元格,这是不允许的.如果您确实需要出现比表视图请求更多的单元格,请使用-dequeueReusableCellWithIdentifier:方法(不带索引路径).单元标识符:CheckTableViewCell,索引路径:{length = 2,path = 1 - 0}'

uikit tableview ios swift

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

差异BW Facebook登录和FBSDKLoginKit Pod和哪一个使用?

我试图在我的iOS应用程序中集成facebook登录.我正在为此目的阅读官方文档.

在这个入门链接.文档说要使用以下pod

pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
Run Code Online (Sandbox Code Playgroud)

所以我明白我必须使用pod FacebookLogin,就是这样.

在这个iOS登录文档页面上,文档说要使用

 pod 'FBSDKLoginKit'
Run Code Online (Sandbox Code Playgroud)
  1. 我对使用哪一个感到困惑.
  2. 这两者有什么区别?

注意:我只想在我的应用程序中执行facebook登录而不是其他任何内容.

facebook ios facebook-ios-sdk swift

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