小编Gar*_*rgo的帖子

iOS版.在此项目中更新cocos2d库后无法运行项目

它无法编译源代码和写入:

架构i386的未定义符号:
"_ CTFontManagerRegisterFontsForURL",引用自: - CCLabelTTF中的[CCLabelTTF getFontName:] ld:未找到架构i386的符号clang:错误:链接器命令失败,退出代码为1(使用-v为看调用)

但是当我用"return nil"替换CCLabelTTF中以下函数中的所有代码时:

- (NSString*) getFontName:(NSString*)fontName
{
    // Custom .ttf file ?
    if ([[fontName lowercaseString] hasSuffix:@".ttf"])
    {
        // This is a file, register font with font manager
        NSString* fontFile = [[CCFileUtils sharedFileUtils] fullPathForFilename:fontName];
        NSURL* fontURL = [NSURL fileURLWithPath:fontFile];
        CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, NULL);

        return [[fontFile lastPathComponent] stringByDeletingPathExtension];
    }

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

然后我可以编译我的代码,但我不能使用标签.

那么如何在不创建新项目的情况下解决这个问题并将所有资源复制到其中呢?

EDITED

以前的版本是2.x,现在我有最后一个rc2版本.

我删除了旧库的所有文件,将文件从新库复制到项目文件夹中,并通过xcode将它们添加到项目中.xcode可以用新的库文件创建项目,所以我从这个新项目中获取它们.然后我做了一些更改以删除警告.

label labels cocos2d-iphone ios cclabelttf

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

DispatchQueue.main.asyncAfter 相当于 Swift 中的结构化并发?

在 GCD 中我只是调用:

DispatchQueue.main.asyncAfter(deadline: .now() + someTimeInterval) { ... }
Run Code Online (Sandbox Code Playgroud)

但我们开始迁移到结构化并发。

我尝试了以下代码

extension Task where Failure == Error {
    static func delayed(
        byTimeInterval delayInterval: TimeInterval,
        priority: TaskPriority? = nil,
        operation: @escaping @Sendable () async throws -> Success
    ) -> Task {
        Task(priority: priority) {
            let delay = UInt64(delayInterval * 1_000_000_000)
            try await Task<Never, Never>.sleep(nanoseconds: delay)
            return try await operation()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

用法:

Task.delayed(byTimeInterval: someTimeInterval) {
    await MainActor.run { ... }
}
Run Code Online (Sandbox Code Playgroud)

但它似乎相当于:

DispatchQueue.global().asyncAfter(deadline: .now() + someTimeInterval) { …
Run Code Online (Sandbox Code Playgroud)

multithreading grand-central-dispatch swift structured-concurrency

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

在xCode 5中调整UI元素大小的奇怪错误?附有视频

链接到有bug的视频

我只是在xCode中创建了一个项目.然后我将任何UI元素添加到视图中.然后我尝试向左和向右调整此项目的大小.没有代码,仅使用Interface Builder.

我已经检查过某些类型的iOS项目以及UILabel和UIButton.结果是一样的:当我尝试从左侧调整项目大小时,它会移动父视图/视图控制器.

user-interface resize interface-builder ios xcode5

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

Objective-C的.C数组的属性

我需要这样的东西:

@property (nonatomic, retain) int field[10][10];
Run Code Online (Sandbox Code Playgroud)

但是这段代码不起作用.如何更换?我需要setter和getter方法

arrays properties objective-c instance-variables

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

如何使leftBarButtonItem看起来像backBarButtonItem?

默认解决方案不合适:

  1. 更改以前的ViewController标题 - 我需要让我自己的功能控制按钮触及
  2. 制作一个leftBarButtonItem并隐藏backBarButtonItem - leftBarButtonItem看起来不像默认的backBarButtonItem.

uinavigationbar uinavigationcontroller uinavigationitem ios backbarbuttonitem

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