Bereiche
News
Rewind
Tipps & Berichte
Forum
Galerie
Journals
Events
Umfragen
Themenwoche
Kleinanzeigen
Interaktiv
Anmelden
Registrierung
Zu allen empfangenen Nachrichten
Suche...
Zur erweiterten Suche
Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum
>
Entwickler
>
@selector Problem
@selector Problem
Slartibartfast
11.09.12
09:44
Ich bekomme in Xcode bei folgendem Code die Warnung "PerformSelector may cause a leak because its selector is unknown". Der Code funktioniert aber einwandfrei.
Ist zwar nur eine Warnung, ich möchte sie aber trotzdem gern weghaben
- (void) fileSaveAsDialog:(SEL)selector
{
NSString *file = @"Untitled.cry";
NSURL *folder = [NSURL fileURLWithPath:defaultFolder];
NSSavePanel *savePanel = [NSSavePanel savePanel];
[savePanel setDirectoryURL:folder];
[savePanel setNameFieldStringValue:file];
[savePanel setCanCreateDirectories:TRUE];
[savePanel setAllowedFileTypes:[NSArray arrayWithObjects:@"cry", nil]];
void (^fileSaveAsDialogHandler)(NSInteger) = ^(NSInteger result)
{
if (result == NSFileHandlingPanelOKButton)
{
// retrieve filename
fileName = [savePanel URL];
[savePanel close];
// encrypt and save
BOOL result = [self saveFile:fileName];
if ((selector != nil) && result) [self performSelector: selector]; // WARNUNG !!!!
};
};
[savePanel beginSheetModalForWindow:window completionHandler:fileSaveAsDialogHandler];
}
Aufruf obiger Methode:
[self fileSaveAsDialog:@selector(setNewDocument)];
Ziel-Methode:
- (void) setNewDocument
{
[window setDocumentEdited:NO];
[textView setString:@""];
[textView setNeedsDisplay:(YES)];
fileName = nil;
NSLog(@"New document");
}
Hilfreich?
0
Kommentare
PaulMuadDib
11.09.12
10:26
Ich würde sagen, daß liegt am Block-Statement. Was soll das an dieser Stelle machen? Bin leider schon zu lange raus, um das jetzt genau wissen. Früher(tm) hat man das jedenfalls nicht so gemacht.
Hilfreich?
0
Urkman
11.09.12
10:43
Top Find by google:
Hilfreich?
0
Slartibartfast
11.09.12
11:06
@PaulMuadDib
Block = Eventhandler für NSSavePanel
@Urkman
Danke, genau das habe ich gesucht!
Hilfreich?
0
void
11.09.12
18:45
Wenn du die Warnung weg haben willst, übergib eine NSInvocation. Ist allerdings mehr Aufwand.
„Developer of the Day 11. Februar 2013“
Hilfreich?
0
Slartibartfast
12.09.12
09:13
@void: Danke, hab ich letztendlich auch so gemacht.
Hilfreich?
0
Kommentieren
Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.
iPhone SE 4: Dummy-Modelle zeigen das Design
Leak in macOS 15.2 Sequoia: Neues MacBook Air k...
iPod-Vater Tony Fadell wollte Sonos kaufen – St...
iOS 18.3 mit Hinweisen auf neue Apple-Hardware
Verwunderung über Upgrade-Preise: Zwei Mac Mini...
Mac mini M4
Vor 18 Jahren: iPhone, Apple TV und "Apple Inc."
Kurz: Trump unterstützt Musk als TikTok-Besitze...