2014-02-26 49 views
0

我創建了ViewController.Here兩個按鈕正在創建釋放NSObject的&。對象創建和發佈不起作用?

// This Button for creating & assign the values to the NSObject. 
- (IBAction)CreateObjectBtn:(id)sender 
{ 
    [cpFileObject methodForRetain]; 
    // Here the tempFilePath = [[NSBundle mainBundle]pathForResource:@"Innum_Enna_Thozha-VmusiQ.Com" ofType:@"mp3"]; 
    cpFileObject.fileData =[NSData dataWithContentsOfFile:tempFilePath]; 
    cpFileObject.filePath = tempFilePath; 
} 

// This Button for **release** the NSObject from memory Pool. 
- (IBAction)releaseObjectBtn:(id)sender 
{ 
    [cpFileObject methodForRelease];  
} 

NSObject Name - CPFile。

// This Instance Method for **Increase** the allocation of NSObject. 
-(void)methodForRetain 
{ 
    if (!fileData) 
    { 
     [fileData retain]; 
    }  
} 

// This Instance Method for **Decrease** the allocation of NSObject. 
- (void)methodForRelease 
{ 
    [fileData release]; 
    NSLog(@"%lu Object released ",(unsigned long)self.retainCount);  
} 

問題發生在創建&釋放工作只有兩三次。之後如果我點擊CreateObjectBtn。錯誤顯示是這樣的。

Error code in CPFile Object

+0

你能插入你的代碼你[fileData retain]應改爲? – bsarr007

+0

雅。我可以在這裏粘貼嗎? @ bsarr007 .. –

+0

我已經粘貼了我的代碼。請驗證並讓我。 –

回答

0

如果您在

[Viewcontroller2 playBtn:]

看到你的隊列從Viewcontroller2您嘗試setFileData(設置屬性)。

enter image description here

只是嘗試登錄你的價值是什麼,你要設置和的FileData。

+0

我試過NSData正在打印..但第二次當我按playBtn:不良訪問正在出現。 –

+0

你對這個屬性設置了什麼? – Rajesh

+0

我們正在將歌曲數據設置爲該屬性@rajesh –

0
if (!fileData) 
{ 
    [fileData retain]; 
} 

沒有什麼可保留的。

您應該先創建一個對象。

if (!fileData) 
{ 
    fileData =[[NSData alloc] initWithContentsOfFile:tempFilePath]; 
} 
+0

如果我這樣做也出現了同樣的問題。 –

0

試試這個:

- (IBAction)CreateObjectBtn:(id)sender 
    { 
     cpFileObject.fileData =[NSData dataWithContentsOfFile:tempFilePath]; 
     cpFileObject.filePath = tempFilePath; 
     [cpFileObject methodForRetain]; //move it down 
    } 

    -(void)methodForRetain 
    { 
     [fileData retain]; //it doesn't matter if fileData is nil; 
    }