Я пытался отладить эту ошибку, как в течение нескольких дней, и до сих пор не могу понять, что на самом деле происходит с моим объектом.
Код выглядит так.
- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) запрашивает навигационный тип: (UIWebViewNavigationType) navigationType {
// извлекать данные по нажатой ссылке
SongObject * Data = [[SongObject alloc] init];
[Данные сохраняются];
selectedSong = Data;
}
selectedSong - это открытая переменная в основном классе, и теперь сумасшедшая вещь в том, что использование описанного выше метода работает везде, кроме плечаStartLoadWithRequest.
Попытка отменить ее выводит меня "Out of Scope", не может ли это быть по какой-то безумной причине, что shouldStartLoadWithRequest автоматически выпускает мой объект, даже когда я говорю "нет"?
Есть идеи?
Редактировать: Это файл H и M, который выбран для хранения в формате Song.
#import <Foundation/Foundation.h>
#import "SongObject.h"
@interface SongObject : NSObject<NSCopying> {
NSString *artist;
NSString *titel;
NSString *album;
NSString *genre;
NSString *songUrl;
NSString *rating;
NSString *image;
BOOL local;
}
@property (readonly) NSString *getArtist;
@property (readonly) NSString *getTitle;
@property (readonly) NSString *getAlbum;
@property (readonly) NSString *getGenre;
@property (readonly) NSString *getSongURL;
@property (readonly) NSString *getRating;
@property (readonly) NSString *getImage;
@property (readonly) BOOL isLocal;
-(void) setInfo:(NSString *) a: (NSString*) t: (NSString*) ab: (NSString*)g: (NSString*)sU: (NSString*)r: (NSString*) i: (BOOL) loc;
@end
#import "SongObject.h"
@implementation SongObject
-(id)init
{
if(self =[super init])
{
NSLog(@"Init songobject");
}
return self;
}
-(id) copyWithZone: (NSZone *) zone {
SongObject *newSong = [[SongObject allocWithZone:zone] init];
NSLog(@"_copy: %@", [newSong self]);
[newSong setInfo:[self getArtist] :[self getTitle] :[self getAlbum] :[self getGenre] :[self getSongURL] :[self getRating] :[self getImage] :[self isLocal]];
return(newSong);
}
-(void)dealloc
{
NSLog(@"Songobject deallocted from memory...");
[super dealloc];
}
-(void) setInfo:(NSString *) a: (NSString*) t: (NSString*) ab: (NSString*)g: (NSString*)sU: (NSString*)r: (NSString*) i: (BOOL) loc{
artist = a;
titel = t;
album = ab;
genre = g;
songUrl = sU;
rating = r;
image = i;
local = loc;
}
-(NSString*)getArtist
{
return artist;
}
-(NSString*)getTitle
{
return titel;
}
-(NSString*)getAlbum
{
return album;
}
-(NSString*)getGenre
{
return genre;
}
-(NSString*)getSongURL
{
return songUrl;
}
-(NSString*)getRating
{
return rating;
}
-(NSString*)getImage
{
return image;
}
-(BOOL)isLocal{
return local;
}
@end