我正在使用CFSTR函数从常量c字符串创建CFString,我在我的守护进程中经常调用此函数.
来自文档:
CFSTR返回的值具有以下语义:
我应该使用保留和释放吗?
我想开发Mac应用程序,但不想使用XCode.我有很多理由......
我知道这是可能的,因为我看过一些用gcc编译的脚本.有没有教程?有什么提示吗?我知道如何运行它,但我只需要帮助学习如何在没有XCode为我编写代码的情况下使用它.这是一个好计划,还是注定要失败?
我在子类中使用强大IBOutlet的自定义但是在切换视图控制器后我在10.11上崩溃了.在10.8,10.9和10.10上一切正常.我正在使用ARC.PDFViewNSViewController
self.activeRootViewController = controller;
self.backgroundWindow.contentView = controller.view;
@property (strong) IBOutlet MYPDFView* pdfView; // property inside NSViewController subclass.
Run Code Online (Sandbox Code Playgroud)
MYPDFView对象0x10ac1bc50在已经解除分配时被过度释放; 打破objc_overrelease_during_dealloc_error进行调试
我已添加断点objc_overrelease_during_dealloc_error但无法解决此问题.
有人可以帮帮我吗?
dealloc 方法MYPDFView只被调用一次.
来自lldb的Backtrace:
objc[23395]: MYPDFView object 0x10ac1bc50 overreleased while already deallocating; break on objc_overrelease_during_dealloc_error to debug
Process 23395 stopped
* thread #1: tid = 0x11b04b, 0x00007fff926bcb1c libobjc.A.dylib`objc_overrelease_during_dealloc_error, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 2.1
frame #0: 0x00007fff926bcb1c libobjc.A.dylib`objc_overrelease_during_dealloc_error
libobjc.A.dylib`objc_overrelease_during_dealloc_error:
-> 0x7fff926bcb1c <+0>: retq
0x7fff926bcb1d <+1>: nop
libobjc.A.dylib`objc_object::sidetable_lock:
0x7fff926bcb1e <+0>: movl %edi, …Run Code Online (Sandbox Code Playgroud) 有没有办法让资源分叉不可复制?特别是我通过NSWorkspace通过NSWorkspace设置一个特定目录中包含的文件的自定义徽章图标– setIcon:forFile:options:,我希望这些徽章一旦被复制到文件夹之外就会丢失.
我正在努力解决一个非常简单的问题,我有几个NSTextField(我现在不能使用NSTextView),我需要更改显示文本的行间距.我该怎么做才能减少行高或行间距?缩小字体大小不是一种选择.
任何帮助将非常感激!
周末愉快,
!)
检查实例NSDecimalNumber是否为整数是最简单的方法是什么?
谢谢!
我正在使用弱对象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然而,我正在取消引用没有有效对象的指针,因此生成的对象数组为空.
我想确认这一点,因为文档在这一点上有点缺乏.
我使用下面的代码在运行时检查OS X版本.
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_10)
{
/* On a 10.10.x or earlier system */
}
Run Code Online (Sandbox Code Playgroud)
但是这个条件在10.10.4 OS X上返回false.我正在使用Xcode 6.3.2.
根据适用于OS X v10.11的AppKit发行说明,它应该可以工作.
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_9) {
/* On a 10.9.x or earlier system */
} else if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_10) {
/* On a 10.10 - 10.10.x system */
} else {
/* 10.11 or later system */
}
Run Code Online (Sandbox Code Playgroud) 我们可以在源代码中创建协议对象但是使用正式的Protocol对象是什么?
Protocol *myObj = @protocol(protocolName);
Run Code Online (Sandbox Code Playgroud) 我有一个无限循环驱动我的工作线程.
-(void) myThread
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
while(![myThread isCancelled])
{
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:600]];
}
[pool release];
}
Run Code Online (Sandbox Code Playgroud)
但有时候这些线程占用了很多CPU(50-100%)和内存(1.5GB).当我在这种状态下对应用程序进行采样时,我得到了以下跟踪
453 +[NSDate dateWithTimeIntervalSinceNow:]
309 -[__NSPlaceholderDate initWithTimeIntervalSinceReferenceDate:]
295 CFDateCreate
268 _CFRuntimeCreateInstance
115 malloc_zone_malloc
64 __spin_lock
64 __spin_lock
43 szone_malloc
22 tiny_malloc_from_free_list
22 tiny_malloc_from_free_list
19 szone_malloc
2 spin_unlock
2 spin_unlock
4 malloc_zone_malloc
3 dyld_stub__spin_unlock
3 dyld_stub__spin_unlock
1 dyld_stub__spin_lock
1 dyld_stub__spin_lock
99 __bzero
99 __bzero
29 malloc_size
23 szone_size
23 szone_size
6 malloc_size
13 CFAllocatorAllocate
13 CFAllocatorAllocate
12 _CFRuntimeCreateInstance
20 CFDateCreate
4 CFDateGetTypeID …Run Code Online (Sandbox Code Playgroud) objective-c ×10
cocoa ×7
ios ×4
macos ×3
iphone ×2
cfrunloop ×1
gcc ×1
icons ×1
ide ×1
macos-carbon ×1
nshashtable ×1
nsrunloop ×1
nstextfield ×1
nsworkspace ×1