小编Jef*_*eff的帖子

从Dock菜单中删除xcode最近的项目

我想从Mac OS-X任务栏(Dock)中删除XCode最近的项目菜单项.
我正在寻找的任何地方都说File->Open Recent->Clear Menu它会清楚,但不是.
它没有从Dock清除,它从XCodeRecent菜单中清除.
我相信我应该挖掘一下OS文件系统,但我不知道在哪里.

这是一个XCode 4.2安装,我做了一个完整的卸载和安装版本4.3.
但我无法在版本4.3中清除Dock的项目菜单!

xcode xcode4

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

Xcode 并排代码比较选项在哪里?

从 Xcode 13 开始,代码比较默认不再是并排差异。

一定还有办法做到这一点。

我正在努力寻找选择!

diff xcode xcode13

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

如何指定Git LFS文件的存储位置?

我只是想知道是否有人能解决我对使用Git大文件存储的困惑.

在创建新存储库时,我知道如何跟踪某些文件git lfs track,但是如何指定这些文件的存储位置?

例如,在我正在进行的项目中,有许多png和wav文件.这些都是使用跟踪git lfs track.Git LFS网站说它们存储在远程服务器上,但我无法找到该信息在我们的存储库中的位置.

此外,当第二个用户克隆repo时,项目仅包含指向LFS对象的指针.他们如何找到/使用存储实际文件的远程URL?

(我们使用Bitbucket和本地系统git作为我们的回购.)

git git-lfs

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

UICollectionViewFlowLayout vs子类化UICollectionViewLayout

我知道如果您正在做任何"像网格或基于行的破坏布局",那么记录的建议是使用UICollectionView Flow Layout.但是,我不确定这是否属实.

我想要一个网格,但想要一个换行符布局.物品应水平和垂直无限布局,无需堆叠.基本上,如果内容超出框架,则可以水平或垂直滚动​​的巨型棋盘.

要继承UICollectionView 布局,我必须:

  1. 覆盖prepareLayout以阻止布局包装项目.这似乎很多工作.
  2. 覆盖collectionViewContentSize.

Apple表示他们在制作UICollectionView Flow Layout 方面做了大量的努力工作,所以如果可以,我应该利用它.但是,如果我必须覆盖prepareLayout以关闭断线,我怀疑我正在丢弃他们的大部分工作.在剩下的工作中,我可能不会使用大部分工作(例如minimumLineSpacingForSectionAtIndex).

因为我想要的布局是如此简单,我怀疑我应该继承UICollectionViewLayout,因为:

  1. 我将在一个布局类中使用更简单,更清晰的实现,而不是在子类和委托之间传播.
  2. 我认为它不会比继承UICollectionView Flow Layout 更难,因为我必须prepareLayout在两种情况下都要覆盖,我怀疑这是所有艰苦工作的地方.
  3. 我会更自然地以自定义方式调整其他UICollectionViewLayoutAttributes,而不是尝试在UICollectionView Flow Layout子类之上添加另一个kludge .

我的结论是否正确?

ios uicollectionview uicollectionviewlayout

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

使用XCTest进行异步性能测试

我已经开始探索用于异步和性能测试的新XCTest API.在隔离的情况下,WWMC中的Apple示例运行良好,但我一直无法弄清楚如何将它们组合起来.我能想出的最好的是以下内容,但运行时收到以下错误:

API违规 - 调用等待没有任何期望已设置.

XCTestExpectation *clsQueryReturnedExpectation = [self expectationWithDescription:@"clsQuery returned"];

PFCLSClient *theClient = [[PFCLSClient alloc] init];

[self measureMetrics:@[XCTPerformanceMetric_WallClockTime] automaticallyStartMeasuring:YES forBlock: ^{
   [theClient getStructureOfType:clsImageTypeSVG ForID:idString success: ^(NSDictionary *structureInfo) {
       [clsQueryReturnedExpectation fulfill];
} failure: ^(NSError *error) {
       XCTFail();
       [clsQueryReturnedExpectation fulfill];
}];

   [self waitForExpectationsWithTimeout:5 handler: ^(NSError *error) {
        [self stopMeasuring];
   }];
}];
Run Code Online (Sandbox Code Playgroud)

有没有人能够完成类似的事情?

谢谢

unit-testing asynchronous ios xctest

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

如何在lldb中创建和使用temp NSRange?

NSRange只是一个C结构.我想在断点处在Xcode中的lldb中创建一个临时的.

专门用于NSArray方法 objectAtIndex:inRange:

这不起作用.

(lldb) expr NSRange $tmpRange = (NSRange){0,4}
(lldb) expr $tmpRange
(NSRange) $tmpRange = location=0, length=4
(lldb) expr -o -- [items indexOfObject:item4 inRange:$tmpRange]
error: no matching constructor for initialization of 'NSRange' (aka '_NSRange')
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)

我的代码有一个badRange在断点处命名的NSRange var ,并将其传递给了.从而:

(lldb) expr -o -- [items indexOfObject:item4 inRange:badRange]
0x7fffffffffffffff
(lldb) expr badRange
(NSRange) $1 = location=0, length=3
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

谢谢.

struct ios nsrange lldb

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

元类型(.Type)可以用作字典中的键吗?

我有这样的事情:

class Lumber { }
class Fruit { }

enum Size {
    case small
    case medium
    case large
}

let lumberSize = [
    Size.small: "2x4",
    Size.medium: "4x6",
    Size.large: "6x10"
]

let fruitSize = [
    Size.small: "grape",
    Size.medium: "apple",
    Size.large: "watermelon"
]

let size:[AnyObject.Type:Dictionary] = [
    Lumber.Type: lumberSize,
    Fruit.Type: fruitSize
]
Run Code Online (Sandbox Code Playgroud)

在我的size字典定义中,我从Xcode编辑器中得到了这个实时错误:

类型'AnyObject.Type'不符合协议'Hashable'

你可能认为这会解决问题.如果我想在字典中使用X作为键,并且它不可以使用,则它根本无法使用.那讲得通.

但是,有两件事让我怀疑错误信息.

首先,此时实时Xcode编辑器错误消息超出基本要求.每天好几次,我必须忽略它对错误的猜测,并在语法被接受之前使用它.

其次,我想在文档中读取反驳错误消息的单词.在Swift 2.2语言参考中,在类型下,它显示为:

类,结构或枚举类型的元类型是该类型的名称,后跟.Type

并在Swift标准库参考 ObjectIdentifier结构参考中读取:

在Swift中,只有类实例和元类型具有唯一的标识.

该部分还列出size了它符合的协议.

如果我正确阅读,那么所有类型都有 ObjectIdentifier Hashable使用的类型.我(错误地?)使用Comparable作为例子.我们可以比较类型,因为它们的ObjectIdentifier符合Comparable?既然ObjectIdentifier也符合Hashable,那么我应该能够在字典中使用它.

所以现在我怀疑我打算做的事实际上是可行的,但是我根本无法使语法正确.

xcode dictionary hashable swift

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

美人鱼类图仅变宽,忽略方向

我在使用 Mermaid 语法在 GitLab markdown 中布局类图时遇到问题。我有一些证据表明我在 Mermaid 语法中犯了一个错误,无论 GitLab 是什么。因此,我觉得可以询问SO

当我添加元素时,我尝试使用 Mermaid 创建的类图只会变得越来越宽。图中的文字也变得越来越小。我无法让布局垂直扩展。

这是 H1 元素的屏幕截图供参考。

美人鱼类图

我添加了direction关键字,但布局忽略了它。我已经尝试过TDand TBand LRandRLdirection价值观。类图在所有情况下呈现相同。

我发现这是一个更复杂的图表,可以在 GitLab 中很好地呈现。该布局同时使用水平和垂直空间。这让我认为 GitLab 正在工作,但我的语法是错误的。

如何让 Mermaid 更垂直地而不是水平地扩展和/或不减小文本大小太多?

这是代码:

classDiagram
%% Direction does not seem to be working?
direction TB
%% ---- Lib Classes ----
class Lib_FancyFruit
class Lib_GoodBread{
    +Double yeastAmount
}
Lib_FancyFruit *-- "0..*" Lib_GoodBread : breads
class Lib_SeasideManor
class Lib_LiberalSpice{
    +String currentFlavor
}
Lib_SeasideManor *-- …
Run Code Online (Sandbox Code Playgroud)

gitlab mermaid

9
推荐指数
0
解决办法
3388
查看次数

SwiftUI 中嵌套的 navigationDestination 无限循环

我读过很多关于 SwiftUI 中无限循环的其他问题和答案。我的问题是不同的,虽然也许这个错字问题是相关的,但我不这么认为。

我已将问题缩小到:在 a 中,在目标闭包中使用与数据类型不同的可识别类型的NavigationStack较低级别在上层目标闭包中创建无限循环。navigationDestinationfornavigationDestination

我花了几个小时来减少和抽象重新创建代码。这是我能做到的最浓缩的。当我进一步简化时,无限循环消失了,但我还无法确定原因。例如,我创建了一个单层NavigationStack(未显示),其中目标闭包不使用for数据类型,但它可以正常工作。

struct F3: Identifiable, Hashable {
    let id: String = UUID().uuidString
    let t: String
}
struct R3: Identifiable, Hashable {
    let id: String = UUID().uuidString
    let t:String
}
struct N3: Identifiable, Hashable {
    let id:String = UUID().uuidString
    let t: String
}
struct LV3: View { // Use `App` conformer to load this View in WindowGroup.
    let f2z = [ F3(t: "A"), F3(t: "B"),] …
Run Code Online (Sandbox Code Playgroud)

swiftui

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

将类从操场页面导入另一个页面

注意:这与导入通用 swift 文件(可以使用 Sources 文件夹完成)是不同的问题

我有一个有 2 页的操场,我想使用在第二页的第一页中定义的协议。我将使用 JSON 转换的示例。

JSON.xcplaygroundpage

import Foundation

protocol JSONConvertible {
    func jsonValue() -> String
}
Run Code Online (Sandbox Code Playgroud)

JSONArray.xcplaygroundpage

import Foundation

//Undeclared type JSONConvertible
extension Array : JSONConvertible {

}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下导入:

import MyPlayground
import MyPlayground.JSON
import JSON
import JSON.Contents (in finder the file name is actually Contents.swift)
Run Code Online (Sandbox Code Playgroud)

我还尝试将 JSON.xcplaygroundpage 添加到 Source 文件夹和JSONArrayResources 文件夹中。

注意:我意识到我可以将协议定义放在一个单独的地方,JSON.swift并将其包含在我的项目 Sources 文件夹中。这并不能真正回答我的问题。

xcode swift swift-playground

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