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.
REWIND Highlights 25
FTC will gegen Apples "systematische Verbreitun...
Gibt Apple "iWork" als Marke auf? Neue Software...
iOS 26.3, macOS 26.3 sind da
Netflix gibt auf: Keine Übernahme von Warner Br...
Comeback des iMac Pro?
iOS 26.2 aktiviert (fast) selbstständig die aut...
Apple bewirbt erstmalige NATO-Zulassung von iPh...