Post

Replies

Boosts

Views

Activity

NSMutableDictionary removeAllObjects does not free up used memory!
I have a custom Objective-C ObjectCache class that utilized NSMutableDictionary to store named objects (specifically large NSImage objects). The class has a maxItems property and clear method, which worked fine. - (void)clear { @synchronized(_cache) { [_cache removeAllObjects]; } } But yesterday I received a customer feedback complaining one of my app consumes up to 24GB memory. I verified that on my M1 Mac mini, and it's true. Even after calling clear method, memory usage shown in both Xcode debugger panel and Activity Monitor remains the same. It did work before. Once I close a picture gallery window by calling clear method, memory usage dropped immediately as shown in Activity Monitor. I suspect that this is a bug in ARM architecture. Does anyone else have same problem?
1
0
915
Mar ’24
Memory leak with [NSMutableData appendData:]
Instruments reveals that the following simple code leaks memory on each delegate invoke: - (void)start { [_urlSession dataTaskWithURL:_url]; } - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { [_data appendData:data]; } I don't have any clue on this leak, it should not happen. What should I do to avoid this?
2
0
979
May ’24
Cannot get NSTimer working in another thread
I need to create timers in another thread (not on main): @implementation AppDelegate { NSThread* _worker; } - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { _worker = [[NSThread alloc] initWithTarget:self selector:@selector(main) object:nil]; [_worker start]; } - (void)main { [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer_tick:) userInfo:nil repeats:YES]; [NSThread sleepForTimeInterval:INFINITY]; NSLog(@"**********************"); } - (void)timer_tick:(NSTimer*)timer { NSLog(@"%@", NSThread.currentThread); } The timer never gets fired. What's wrong with my code?
2
0
832
May ’24
Need Objective-C translation of DispatchSource.makeFileSystemObjectSource
I came across a useful repo on GitHub: https://github.com/GianniCarlo/DirectoryWatcher/blob/master/Sources/DirectoryWatcher/DirectoryWatcher.swift self.queue = DispatchQueue.global() self.source = DispatchSource.makeFileSystemObjectSource(fileDescriptor: descriptor, eventMask: .write, queue: self.queue) self.source?.setEventHandler { [weak self] in self?.directoryDidChange() } self.source?.setCancelHandler() { close(descriptor) } self.source?.resume() How do I translate this to OC version? I have an app that was written in OC and I plan to incorporate this directory watcher into the project.
2
0
1k
Jul ’24
self.window.isVisible = NO not working in windowDidLoad
The following code won't work: - (void)windowDidLoad { [super windowDidLoad]; self.window.isVisible = NO; } The only main window still shows on application startup (in a minimal newly created app). One of my published apps in App Store relies on this behavior which had been working for many years since I started Xcode development.
Topic: UI Frameworks SubTopic: AppKit
11
0
229
Apr ’25
NSMutableDictionary removeAllObjects does not free up used memory!
I have a custom Objective-C ObjectCache class that utilized NSMutableDictionary to store named objects (specifically large NSImage objects). The class has a maxItems property and clear method, which worked fine. - (void)clear { @synchronized(_cache) { [_cache removeAllObjects]; } } But yesterday I received a customer feedback complaining one of my app consumes up to 24GB memory. I verified that on my M1 Mac mini, and it's true. Even after calling clear method, memory usage shown in both Xcode debugger panel and Activity Monitor remains the same. It did work before. Once I close a picture gallery window by calling clear method, memory usage dropped immediately as shown in Activity Monitor. I suspect that this is a bug in ARM architecture. Does anyone else have same problem?
Replies
1
Boosts
0
Views
915
Activity
Mar ’24
What's the unit in NSView coordinate system
What unit does NSView.bounds/frame use? Pixel or point? How to convert between them?
Replies
4
Boosts
0
Views
1.3k
Activity
Mar ’24
Where can I found a list of codes for NSEvent.keyCode
According to the doc: The value returned is the same as the value returned in the kEventParamKeyCode when using Carbon Events. So where can I find kEventParamKeyCode?
Replies
2
Boosts
0
Views
1.2k
Activity
Feb ’25
How keep NSWindow always on top other windows?
Is there any way to keep an NSWindow always on top of other windows (inside an app)? I want to create a "preview" window for pictures and videos with it not taking up space in the main window.
Replies
2
Boosts
0
Views
1.5k
Activity
Mar ’24
Memory leak with [NSMutableData appendData:]
Instruments reveals that the following simple code leaks memory on each delegate invoke: - (void)start { [_urlSession dataTaskWithURL:_url]; } - (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { [_data appendData:data]; } I don't have any clue on this leak, it should not happen. What should I do to avoid this?
Replies
2
Boosts
0
Views
979
Activity
May ’24
Cannot get NSTimer working in another thread
I need to create timers in another thread (not on main): @implementation AppDelegate { NSThread* _worker; } - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { _worker = [[NSThread alloc] initWithTarget:self selector:@selector(main) object:nil]; [_worker start]; } - (void)main { [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timer_tick:) userInfo:nil repeats:YES]; [NSThread sleepForTimeInterval:INFINITY]; NSLog(@"**********************"); } - (void)timer_tick:(NSTimer*)timer { NSLog(@"%@", NSThread.currentThread); } The timer never gets fired. What's wrong with my code?
Replies
2
Boosts
0
Views
832
Activity
May ’24
Unit test /tmp path question
In XCTestCase, I write data to a file "/tmp/somefile", but the file does not exist in /tmp when I do ls in Terminal. Where is the file actually created?
Replies
2
Boosts
0
Views
920
Activity
Jun ’24
How round an NSDate to midnight (00:00) of the day?
NSDate* now = [NSDate date]; // How get midnight time of now?
Replies
2
Boosts
0
Views
839
Activity
Jun ’24
How reset assistant editor position?
I don't know when/why my assistant editor opened on bottom. I don't have any idea how to get it back to its original position (on right side). It's annoying.
Replies
2
Boosts
0
Views
811
Activity
Jul ’24
Difference between private and fileprivate?
It seems I can declare variables like below in a source file: private let var1 = 1234 fileprivate let var2 = "abcd" class MyClass { // ... } So what's the difference between the 2 vars here?
Replies
2
Boosts
0
Views
1.3k
Activity
Jul ’24
How remove garbage items in Info section of a target?
I can't believe this. I am not able to remove the following garbage items: Right clicking does not provide any menu items to remove the garbage items.
Replies
1
Boosts
0
Views
550
Activity
Jul ’24
Need Objective-C translation of DispatchSource.makeFileSystemObjectSource
I came across a useful repo on GitHub: https://github.com/GianniCarlo/DirectoryWatcher/blob/master/Sources/DirectoryWatcher/DirectoryWatcher.swift self.queue = DispatchQueue.global() self.source = DispatchSource.makeFileSystemObjectSource(fileDescriptor: descriptor, eventMask: .write, queue: self.queue) self.source?.setEventHandler { [weak self] in self?.directoryDidChange() } self.source?.setCancelHandler() { close(descriptor) } self.source?.resume() How do I translate this to OC version? I have an app that was written in OC and I plan to incorporate this directory watcher into the project.
Replies
2
Boosts
0
Views
1k
Activity
Jul ’24
Is it safe to put NSObject pointers into a plain C array?
I want to implement a stack that works quite like a circular buffer. void** pp = malloc(sizeof(id) * 100); pp[index] = someObject; // later on somewhere: MyObject* myObj = (MyObject*)pp[index]; Is this correct? Does this approach work with ARC?
Replies
1
Boosts
0
Views
715
Activity
Aug ’24
self.window.isVisible = NO not working in windowDidLoad
The following code won't work: - (void)windowDidLoad { [super windowDidLoad]; self.window.isVisible = NO; } The only main window still shows on application startup (in a minimal newly created app). One of my published apps in App Store relies on this behavior which had been working for many years since I started Xcode development.
Topic: UI Frameworks SubTopic: AppKit
Replies
11
Boosts
0
Views
229
Activity
Apr ’25
App upload warnings (never seen before)
I don't get any idea why I am getting the following warnings when I tried to upload one of my apps:
Replies
3
Boosts
0
Views
169
Activity
Apr ’25