原创 iOS Objective-c 獲得用戶通訊錄權限,並上傳服務器指南

1. 導包 #import <AddressBook/AddressBook.h> Privacy - Contacts Usage Description 2.獲取通訊錄 ///獲取通訊錄 ABAddressBookRef

原创 ios Objective-c 字符串操作:給出一個字符串,判斷一個數組內所有滿足條件的字符串集合

和UISeachBar 配合使用 進行搜索查詢 ///包含自定字符串的字符串列表 +(NSArray *) array:(NSArray *)array containStr:(NSString *)str {

原创 ios Objective-c 自己動手封裝輪播圖

具體使用:XMRotationChartView 極簡版實現 XMQueue.h->XMQueue 1.定義接口XMRotationChartView並實現 #import <UIKit/UIKit.h> @interface

原创 ios Objective-c Multiple commands produce 報錯解決辦法

google翻譯 然後copy錯誤信息,讓谷歌翻譯一下 上邊提示的文件名就是多餘的文件 這種錯誤一般出現在導入第三方庫的時候,plist文件和咱們的重複編譯了,這時候需要把他們的plist文件刪掉

原创 ios Objective-c 獲取省市區工具

使用方法:通過父節點獲取所有下一級子節點.沒有的話sonNode返回nil ShengShiQuModel * zhongGuo = [XMUtils getShengShiQu]; NSLog(@"%@",z

原创 ios Objective-c 字符串操作 給出一個字符串集合返回首字母映射表

可以用來給UITableView做首字母分類 然後做右側字母導航 ///通過字符串列表,進行分類返回首字母對應字典 + (NSDictionary *)getMapByShouZiMu:(NSArray*)oldStringLis

原创 ios Objective-c 導入AliyunOSSSDK

阿里雲oss下載地址 1.通過xcode打開下載下來的aliyun-oss-ios-sdk-master ,選中AliyunOSSSDK iOS, 在build Phases處點➕創建run script shell處 輸入/bi

原创 iOS Objective-c 左右滑動切換頁面

ScrollView + n個view 1.storyboard佈局一個ScrollView 2.拖出兩個輸出口,定義三個屬性 @property (weak, nonatomic) IBOutlet UIScrollView

原创 ios xcode 報錯 'NSInvalidArgumentException', reason: NSConcreteMutableAttributedString 解決辦法

報錯截圖: 解決辦法: 查看以下代碼: 我這裏原因是創建font的時候使用了沒有的字體. 換成 PingFang HK 就可以了 注意:如果是swift的話,會報歸檔錯誤,log輸出不會這麼明顯。因爲swift要打包成oc執行

原创 ios Objective-c 簡易隊列實現

滿足一些特殊需求 接口部分(隊列支持需求) #import <Foundation/Foundation.h> @interface XMQueue : NSObject ///隊列追加 - (void)add:(id) ob

原创 ios Swift 相比較 Objective-C 的優勢

1. Class = .h+.m 所有內容 class ViewController: UIViewController { override func viewDidLoad() {

原创 ios Message from debugger: Terminated due to memory issue 錯誤解決

報錯原因:內存不足,通常是一個vc中產生了大量的對象,沒有及時釋放導致的 解決思路: 1:減少全局變量的使用,變量的聲明只要出了作用域,一般都會自動釋放,但全局變量因爲類持有變量,所以就算不使用也不會得到內存管理機制的釋放. 2.

原创 ios Objective-c 打斷點

打斷點方式,鼠標單擊行數,出現藍色標籤就打斷點成功了 先運行程序,執行到斷點位置(斷點行出現這個標誌就意味着打斷點成功了) 獲得變量值方式,在這裏右擊鼠標,點擊add Expression…選項 在這裏輸入變量名,回車就能輸

原创 ios Objective-c 動態代理

代理原理(自己的見解,下面的看不懂的讀一讀這三句話,再看) 拿到代理自己的類的引用, 並讓它實現自己要調用的方法, 通過這個類的引用去調用被它實現的方法(編譯器自己執行方法選擇器) 代理聲明格式 @protocol TestDel

原创 ios Objective-c 監聽

創建一個監聽 /// 監聽類(需要在監聽類實現監聽方法) 監聽的對象 監聽配置 [self addObserver:self forKeyPath:@"isBeginScroll" options:NSKeyValueOb