Nelson 寫些 iOS 開發的東東

Posts match “ Nimbus ” tag:

使用 Nimbus NIModel 的時機

| Comments

Nimbus 是個在 iOS 開發環境中,許多人使用的第三方元件,它是這麼描述自己的:

Nimbus is a toolkit for experienced iOS software designers. It provides well-documented, modular components that solve a number of common iOS software requirements.

它包含了許多元件,其中一個我最近很常用的是 NIModel,它可以讓使用者在使用 UITableView 的時候不那麼糾結。用了這一陣子之後,總結出一些心得跟大家分享。這裡不講程式碼,只分享心得,反正程式碼人人都會寫~


正確的 encode URL

| Comments

有的時候,我們需要將 URL encode,在 iOS 底下有這個函式可以使用

- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)encoding

可是這個函式 有個 bug,所以若是它不能符合你的需求,那就得自己處理啦。

如果你有使用 Nimbus 的話,在 NSString+NimbusCore.h 裡頭有個 - (NSString *)stringByAddingPercentEscapesForURLParameter 可以幫忙正確將 URL 做 UTF8 Encoding。如果你沒有用 Nimbus,那就只好自己寫一個啦,底下的程式碼是從 NSString+NimbusCore.m 複製過來的。

/**
 * Returns a string that has been escaped for use as a URL parameter.
 */
- (NSString *)stringByAddingPercentEscapesForURLParameter {
  
  CFStringRef buffer = 
  CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                          (__bridge CFStringRef)self,
                                          NULL,
                                          (__bridge CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                          kCFStringEncodingUTF8);
  
  NSString *result = [NSString stringWithString:(__bridge NSString *)buffer];
  
  CFRelease(buffer);
  
  return result;
}