小编Phi*_*gan的帖子

从Objective C中获取NSBundle的图像路径?

我想在Core Data中存储大约60张图像,其中30张是头像,前缀为avt_filename_00X.png,其中30张较小且前缀不同.

我没有将所有图像存储为Core Data/SQLite中的BLOB,而是希望存储找到的每个图像的路径(与存储MySQL数据库的图像路径的方式相同).

但是我不知道如何抓住NSBundle中的图像路径.

我可以通过以下方式获取NSDocumentDirectory的路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager fileExistsAtPath:documentsDirectory];

NSLog(@"documentsDirectory = %@", documentsDirectory);
Run Code Online (Sandbox Code Playgroud)

我可以加载图像并将其添加到数组中.

if (qty == 0)
{
    //NSLog(@"fileToLoad = %@", fileToLoad);

    UIImage *img = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileToLoad ofType:fileExt]];

    [self.avtList addObject:img];

    [img release];

} else {

    // load multiple image into an array
    // not coded yet
}
Run Code Online (Sandbox Code Playgroud)

但是,我不确定的是:

  1. 如何获取计算机在NSBundle内部找到图像的路径?

  2. 当应用程序在设备上时,如何确定路径是否有效?

我们的想法是将所有图像存储在一个数组中,然后将它们推送到Core Data/SQLite.

image core-data path objective-c nsbundle

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

哪里有关于如何正确使用Xcode调试器的好教程?

主题说这一切真的......有没有适合Xcode调试器的好教程?我发现了一些东西,但没有什么全面的或足够深的东西.我现在的问题是这......

#0  0x90d9c688 in objc_msgSend
#1  0x30506515 in NSPopAutoreleasePool
#2  0x30901697 in _UIApplicationHandleEvent
#3  0x32046375 in PurpleEventCallback
#4  0x30245560 in CFRunLoopRunSpecific
#5  0x30244628 in CFRunLoopRunInMode
#6  0x308f930d in -[UIApplication _run]
#7  0x309021ee in UIApplicationMain
#8  0x00001ff8 in main at main.m:14
Run Code Online (Sandbox Code Playgroud)

......结合这......

0x90d9c688  <+0024>  mov    0x20(%edx),%edi
Run Code Online (Sandbox Code Playgroud)

...还有这个...

EXC_BAD_ACCESS
Run Code Online (Sandbox Code Playgroud)

......没有多大帮助.或者说,真的.我正在尝试评论代码行,必须有更好的方法.

谢谢

更新:我想也许我的发泄有点分散了真正的问题,虽然提示有助于解释一些事情.我真正得到的不仅仅是对上述内容的解释,而是一般使用调试器.我通常遇到的问题是:

  • 当我跳过或进入时,为什么调试器有时会从源代码视图转到(我假设的)汇编代码?有没有办法让我一直同时看到两者?
  • 我是否应该在汇编代码中寻找任何具体内容,或者在特定情况下可以提供哪些帮助?
  • 看起来断点允许操作,所以我很好奇如何使用它而不是用NSLog语句来编写代码.

我知道这些是广泛的,可能应该单独询问,但我不想把这些可能已在其他地方记录的主题弄乱到SO空间.

我还注意到这里有一个几乎重复的问题:什么是Objective-c调试技巧?

debugging xcode

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

在 Apple Numbers 中,如何计算两个日期之间的差异?

我有一个电子表格,其中包含 Apple Numbers 中的数据。我有一列日期,我想创建第二列来显示两个日期之间的天数差异。

例子:

日期......................差异

2011 年 5 月 1 日……不适用

2011年5月3日......2

2011年5月8日......5

我的第一个倾向是 applescript,但也许 applescript 对于这项任务来说可能有点过分了。

无论如何,请根据需要转发。

applescript automation iwork spreadsheet

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

如何管理动态大于可查看区域的NSView中的自定义数据(而不是照片)的绘制?

更新:相对于下面的问题和答案,似乎我NSView对与我试图绘制的自定义类和包装有关的类有误解NSScrollView.最后,我想弄清楚的是如何在面积大于可视区域的情况下管理自定义数据(而不是照片)的动态绘制NSView

我不是在寻找讲义,但我是Cocoa的新手,我认为我在Apple的文档上做了最好的练习,但似乎我已经弄错了基础知识.Apple的文档非常详细,技术性很强,完全围绕着处理照片,因此对我来说毫无用处.Apple提供的相关代码示例(例如Sketch)以典型的倾斜方式从打印机纸张尺寸中获取文档大小,这不是我需要的.我已经在网上搜索了教程,示例等,但是我找不到任何东西(我保证在我解决这个问题时写一个).

我正在从REALbasic移植这个代码,我完全使用它,即使使用撤消命令,但这样做的范例完全不同.这对我来说不是"点击".我很欣赏给予的帮助,我在这里仍然遗漏了一些东西,人们提供的其他任何东西都值得赞赏.

谢谢


我有一个子类NSView,我正在创建一个钢琴卷MIDI接口.我想解决一些问题:

  • 在滚动期间和之后绘制工件
  • 在滚动期间和之后不跨越可见区域的线
  • 在滚动时,有时在mouseDown上,水平滚动条跳转到右侧1(一)像素,但我还没有在任何地方实现scrollToPoint.

与上述有关的症状:

  • 实施adjustScroll会让事情变得更糟.
  • mouseDown会纠正所有问题,除非有时向右跳1像素.
  • 如果我取消注释NSLog命令,则drawRect的开头没有绘制.

Apple的文档提到像素精确的绘图,但(当然)没有提供如何实现这一点的例子.我一直在使用floor()函数来尝试获得一致的值,但是一旦我开始使用scrollToPoint或任何其他复杂性,事情就会变得混乱.

请以链接图像为例进行说明.屏幕截图,如果您能相信它,实际上清理了我在屏幕上看到的内容.在半透明度下,几乎所有地方都有双线.同样适用于我绘制的任何对象.

在滚动http://www.oatmealandcoffee.com/external/NSViewArtifacts.png后生成的子类NSView中的图形工件和不一致性

这是代码.我讨厌公开放弃这么多,但我到处寻找线索,如果互联网有任何迹象表明我是唯一有这个问题的人,我真的只想把这个问题整理好并继续前进.有很多,还有更多,但这些是我真正需要做的核心事情,坦率地说,我对如何纠正它感到茫然.

    - (void)drawRect:(NSRect)rect {
        //NSLog(@"OCEditorView:drawRect: START");

        [self setFrame:[[self EditorDocument] DocumentRect]];

        [[NSGraphicsContext currentContext] setShouldAntialias:NO];

        // CLEAR BACKGROUND

        [[[self EditorDocument] ColorWhiteKey] set];
        NSRectFill(rect);

        // BACKGROUND KEYS

        int firstRowLine = 0; //NSMinY(rect); //<- adding the function results in bad spacing on scrolling
        int currentRowLine = 0;
        int lastRowLine = NSMaxY(rect);

        //NSLog(@"lastRowLine:%d", lastRowLine);

        float currentZoomY …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c

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

通过applescript获取当前登录用户的语言

我想获取当前登录用户的系统语言.这条线

set lang to do shell script "defaults read NSGlobalDomain AppleLanguages"
Run Code Online (Sandbox Code Playgroud)

返回一个字符串,看起来像

(
    en,
    de,
    ja,
    fr,
    es,
    it,
    pt,
    "pt-PT",
    nl,
    sv,
    nb,
    da,
    fi,
    ru,
    pl,
    "zh-Hans",
    "zh-Hant",
    ko,
    ar,
    cs,
    hu,
    tr
)
Run Code Online (Sandbox Code Playgroud)

返回用户语言,但我怎样才能得到这个'数组'的第一个?是否有可能将此解析为数组获取其第一个值?

macos terminal applescript

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