在本文中,我将讨论分别为macOS和iOS准备内容容器的区别。 对于那些来自iOS界的人来说,UICollectionView自iOS 6起就是一个很长的组件。它广泛用于显示具有不同布局的内容,例如网格,基于行或任何自定义布局。 数据源协议 DataSource协议用于提供集合视图所需的数据和视图。 在iOS中,有两种必需的方法来构建最小的UICollectionView。 collectionView(UICollectionView,numberOfItemsInSection:Int) collectionView(UICollectionView,cellForItemAt:IndexPath) 第一个与macOS中的对应项相似,但第二个有所不同。 collectionView(NSCollectionView,numberOfItemsInSection:Int) collectionView(NSCollectionView,itemForRepresentedObjectAt:IndexPath) 很明显,第一个API用于指示该部分中的单元格或项目的数量(仅默认一个会话)。 第二个API是实际收集数据信息并配置视图组件的API。 从方法签名中,您可能会注意到差异。 iOS非常直接地创建项目,但是macOS却创建了这种奇怪的东西,称为“ Represented Object”。 这是由于传统支持。 自MacOS 10.5起,NSCollectionView实际上就存在了,而iOS版本是从头开始构建的。 创建现代NSCollectionView API的过程中有很多知识。 装载笔尖 为了简化和可视化开发过程,我们通常使用Interface Builder创建容器内容,该内容将包含在Nib文件中(另存为* .xib文件)。 在iOS中,我们还设置了一个名为Reuse Identifier的“桥梁”。 集合视图具有管理多个单元的内存使用情况的机制。 数据源方法将使用Reuse Identifier查找存储在池中的单元格。 在简单的情况下,所有单元都具有相同的标识符。 每次都会拉出一个单元,并根据后备数据存储内容配置视图组件。 它可以为单元格显示设置不同的文本字段或图像。 该Reuse Identifier将被注册到选定的Nib文件中,并在其中加载默认视图组件。 但是,在macOS中,工作流程略有不同。 它使用makeItem(withIdentifier identifier: String, for indexPath: IndexPath)方法创建项目对象。 一种简单但不可思议的连接Nib文件的方法是,将标识符设置为与Nib文件相同的名称。 例如, MyItem的标识符将查找名为MyItem.xib的笔尖文件并检索其内容。 要进行快速演示,您可以在此处观看YouTube视频。
以及其他插件… Xcode 8.1在MacBook Pro和Touch Bar启动的“ Hello Again”事件之后发布。 我的同事问他是否可以使用XVim,并且显然如果没有Vim模式就无法生存。 同时,我非常渴望在演示项目中试用Touch Bar功能。 因此,我决心对其进行测试。 1)从存档而不是Mac App Store下载 最初,我通过Mac App Store以一般方式更新Xcode。 然后,我使用了工具MakeXcodeGr8Again,但该工具无法正常工作。 当我将Xcode拖到工具时,该过程中断了。 在对此问题进行了一些来回讨论之后,我尝试从下载存档中下载Xcode 8.1。 这次可以了。 该图像说明了两个Xcode。 尽管它们具有相同的内部版本号,但是它们具有不同的文件大小并创建日期。 2)将兼容性UUID添加到插件 启动重新签名的Xcode之后,XVim仍然无法正常工作。 遗漏了一些东西。 每个Xcode版本都有其自己的UUID。 为了使插件能够识别兼容性,我们应该确保UUID在Info.plist中可用。 可以在终端中运行此命令。 find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID` 为了进一步了解,这基本上是获取最新Xcode的UUID,并将其附加到每个插件的Info.plist中。 这将获取位于指定路径中的最新Xcode的UUID。 `defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID` […]
在为新项目select模板时有一些重叠的字段。 例如iOS的 – >应用程序 – >单一视图应用程序,我也试过用Xcode 8,我没有遇到任何问题,而不是Xcode 7.3.1 @macOS Sierra。 屏幕截图:为您的新项目select选项:
我可以在不更新我的Mac OS的情况下安装xcode 8.3,即“OS X El Capitan”(版本10.11.6) 我没能在苹果的网站上find任何参考,但是这个链接说我不能。 现在,我已经安装了Xcode 8.2.1。
我正在使用以下命令导入包含公钥和私钥的PEM文件,供我的代码签名身份使用: security import "${PEM_FILE}" -k ~/Library/Keychains/login.keychain -T /usr/bin/codesign -T /usr/bin/security 在OS X 10.11 El Capitan我可以在没有提示的情况下进行codesign : codesign –force –sign "${IDENTITY_HASH}" –timestamp=none `mktemp` 但是,正如其他人所说 , OS X 10.12 Sierra现在要求您在import之后set-key-partition-list : security set-key-partition-list -S apple-tool:,apple: -s -k "${PASSWORD}" ~/Library/Keychains/login.keychain 但是,即使在set-key-partition-list ,我仍然得到一个UI对话框,要求获得访问我的私钥来进行代码签名的权限: 如果我点击Always Allow ,那么未来的codesign调用不会提示,但我不希望该UI对话框提示。 我希望这一切都可以脚本化。 为什么set-key-partition-list为其他人工作,而不是为我?
我正尝试使用连接到ssl://gateway.push.apple.com:2195的简单PHP工具来发送手机的推送通知,但连接失败,并显示以下错误: Warning: stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in <Users/…/file.php> on line 30 Warning: stream_socket_client(): Failed to enable crypto in <Users/…/file.php> on line 30 Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in <Users/…/file.php> on line 30 Failed to connect: 0 这一切都是从我升级到macOS Sierra的转基因种子开始的。 macOS Sierra中有哪些新特性会影响SSL连接? 我如何解决这个问题?
已经尝试过: macOS Sierra,Xcode 8上的代码签名错误 请参阅图像显示错误 CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW – source/proj.ios_mac" export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" Signing Identity: "iPhone Distribution: New Free Games (2CHN583K4J)" Provisioning Profile: "Super Flow Flipp AppStore" (c6c30d2a-1025-4a23-8d12-1863ff684a05) /usr/bin/codesign –force –sign E48B98966150110E55EAA9B149F731901A41B37F –entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent –timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource […]