2011-11-14 28 views
10

Cố gắng chuyển đổi chuỗi thành NSURL và điều này không xảy ra.NSString đến NSURL?

barcodeTextLabel.text = foundCode.barcodeString; 
urlToGrab = [NSString stringWithFormat:@"%@", foundCode.barcodeString]; // foundCode.barcodeString is an NSString 

urlToGrab cho thấy sau "lỗi CFStringRef không hợp lệ"

+0

CAn u cung cấp mã ur với một số chi tiết khác như urlToGrab thuộc loại Wat của DataType –

+2

Làm thế nào để bạn mong đợi nhận được NSURL từ '+ stringWithFormat: 'phương pháp? – Caleb

Trả lời

35

này là làm thế nào bạn tạo một NSURL từ một NSString:

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
+1

NSURL là một đối tượng, vì vậy bạn đang thiếu *. Url NSURL * – jomafer

+2

cảm ơn, đã khắc phục sự cố – Dimme

0

Nếu foundCode.barcodeString là chuỗi bạn muốn như URL của bạn, sau đó (như câu trả lời ở trên) sử dụng phương thức lớp học NSURLURLWithString:(NSString *).

Mã của bạn sẽ giống như thế:

NSURL urlToGrab = [NSURL URLWithString:foundCode.barcodeString]; 

đâu lỗi của bạn đi vào để chơi? Cách mã của bạn là, urlToGrab là một thể hiện của NSString. Tôi sẽ tưởng tượng bạn sẽ nhận được một lỗi như bạn mô tả nếu bạn đã cố gắng thực hiện một yêu cầu HTTP trên NSString thay vì NSURL.

0

Bạn có thể sử dụng sau để tạo đường dẫn tệp tới url.

NSURL *yourURL = [NSURL fileURLWithPath:@"/Users/xyz/Desktop/abc.sqlite"]; 
-1

Câu trả lời của câu trả lời của Swapnali hoạt động, nhưng tôi sẽ thêm giải thích.

Bạn sẽ nhận được nil nếu định dạng NSString không phù hợp với tiêu chí tệp cho NSURL (file:///xxx/file.ext).

Nhu cầu của tôi là tải hình ảnh JPG qua đường dẫn tệp URL tới nsdata; NSURL * u=[[NSURL alloc] initWithString:fpath] trả lại số không, nhưng NSURL *yourURL = [NSURL fileURLWithPath:fpath] như trong câu trả lời được đề cập. URL cho các tệp sẽ là định dạng file:///users/xxx/pic.jpg và cấp quyền truy cập đĩa. NSURL * u=[[NSURL alloc] initWithString:(NSString*) ] cũng sẽ cung cấp cho đối tượng nil nếu nsstring là URL web nhưng nếu thiếu http://

Các vấn đề liên quan