小编tro*_*foe的帖子

iOS:如何定义公共方法?

如何在每个viewcontroller类中定义一个可以从任何地方调用的方法?

我有一个方法,给我带来一个json文件,我希望它可以重用,因为我在我的应用程序上有几个json调用.

你能帮助我吗?

methods public ios

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

如何接受编辑和关闭包含自定义视图的弹出菜单?

我希望在我的表视图中编辑特定列时添加使用日期选择器的功能,并使用此处的代码片段,该代码片段运行良好.但是NSDatePicker不适合我的需要所以我使用自己的自定义视图,使用IB创建并通过NSViewController子类加载来编辑日期.

但我无法弄清楚如何关闭该弹出式菜单中接受编辑,即回报的方式YESuserAcceptedEdit:

BOOL userAcceptedEdit = [menu popUpMenuPositioningItem:nil
                                            atLocation:frame.origin
                                                inView:tableView];
Run Code Online (Sandbox Code Playgroud)

这是NSDatePicker菜单视图时的工作正常,但不适用于我的自定义视图.

我正在自定义视图中的文本字段中捕获回车键操作,但我能弄清楚的是如何取消菜单跟踪,这使得userAcceptedEdit == NO:

MyCustomViewController.mm:

- (IBAction)textFieldAction:(id)sender {
    logdbg(@"Action");
    NSMenu* menu = [[self.view enclosingMenuItem] menu];
    [menu cancelTracking];
}
Run Code Online (Sandbox Code Playgroud)

Apple的应用程序菜单和弹出列表编程主题的" 菜单项"部分中的视图不包含它...

编辑这是一个示例项目,它演示了这个问题.

有人可以提供一些指导吗?

macos cocoa objective-c nsmenu nsview

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

如何捆绑Linux应用程序

我正在编写一个(闭源)应用程序,并将为所有三个主要平台(MacOS X,Linux和Windows)提供二进制文件.它在LGPL许可下使用Qt,因此我需要动态链接Qt库.我理解如何通过简单地为应用程序提供Qt动态库来捆绑MacOS和Windows的应用程序,但我不确定如何正确地为Linux做这件事.

将应用程序作为包(.deb和.rpm)提供并允许包系统解析依赖关系是很传统的.应该用这种方法吗?如果是这样,我应该针对哪些发行版(我假设是Ubuntu和Fedora)?如果有人对此有任何经验,我会有兴趣听到它.

linux installation qt rpm deb

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

从Xcode导出的开发人员配置文件中存储了哪些数据?

我们知道,从Organizer->Devices->Teams->Team Name我们可以导出具有扩展"developerprofile"的文件.这些文件中存储了哪些数据?只有每个团队成员的证书或Xcode中的整个设置(如快捷方式等).导入其他团队成员开发者档案时会发生什么?它是否像Xcode"签名"他的名字/证书?

xcode provisioning-profile

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

-ObjC标志可以有选择地应用于静态库吗?

TL; DR

如何使-ObjC链接器标志针对特定的静态库而不是我链接的所有静态库,以避免未使用的目标文件与我的应用程序链接?


太长; 读了

因此,您正在开发一个新的iOS应用程序,并添加您自己开发的"objcutil"静态库,其中包含各种有用的Objective-C类(未实现为类别),以执行过去有用的各种事情.到目前为止,这么好,只有实用程序库中引用的那些目标文件才与应用程序链接.

然后,您决定集成要使用其他链接器标志Google Maps SDK,并且实用程序库中的所有突然依赖都无法解析,因为您尚未将Xcode配置为链接到这些库.-ObjC

好的,我可以轻松地解决缺少的依赖项,但是现在您有不需要的未使用的目标文件和库依赖项,并且您希望比这更整洁.

那么你如何避免OCD过载?


ld联机帮助页中可以参考:

-ObjC加载定义Objective C类或类别的静态归档库的所有成员.此选项不适用于动态共享库.


  • Xcode版本:5.1.1
  • OSX版本:10.9.4

xcode linker dependencies objective-c ios

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

MAC OS X:如何确定文件系统是否区分大小写?

我已经使用statfs(2)系统调用来获得Mac OS X文件系统的许多特性,但它并没有告诉我文件系统是否区分大小写.

我需要这些信息为我发展将围绕移动许多文件的应用程序,我想检测数据的潜在损失,由于文件从一个区分移动敏感的文件系统的区分大小写的文件系统.

任何人都可以提出一种检测方法吗?

filesystems api macos case-sensitive

7
推荐指数
3
解决办法
7471
查看次数

提高SurfaceView-dervied自定义视图的性能?

我编写了一个简单的Android应用程序,使用派生自定义视图绘制迷宫SurfaceView.它遵循LunarLander示例应用程序的模型,并使用后台线程直接执行所有计算和绘图到SurfaceHolder对象中.

一切都很好,并且它适用于中小型迷宫,但如果我将迷宫单元格大小设置为8像素,则应用程序可以在迷宫中抓取大量单元格.

代码正在做一些我不喜欢的事情,即绘制每个单元格,即使它没有改变,这也是为了避免SurfaceView双缓冲区中的屏幕闪烁(在应用程序的先前迭代中我正在绘制的内容已经改变了导致一个疯狂的混乱).

我想要的是能够使用SurfaceView但更有选择性的东西.这可能吗?如果没有,有哪些替代方案?如何保持屏幕外的位图,并有选择地首先绘制?

编辑:我实现了一个屏幕BitmapCanvas组合,由我的定时器驱动状态机写入,只绘制雕刻/解决方案中受影响的区域.我再简单地画整个屏幕外的位图到SurfaceView的内run()方法,这解决了我的问题; 我能够将单元格大小降低到5像素,性能很好.

android surfaceview double-buffering

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

其他链接器标志列表

是否有可以放入Other Linker FlagsXcode Build Settings字段的所有标志的列表?

我搜索了开发人员文档而没有结果.

xcode linker flags

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

这个RAII风格的Objective-C课程会起作用吗?

在C++下,我有一个Mutex类,我使用这个RAII风格的类来确保互斥锁被解锁,无论方法返回的原因是什么:

class MutexLock {
protected:
    Mutex &m_mutex;
public:
    MutexLock(Mutex &mutex) :
        m_mutex(mutex) {
        m_mutex.lock();
    }

    ~MutexLock() {
        m_mutex.unlock();
    }
};
Run Code Online (Sandbox Code Playgroud)

是否有任何原因,并且在使用ARC时,等效的Objective-C类不能正常工作:

@interface Locker : NSObject {
    NSLock *_lock;
}
- (void)setLock:(NSLock *)lock;
@end

@implementation Locker

- (void)setLock:(NSLock *)lock {
    [_lock unlock];
    _lock = lock;
    [_lock lock];
}

- (void)dealloc {
    self.lock = nil;
}
@end
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式使用:

NSLock *_lock;    // instance variable

- (void)myFunc {
    Locker *locker = [[Locker alloc] init];
    locker.lock = _lock;

    return;     // Whenever I like …
Run Code Online (Sandbox Code Playgroud)

c++ mutex raii objective-c

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

测试托管缓冲区的最佳实践?

在配备独立显卡的 Mac 上,应使用托管缓冲区而不是共享缓冲区,但是使用[MTLBuffer:didModifyRange:]保持同步还有其他要求。

然而,在 Apple Silicon 上,如果我通过假装[MTLDevice hasUnifiedMemory]​​返回NO并删除对 的调用来强制使用托管缓冲区didModifyRange:,则渲染工作正常。

在 GPU 内存统一的 Apple Silicon 上测试托管缓冲区的最佳方法是什么,以便我可以确保我的代码可以在较旧的 Mac 上运行?

testing macos xcode metal apple-m1

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