小编gre*_*reg的帖子

已创建Mac沙箱,但没有NSUserDefaults plist

我正在尝试追踪沙盒创建过程中出现的一些问题.在多种情况下,似乎未在Data/Library/Preferences中创建NSUserDefaults .plist文件.我在调试器中以及从Applications目录启动应用程序时已经看到了这一点.我没有尝试存档,签署应用程序然后启动.这需要吗?

创建以.LSSharedFileList.plist结尾的别名文件,但它指向自身,因此不存在.

我不知道它是否相关但是控制台报告:

appleeventsd[72]: <rdar://problem/11489077> A sandboxed application with pid ... checked in with appleeventsd, but its code signature could not be validated ( either because it was corrupt, or could not be read by appleeventsd ) and so it cannot receive AppleEvents targeted by name, bundle id, or signature. Error=ERROR: #100013  { "NSDescription"="SecCodeCopySigningInformation() returned 100013, -." }  (handleMessage()/appleEventsD.cp #2072) client-reqs-q
Run Code Online (Sandbox Code Playgroud)

谢谢.

macos cocoa sandbox nsuserdefaults

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

多线程Objective-C访问器:GCD与锁

我在争论是否要转向基于GCD的多线程访问器模式.多年来我一直在访问器中使用基于锁的自定义同步,但我发现了一些信息(GCD简介),并且似乎有基于GCD的方法的优点.我希望在这里开始一个对话,以帮助自己和其他人权衡决定.

模式看起来像:

- (id)something
{
    __block id localSomething;
    dispatch_sync(queue, ^{
        localSomething = [something retain];
    });
    return [localSomething autorelease];
}

- (void)setSomething:(id)newSomething
{
    dispatch_async(queue, ^{
        if(newSomething != something)
        {
            [something release];
            something = [newSomething retain];
            [self updateSomethingCaches];
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

在专业方面:您可以获得非阻塞写访问的好处; 比锁更低的开销(可能?); 从关键代码部分返回之前忘记解锁的安全性; 其他?

缺点:异常处理不存在,因此您必须将其编码到您可能需要它的每个块中.

这种模式是否可能是编写多线程访问器的推荐方法?

是否有为此目的创建调度队列的标准方法?换句话说,用于权衡粒度的最佳实践?例如,使用锁定,锁定每个属性比锁定整个对象更精细.使用调度队列,我可以想象为所有对象创建单个队列会产生性能瓶颈,因此每个对象队列是否合适?显然,答案很大程度上取决于具体的应用,但是有一些已知的性能权衡来帮助衡量该方法的可行性.

任何信息/见解将不胜感激.

multithreading locking objective-c grand-central-dispatch

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

在运行时将Objective-C方法添加到类中

我试图在旧系统上支持10.9中新添加的NSColor方法.10.9之前我在一个类别中有这些允许我统一Mac和iOS之间的代码.现在10.9有这些方法,无论我在哪里使用它,我都会得到奇怪的绘图.我想动态地将这些方法添加到较旧的运行时,并且我已经找到了几个使用class_addMethod来完成它的参考.问题是,即使addMethod返回成功,也不会调用这些方法.

NSColor *
fColorWithWhite(id self, SEL _cmd, float white, float alpha) {
    return [NSColor colorWithDeviceWhite: white
                                   alpha: alpha];
}

NSColor *
fColorWithRedGreenBlue(id self, SEL _cmd, float red, float green, float blue, float alpha) {
    return [NSColor colorWithDeviceRed: red
                                 green: green
                                  blue: blue
                                 alpha: alpha];
}

+ (void)addLegacySupport {
    Class class = NSClassFromString(@"NSColor");

    BOOL success = class_addMethod(class, @selector(colorWithWhite:alpha:), (IMP)fColorWithWhite, "@@:ff");
    NSLog(@"colorWithWhite:alpha: - %i", success);

    success = class_addMethod(class, @selector(colorWithRed:green:blue:alpha:), (IMP)fColorWithRedGreenBlue, "@@:ffff");
    NSLog(@"colorWithRed:green:blue:alpha: - %i", success);
}
Run Code Online (Sandbox Code Playgroud)

任何指针都将非常感激.

objective-c

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

处于 Xcode 断点时没有键盘响应 (Mac)

我刚刚遇到了一个非常奇怪的场景,在其他地方找不到任何相关信息。当 Xcode 在我的断点处中断时,整个系统的所有键盘输入都没有响应。我可以切换到另一个应用程序,但没有记录任何击键。Xcode 本身对键盘输入没有响应。

还有其他人看过这个吗?

我正在运行 10.10.1 和 Xcode 6.1。

macos xcode breakpoints

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

同一证书文件中的多个APNS证书

我一直在寻找答案,似乎无法找到它.我将PUSH通知发送到我的应用程序的多种风格.我之前已将其设置为遍历每个证书并将其与用户应用类型进行匹配.实际上,我为每个证书创建一个新的SSL连接,然后发送该特定证书的任何通知.

转换所有这些证书并在它们到期时安装它们有点乏味.我可以将KeyChain访问中的多个证书作为单个p12文件导出并进行转换,这有助于从证书管理角度更加简单.问题在于没有收到我的PUSH通知.我可以成功连接到APNS,反馈服务没有报告任何问题,但似乎没有任何问题.这使我相信APNS正在验证文件中唯一的第一个证书,并忽略任何其他允许成功连接但可能阻止传递通知的证书.在这种情况下,我会期望连接断开或反馈服务上报告的内容,但到目前为止我都没见过.

有没有人对成功做到这一点有任何见解?谢谢.

iphone push apple-push-notifications

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

使用boundingRectWithSize包装UITextView:

我正在尝试使用以下代码动态更新UITextView的高度,但结果始终被几个像素关闭,导致文本视图换行但不适当地调整大小.输入另一个字符(或两个)后,显示屏会相应更新.

我查看了各种帖子(很多都是过时的,因为它们引用了弃用的sizeThatFits),我没有看到任何不同.那些使用boundingRectWithSize :( NSString或NSAttributedString - 我已尝试过两者)看起来如下所示:

CGRect boundingRect = [string boundingRectWithSize: CGSizeMake(CGRectGetWidth(textView.frame), CGFLOAT_MAX)
                                           options: NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
                                        attributes: @{
                                                      NSFontAttributeName : textView.font
                                                      }
                                           context: NULL];
float h = ceil(CGRectGetHeight(boundingRect));

textViewHeightLayoutConstraint.constant = h;
Run Code Online (Sandbox Code Playgroud)

我知道你要说的第一件事是:内插.这是我的设置代码:

textView.textContainerInset = UIEdgeInsetsZero;
textView.contentInset = UIEdgeInsetsZero;
textView.layoutMargins = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)

还有其他插图设置吗?

旁注:我正在使用MuseoSans作为字体.

黑客解决方案

我通过检查宽度是否在一个阈值(当前是测试的9px)之内"修复"了这个问题,如果是,假装添加了一条额外的行,如下所示:

float fontHeight = ceil([@"lp" sizeWithAttributes: @{
                                                     NSFontAttributeName : textView.font
                                                    }].height);


if ((CGRectGetWidth(textView.frame) - ceil(CGRectGetWidth(boundingRect))) <= 9.f)
     h += fontHeight;
Run Code Online (Sandbox Code Playgroud)

上面允许我捕捉最大可能的高度,然后在我的文本视图上强制它的高度.文本视图确实适当地换行并在下一行显示文本.

想法?

小更新

添加此项无效:

NSMutableParagraphStyle *paragraphStyle = [NSParagraphStyle.defaultParagraphStyle mutableCopy];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;

CGRect boundingRect = …
Run Code Online (Sandbox Code Playgroud)

uitextview ios autolayout

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

NSHashTable计数错误报告非空

我正在使用弱对象NSHashTable报告计数为1,即使它是空的.以下是lldb输出显示我的情况.

p [__operationWaitList count]
(NSUInteger) $4 = 1

p [__operationWaitList.allObjects count]
(NSUInteger) $7 = 0
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是count计算存储在NSHashTable中的弱引用的数量,而不是有效对象的数量.通过调用allObjects然而,我正在取消引用没有有效对象的指针,因此生成的对象数组为空.

我想确认这一点,因为文档在这一点上有点缺乏.

macos cocoa objective-c ios nshashtable

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

iOS App崩溃/ Xcode显示没有回溯(已暂停)

我正在尝试调试崩溃(可能与内存有关),但每当应用程序在iPad设备上进行调试时崩溃Xcode(4.2)显示Paused没有任何线程(GDB)的回溯.切换到LLDB提供更少 - 应用程序崩溃,控制台显示任何内容,Xcode结束调试.

崩溃仅在激烈使用后发生,并且可能与内存不足有关.

我找不到任何与坠机相关的信息.有人遇到过这种行为吗?

ios xcode4.2

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

钥匙串服务安全说明

Keychain Services API的文档有点不尽如人意.我似乎无法找到的一件事是访问安全备注的详细信息,Keychain Access应用程序允许您添加和编辑.

任何见解都会非常感激.谢谢.

macos cocoa keychain

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