2011-12-13 23 views
8

Trong từ điển tên dict cặp giá trị chính là:Làm thế nào để lấy đối tượng cho khóa từ NSDictionary?

"alba \ cửa sổ U2019s" = "Một mô hình trong westindies.";

Và gửi objectForKey: Tôi nhận được chuỗi như "cửa sổ alba". Khi tôi gửi như sau:

[dict objectForKey: alba's window];

Tôi không nhận được gì, nó đang hiển thị không có giá trị.

+2

gì nếu bạn làm '[dict objectForKey: @ "cửa sổ alba của"];' hoặc ' [dict objectForKey: @ "cửa sổ alba \ U2019s"]; '? – Cyrille

Trả lời

16

Để bắt đầu, bạn có thể muốn làm điều đó một chuỗi thực tế, như vậy:

[dict objectForKey:@"alba's window"]; 

Cũng lưu ý rằng \U2019 không phải là '; nhưng , đó là một nhân vật hoàn toàn khác.

Và nói chung, việc gắn bó với [a-zA-Z0-9]+ cho các khóa từ điển có thể là một ý tưởng hay, trừ khi bạn đang chèn và truy xuất theo chương trình bằng cách sử dụng cùng một chuỗi chính xác làm khóa.

+0

tôi đang sử dụng duy nhất đó.it đang hiển thị khác biệt ở đây.cho tôi biết điều đó chỉ. – Univer

+4

Tôi không thể hiểu những gì bạn đang đề cập đến, hoặc thực sự những gì bạn đang cố gắng nói. Cho đến khi tôi làm, tôi không thể giúp bạn, thật không may. –

+0

tôi nhận được giải pháp 'sẽ không hỗ trợ trong mac vì vậy tôi thay thế bằng' sau đó nó hoạt động tốt – Univer

2

Đảm bảo rằng dict của bạn không phải là rỗng; gửi một tin nhắn đến một đối tượng null sẽ âm thầm thất bại và trả lại null.

Một cách khác để kiểm tra khóa/giá trị của bạn chỉ đơn giản là NSLog(@"%@",dict); và điều này sẽ hiển thị cho bạn nội dung của từ điển. Lưu ý rằng đầu ra này chỉ hiển thị các dấu ngoặc kép xung quanh các giá trị khi giá trị chứa khoảng trắng.

Ngoài ra, hãy đảm bảo bạn đang sử dụng cùng một cặp dây làm khóa - có vẻ như bạn đang sử dụng "alba\U2019s window" ngoài "alba's window".

5

Kể từ iOS6 trở đi, một phương pháp thuận tiện cho việc thiết lập và truy cập vào đối tượng cho một chìa khóa từ một NSDictionary là:

//Setting the object in NSMutableDictionary 
dictionary[@"someKey"] = @"someString"; 

//Accessing the object 
NSString *str = dictionary[@"someKey"]; 
Các vấn đề liên quan