2010-11-01 12 views
1

我試圖寫在一個NSDataALAsset並以某種方式與下面的代碼不工作上來。我想知道的是,代碼是否與此類似?還是有另一種方式呢?我如何寫ALAsset在NSData的

NSData *data = [[NSData alloc] initWithContentsOfFile:@"assets-library://asset/asset.MOV? id=100000009&ext=MOV" ]; 
+0

你正在傳遞一個URL字符串到一個需要文件路徑的方法中。你嘗試'initWithContentsOfURL'並且傳遞NSURL嗎? – 2010-11-01 13:59:48

+1

@「assets-library:// ...」的'initWithContentsOfURL'將不起作用 - 它實際上會崩潰。請參閱http://stackoverflow.com/questions/5047643/getting-the-path-of-an-alasset以獲得更好的答案。 – natbro 2012-01-28 20:17:27

回答

2

ALAsset的defaultRepresentation有一個getBytes:fromOffset:length:error:方法。使用它。

0

「?」之間有空格和「id = ..」是這個問題嗎?

調試這種方法的最佳方法是先嚐試打開該文件的名稱(或者創建一個NSURL並使用Max建議的initWithContentsOfURL),然後運行調試器,檢查是否成功。現在你正在同時調試幾件事情,打破這個複合語句並找出可能出錯的地方