我有一個ARC項目設置在Xcode。該項目我添加了一個非弧靜態庫。一切工作,並建立發現。當我運行該項目時,出現此錯誤。Xcode無法識別選擇器到執行
終止應用程序由於未捕獲的異常 'NSInvalidArgumentException' 的,原因是: ' - [__ NSCFConstantString encodedURLParameterString]:無法識別的選擇發送到實例 0x4a030':
從該代碼NSString * value = [params objectForKey:key]; [_params setObject:[value encodedURLParameterString] forKey:key];
試圖稱此爲
@implementation NSString (OAURLEncodingAdditions)
- (NSString *)encodedURLParameterString {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR(":/=,!$&'()*+;[]@#?"),
kCFStringEncodingUTF8);
return [result autorelease];
}
@end
該錯誤似乎是說它無法找到此功能。當然,它編譯得很好,我可以跳到定義就好。字符串值是一個當然從NSString繼承的字符串。這在我從中拉出來的其他項目中工作得很好。它完美地發現了這個功能,所以作爲一個Xcode新手我在我的智慧結束。
該文件包含在編譯源中。沒有任何錯誤,它編譯和運行其他代碼就好了。我似乎錯過了一小部分,我不明白它是什麼。如果你可以幫忙請做。
我沒有直接調用函數。我試圖導入這個,然後直接調用該函數,但它仍然給我同樣的錯誤。 – Kyle
檢查包含方法encodedURLParameterString的文件的名稱。假設它是「NSString + URLEncoding.m」。然後轉到發生錯誤的文件,並在頂部寫入:'#import NSString + URLEncoding.h「'然後再試一次 – Jano
這不起作用,我認爲它與使用非弧選擇器有關 – Kyle