Tôi có một lớp học loại NSString
(NSString+URLEncoding.h
). Tôi đang gặp phải sự cố chọn bộ chọn không xác định, bởi vì chuỗi tôi đang gọi phương thức danh mục đã được tối ưu hóa thành một NSCFConstantString
bởi iOS.iOS 5: Tạo danh mục NSString bao gồm NSCFConstantString?
-[__NSCFConstantString URLEncodedString]: unrecognized selector sent to instance 0x290174
Tôi đã học được của NSCFConstantString
vs NSCFString
tối ưu hóa trong iOS 5 từ: http://www.cocoanetics.com/2012/03/beware-of-nsstring-optimizations/
Có ai biết làm thế nào tôi có thể nhận được các loại NSString để bao gồm các chuỗi liên tục hoặc thậm chí buộc các var là an NSString/NSCFString
và không phải là NSCFConstantString
?
Chúc mừng, Z
-edit-
- Linker cờ
-ObjC -all_load
đều đã thực hiện - NSString + URLEncoding.m được bao gồm trong các chỉ tiêu biên dịch nguồn
- NSString + URLEncoding. m thực hiện phương thức URLEncodedString.
- Đã kiểm tra zombie.
Tôi thêm một dịch vụ chia sẻ để ShareKit 2.0
tiêu đề:
@interface NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString;
thực hiện:
@implementation NSString (OAURLEncodingAdditions)
- (NSString *)URLEncodedString
{
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("!*'();:@&=+$,/?%#[]"),
kCFStringEncodingUTF8);
[result autorelease];
return result;
}
có được giải quyết không? nếu không phải như vậy, sau đó tôi có thể cố gắng giải quyết nó nếu bạn cần? –
Điều '__NSCFConstantString' trong blog bạn đã liên kết là cá trích đỏ.Vấn đề trong blog không liên quan gì đến việc phân lớp và mọi thứ cần làm với thực tế là Apple cố gắng tối ưu hóa tất cả các chuỗi rỗng thành một đối tượng. Nếu một đối tượng đại diện cho một chuỗi rỗng là một 'NSString' đơn giản thì mã của blog sẽ vẫn bị hỏng. – JeremyP