আমি যখনই অ্যাপটি লোড করি তখনই এটি থেমে যায় যেন আমি এই লাইনে একটি ব্রেকপয়েন্ট স্থাপন করেছি:
self.audioPlayer =
[[[AVAudioPlayer alloc] initWithData:[dataPersister loadData:self.fileName]
error:&outError] autorelease];
এই লাইনের কাছাকাছি কোনও ব্রেকপয়েন্ট বা কোনও স্থান নেই। এটি কেবল তখনই ঘটে যখন আমি অ্যাপটি ডিবাগ মোডে চালিত করি এবং ব্রেকপয়েন্টের পরে কিছুই ক্রাশ হয় না। অ্যাপটি এমন কিছু কাজ করে না যেমন ঘটেছিল যখন আমি "প্রোগ্রামের বাস্তবায়ন চালিয়ে যান" ক্লিক করি।
এটি লোডডাটা পদ্ধতি, যার সাথে ডাকা হয় initWithData
:
-(NSData*)loadData:(NSString*)fileName
{
NSString *dataPath = [self.path stringByAppendingPathComponent:fileName];
dataPath = [dataPath stringByStandardizingPath];
NSData *data = [[[NSData alloc] initWithContentsOfFile:dataPath]autorelease ];
return data;
}
লোডডাটা ফাংশনটি ঠিকঠাকভাবে কাজ করছে বলে মনে হচ্ছে। অনুরোধ করা এমপি 3 ফাইলটি ব্রেকপয়েন্টের পরে কোনও সমস্যা ছাড়াই লোড করা এবং প্লে করা হয়।
আমি কি ভুল করছি তা কি আপনার কোনও ধারণা আছে?
সম্পাদনা: ব্রেকপয়েন্টে থামার সময় আমি ব্যাকট্রেস চালাতাম। এই আউটপুট ছিল:
(lldb) বিটি * থ্রেড # 1: জোয়ার = 0x1c03, 0x30df1724 libc ++ abi.dylib`__cxa_throw, কারণ বন্ধ করুন = ব্রেকপয়েন্ট 1.2 ফ্রেম # 0: 0x30df1724 libc ++ abi.dylib`__cxa_throw ফ্রেম # 1: 0x36403a24 অডিওটুলবক্স`আইডি 3 পার্সার হ্যান্ডেল :: আইডি 3 পার্সার হ্যান্ডেল (শূন্য *, দীর্ঘ (*) (শূন্য *, স্বাক্ষরযুক্ত দীর্ঘ, স্বাক্ষরবিহীন দীর্ঘ, শূন্য **, স্বাক্ষরযুক্ত লং *)) + 452 ফ্রেম # 2: 0x36403b0e অডিওটুলবক্স`আইডি 3 পার্সার ওপেন + 142 ফ্রেম # 3: 0x3635bd16 অডিওটুলবক্স` এমপিইজি অডিও ফাইলে :: পার্সেআইডি 3 ট্যাগ () + 58 ফ্রেম # 4: 0x3635b9aa অডিওটুলবক্স` এমপিইজি অডিওফিল :: পার্স অডিও ফাইল () + 26 ফ্রেম # 5: 0x3631723e অডিওটুলবক্স` অডিওফিলঅবজেক্ট :: ডওপেন উইথক্যালব্যাকস (শূন্য *, দীর্ঘ (*) (শূন্য *, দীর্ঘ দীর্ঘ, স্বাক্ষরযুক্ত দীর্ঘ, শূন্য *, স্বাক্ষরহীন দীর্ঘ *), দীর্ঘ (*) (শূন্য *, দীর্ঘ দীর্ঘ, স্বাক্ষরবিহীন দীর্ঘ) , অকার্যকর কনস্ট *, স্বাক্ষরযুক্ত দীর্ঘ *), দীর্ঘ দীর্ঘ (*) (শূন্য *), দীর্ঘ (*) (শূন্য *, দীর্ঘ দীর্ঘ)) + 166 ফ্রেম # 6: 0x36316480 অডিওটুলবক্স` অডিও ফাইলওপেন উইথক্যালব্যাকস + 612 ফ্রেম # 7: 0x31f4c1ec AVFoundation`- [AVAudioPlayer আরম্ভের সাথে: ত্রুটি:] + 120
"সমাধান": দেখা যাচ্ছে যে আমি যদি সমস্ত ব্যতিক্রমগুলির জন্য ব্যতিক্রম ব্রেকপয়েন্টটি অক্ষম করি এবং কেবলমাত্র উদ্দেশ্য-সি ব্যতিক্রমগুলির জন্য ব্রেকপয়েন্ট ব্যবহার করি তবে সমস্যাটি অদৃশ্য হয়ে যায়। তবে এটি যে সমস্যাটি সমাধান করে না যে AVAudioPlayer এর বরাদ্দ একটি সি ++ ব্যতিক্রম ছোঁড়ে।