小编koe*_*oen的帖子

UINavigationbar涵盖了视图的顶部

我在xib文件中只设置了一个UITextView和UINavigationBar的视图.

当我运行应用程序时,文本的顶部被UINavigationBar遮挡,即使我在UINavigationBar下面的IB中排列了UITextView.

它不仅适用于UITextViews,也适用于其他类型的视图,包括简单的UILabel.我的理解是,当使用导航栏时,视图的顶部将向下移动,但这不会发生.

我在设置中遗漏了什么来阻止这种情况吗?

iphone objective-c uinavigationbar ios

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

获取后核心数据关系为零

这是核心数据中临时实体的最佳实践的后续问题. 我做了一个新话题,因为我认为这是一个不同的问题。

当我在子上下文中设置临时实体时,我会与商店中已有的实体建立关系。这工作没有错误,使用 objectID 跨线程传递实体。我使用断点来验证关系是否正常。

现在,当我到达表格以显示所有临时对象(使用NSFetchedResultsController)时,关系为零。临时对象的所有其他属性都已就位,只是没有关系。

所以我肯定在这里遗漏了一些东西。

这是我尝试过的一些代码:

Temp *temp = [NSEntityDescription insertNewObjectForEntityForName: @"Temp" inManagedObjectContext: myImportContext];

NSManagedObjectID *objectID = self.test.objectID;

if (objectID)
{
    NSError *error = nil;
    Test *t = (Test *)[myImportContext existingObjectWithID:objectID error: &error];

    if (error == nil)
        [temp addTestObject: t];
}
Run Code Online (Sandbox Code Playgroud)

更新:我忘了补充说所有这些都在后台线程上运行。

更新2:我想出了问题。Temp和Test的关系是一对多的关系,所以每次给Temp添加Test对象,就删除了之前的Temp和Test的关系。将关系设置为多对多解决了它。

core-data nsfetchedresultscontroller

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

在目标 c 中以编程方式创建自定义单元格?

我在让海关细胞出现时遇到问题。下面我发布了我的代码的简化版本:

 - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

    NSLog(@"Being Called?");
    //reuseID = @"newtableid";
    self.backgroundColor = [UIColor redColor];

    self.name = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 50)];
    self.name.backgroundColor = [UIColor redColor];

    [self addSubview:self.name];

    return self;
}
Run Code Online (Sandbox Code Playgroud)

在我的 viewController 中,我在 ViewDidLoad 方法中设置了 tableView:

 self.table = [[UITableView alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 400) style:UITableViewStylePlain];

 self.table.delegate = self;
 self.table.dataSource = self;
 self.table.backgroundColor = [UIColor blackColor];

 [self.view addSubview:self.table];
 [self.table registerClass:NewTableViewCell.class forCellReuseIdentifier:@"Cell"];
Run Code Online (Sandbox Code Playgroud)

然后,我像这样完成 cellForRowAt 方法:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview cell-formatting ios

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

SwiftUI:将按钮放置在列表下方

我的一个视图有一个 grouped List,我喜欢在最后一行下方放置一个按钮。这是代码:

var body: some View {
    VStack() {
        List {
           Text("Hello World")
           Text("Hello World")
           Text("Hello World")
           Text("Hello World")
        }
        .listStyle(GroupedListStyle())

        Button("Button") {}
    }
    .navigationBarTitle("Hello World", displayMode: .inline)
}
Run Code Online (Sandbox Code Playgroud)

问题:该按钮始终显示在屏幕底部。我尝试添加间隔符,向 中添加间距修饰符VStack,但按钮始终位于底部:

在此输入图像描述

相反,我希望按钮位于列表下方并留有一定的间距。

我怎样才能做到这一点?

spacing swift swiftui vstack

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

下载xcode15beta并构建错误

我下载了xcode15 beta,然后运行项目报错,但是用xcode14.3运行时没有报错。

\n

错误信息为\xef\xbc\x9a

\n
\n

未找到库“iconv.2.4.0”\n链接器命令失败,退出代码为 1(使用 -v 查看调用)

\n
\n

iphone xcode objective-c ios libiconv

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

在iOS中跳过/忽略方法

如何跳过iOS中的完整方法?我知道如何测试iOS版本的方法,而不是如何完全忽略的方法.

具体的例子:iOS8上加入自上浆表视图细胞,并且这些方法heightForRowAtIndexPath:estimatedHeightForRowAtIndexPath:不再需要.但我确实需要它们用于iOS7.现在,当我逐步浏览iOS8中的代码时,即使不再需要它们,也会调用这两种方法.

objective-c uitableview ios

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

即使添加映射模型后,CoreData 轻量级迁移也会崩溃

在我的 CoreData 模型中,我创建了一个抽象实体 ( IDManagedObject) 来共享其他实体的公共属性。

当我第一次运行它时,我遇到了几个Cannot merge multiple root entity source tables into one destination entity root table错误。

完整错误如下:

Fatal error: Unresolved error Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={sourceURL=file:///Users/koen/Library/Developer/CoreSimulator/Devices/8E2C0F01-ABF3-4414-A01A-EE4FFEF8D187/data/Containers/Data/Application/B7A9A4EE-EB57-434F-B1A9-576DCD80CFBD/Library/Application%20Support/MyApp.sqlite, reason=Cannot migrate store in-place: Cannot merge multiple root entity source tables into one destination entity root table, destinationURL=file:///Users/koen/Library/Developer/CoreSimulator/Devices/8E2C0F01-ABF3-4414-A01A-EE4FFEF8D187/data/Containers/Data/Application/B7A9A4EE-EB57-434F-B1A9-576DCD80CFBD/Library/Application%20Support/MyApp.sqlite, NSUnderlyingError=0x6000019fb810 {Error Domain=NSCocoaErrorDomain Code=134110 "An error occurred during persistent store migration." UserInfo={message=Cannot merge multiple root entity source tables into one destination entity root table, …
Run Code Online (Sandbox Code Playgroud)

core-data ios mapping-model cloudkit

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

在 SwiftUI 的 TabView 中显示选定的选项卡

在 SwiftUI 中使用 TabView 时,如何才能显示选定的 Tab,如下图所示?

在此输入图像描述

我尝试在每个选项卡中创建一个 VStack,如下所示:

struct ContentView: View {
@State public var tabViewSelection = 0
var body: some View {
    TabView(selection: $tabViewSelection) {
        HomeFirstLevel()
            .tabItem {
                VStack {
                    Image("HomeIcon")
                    Rectangle()
                        .frame(height: 7)
                        .foregroundColor((tabViewSelection == 0) ? .black : .clear)
                }
            }.tag(0)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用。我什至似乎无法添加矩形而不是图像:

HomeFirstLevel()
   .tabItem {
       Rectangle()
   }.tag(0)
Run Code Online (Sandbox Code Playgroud)

TabView 不接受形状吗?先谢谢您的帮助!

tabview swiftui

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

在完成所有任务之前调用dispatch_group_notify

我正在努力dispatch_groupdispatch_group_notify,在所有任务完成之前调用.我试图做的是迭代一些查询,获取它们,并将返回的XML处理成CoreData实体.然后,当一切都完成后,我调用上下文保存所有数据到商店.但是dispatch_group_notify在所有任务完成之前调用,并且没有任何保存.

这是一些代码:

dispatch_group_t dispatchGroup = dispatch_group_create();

for (NSString *query in queryArray)
{
    dispatch_group_enter(dispatchGroup);
    NSLog(@"enter");

    [myDownloadClient searchForQuery: query
                      withParameters: nil
                          completion: ^(NSData *data, NSError *error) {
                             [self processXML: data];
                             NSLog(@"end import");
    }];

    NSLog(@"leave");
    dispatch_group_leave(dispatchGroup);
}

dispatch_group_notify(dispatchGroup, dispatch_get_main_queue(),^{
    NSLog(@"save");
    [self saveContext];
}
Run Code Online (Sandbox Code Playgroud)

我在日志中看到的是

enter
leave
enter
leave
...
save
end import
...
Run Code Online (Sandbox Code Playgroud)

如您所见,在完成所有下载和XML处理之前会显示save,因此无需保存.

我怎样才能让它发挥作用?

core-data grand-central-dispatch ios

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

使用 map 将 struct 属性更改为新数组

我正在尝试从另一个更改了某些属性的数组创建一个新数组。我遵循了这个线程中的答案:Using Map in Swift to Change Custom Struct Properties,但我没有让它工作,并且在我的 PlayGround (XCode 8beta6) 中崩溃

这是一个简单的例子:

struct Day {
   var day: String
}

var mondays: [Day] = []

for i in 0..<10 {
   let day = Day(day: "Monday")

   mondays.append(day)
}

print(mondays)

// create a new array where all days have the day property set to 'Tuesday'
let tuesdays = mondays.map { (var d) -> Day in
   d.day = "Tuesday"
   return d
}

print(tuesdays)
Run Code Online (Sandbox Code Playgroud)

一旦我添加了代码的第二部分,我就会崩溃,崩溃日志很长(我不会在这里重现,因为它太大了)。所以它可能只是 Swift 3 和/或 Xcode beta 中的一个错误。 …

arrays xcode swift3

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