IOS開發問題索引(九)

全系列文章索引:

IOS開發問題索引(一)

IOS開發問題索引(二)

IOS開發問題索引(三)

IOS開發問題索引(四)

IOS開發問題索引(五)

IOS開發問題索引(六)

IOS開發問題索引(七)

IOS開發問題索引(八)

IOS開發問題索引(九)


1 enum用法

http://blog.csdn.net/lvxiangan/article/details/20939379


2 去除TabBar背景圖片默認加藍效果

UIImage *selectImg = [UIImage imageNamed:@"MySettingIcon"];

//聲明這張圖片用原圖(別渲染),默認有亮藍色渲染

selectImg = [selectImg imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal];

[self.mySettingTabBarItem setSelectedImage: selectImg];


在iOS8系統下,UITabbar上的item自定義背景色和圖片問題

http://blog.sina.com.cn/s/blog_64cfe8f00102v0yn.html


3 xcode上version和build

????????CFBundleVersion,標識(發布或未發布)的內部版本號。這是一個單調增加的字符串,包括一個或多個時期分隔的整數。CFBundleShortVersionString??標識應用程序的發布版本號。該版本的版本號是三個時期分隔的整數組成的字符串。第一個整數代表重大修改的版本,如實現新的功能或重大變化的修訂。第二個整數表示的修訂,實現較突出的特點。第三個整數代表維護版本。該鍵的值不同于“CFBundleVersion”標識。


4 NSIndexSet使用

1.NSIndexSet是什么?

NSIndexSet??是個無符號整數集合。集合中的元素不可變的、不可重復。常被用來當作索引使用。就從它字面上理解,就叫做:索引集合。

2.NSIndexSet的一些常用方法。

類方法:

創建一個空的索引集合。

+ (id)indexSet

創建一個索引集合,根據索引值

+ (id)indexSetWithIndex:(NSUInteger)index

創建一個索引集合,根據一個NSRange對象

+ (id)indexSetWithIndexesInRange:(NSRange)indexRange


實例方法:

判斷索引集合中是否包含制定的索引值

- (BOOL)containsIndex:(NSUInteger)index

判斷索引集合是否包含指定的indexSet

- (BOOL)containsIndexes:(NSIndexSet*)indexSet

判斷索引集合是否包含指定的indexRange

- (BOOL)containsIndexesInRange:(NSRange)indexRange

返回索引集合包含的索引數量

- (NSUInteger)count

返回indexRange中包含的索引數量

- (NSUInteger)countOfIndexesInRange:(NSRange)indexRange

枚舉NSIndexSet;執行Block操作,在指定的Rang范圍內,并使用指定的options方法。

- (void)enumerateIndexesInRange:(NSRange)range options:(NSEnumerationOptions)opts usingBlock:(void (^)(NSUInteger idx, BOOL *stop))block

如果,要枚舉的NSIndexSet中不存在Rang中所指定的范圍,則跳過。


options參數:

enum {

???NSEnumerationConcurrent?= (1UL << 0),

???NSEnumerationReverse?= (1UL << 1),

};

typedef?NSUIntegerNSEnumerationOptions;


NSEnumerationConcurrent

枚舉過程中,各個Block是同時開始執行的。這樣枚舉的完成順序是不確定的。

NSEnumerationReverse

以反序方式枚舉。


例子:

// theTwo中是否包含theOne

????BOOL?isContains1= [theTwo?containsIndexes:theOne];

????BOOL?isContains2= [theTwo?containsIndex:1];

????BOOL?isContains3= [theTwo?containsIndex:9];

????// theTwo中是否包含指定的NSMakeRange

????BOOL?isContains4= [theTwo?containsIndexesInRange:NSMakeRange(0,5)];

????int?theCount=[theTwo?count];


//?遍歷theTwo,在指定的Range范圍內,執行Block方法,利用制定的options方式

????//?如果,theTwo中不存在Range中所指定的范圍,在theTwo中不存在,則跳過。

????[theTwo?enumerateIndexesInRange:NSMakeRange(0,8)

????????????????????????????options:NSEnumerationReverse

?????????????????????????usingBlock:^(NSUInteger?idx,?BOOL*stop) {

?????????????????????????????NSLog(@"-------%d",idx);

?????????????????????????????NSLog(@"%@",theTwo);

}];

其他的方法,都差不多,就不一一介紹了!

希望對你有所幫助!

轉自:http://blog.sina.com.cn/s/blog_7b9d64af0101b851.html


5 圖片裁剪

IOS圖片裁剪和小圖看大圖動畫

http://www.cnblogs.com/liulunet/archive/2013/01/19/2866399.html

ios中實現圖片的裁剪

http://blog.sina.com.cn/s/blog_6084f58801013n34.html

IOS學習筆記39——拍照、從相冊選圖并對圖片進行裁剪

http://blog.163.com/l1_jun/blog/static/14386388201435020135/


6 如何判斷NSDictionary是否包含某個鍵

方法一:

if([[dictionary allKeys] containsObject:key) {

? ? // contains key

}


方法二:

if([dictionary objectForKey:key]) {?

????//objectForKey will return nil if a key doesn't exists.

????// contains key

}


7 NSData與UIImage之間的轉換

//NSData轉換為UIImage

NSData *imageData = [NSData dataWithContentsOfFile: imagePath];

UIImage *image = [UIImage imageWithData: imageData];


//UIImage轉換為NSData

?NSData *imageData = UIImagePNGRepresentation(aimae);

http://www.cnblogs.com/wxy325/archive/2013/03/06/2946971.html


8 IOS9適配 error itms-90163

http://blog.csdn.net/deadrabbit2015/article/details/48655513

????Xcode升級到7后,做了iOS9適配,發布到app出現這樣的錯誤:

????????初步判斷是因為Xcode在打包的時候,把一些沒必要的包給打進去了(如果英文很厲害,那就直接自己翻譯哈),按照提示找到相應的key刪除該行即可(也有人說直接刪除對應的info.plist文件),個人覺得最好不要刪除那么徹底萬一用到就麻煩了。如上圖,我的問題是TencentOpenApi_IOS_Bundle.bundle/Info.plist搞得鬼,如果找不到位置參考下圖:

????刪除錯誤提示的key(找不到對應的Core Foundation Keys?參考https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html)

如下圖:

好了,重新上傳就應該OK了!


9 【NSArray】 排序匯總

http://blog.csdn.net/xiaoxuan415315/article/details/9198729

IOS幾種簡單有效的數組排序方法

//第一種,利用數組的sortedArrayUsingComparator調用NSComparator ,obj1obj2指的數組中的對象

NSComparator?cmptr?=?^(id?obj1,?id?obj2){

????if?([obj1?integerValue]?>?[obj2?integerValue])?{

????????return?(NSComparisonResult)NSOrderedDescending;

????}


????if?([obj1?integerValue]?<?[obj2?integerValue])?{

????????return?(NSComparisonResult)NSOrderedAscending;

????}

????return?(NSComparisonResult)NSOrderedSame;

};

NSArray?*sortArray?=?[[NSArray?alloc] initWithObjects: @"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil];

//排序前

NSMutableString?*outputBefore?=?[[NSMutableString?alloc]?init];

for (NSString?*str?in?sortArray){

????[outputBefore?appendFormat:@"];

}

NSLog(@"排序前:%@",outputBefore);

[outputBefore?release];

//第一種排序

NSArray?*array?=?[sortArray?sortedArrayUsingComparator:cmptr];

NSMutableString?*outputAfter?=?[[NSMutableString?alloc]?init];

for(NSString?*str?in?array){

????[outputAfter?appendFormat:@"];

}

NSLog(@"排序后:%@",outputAfter);

[outputAfter?release];

第二種 排序方法 利用sortedArrayUsingFunction調用 對應方法customSort,這個方法中的obj1obj2分別是指數組中的對象。

NSInteger?customSort(id?obj1,?id?obj2,void*?context){

if?([obj1?integerValue]?>?[obj2?integerValue])?{

????return?(NSComparisonResult)NSOrderedDescending;

}


if?([obj1?integerValue]?<?[obj2?integerValue])?{

????return?(NSComparisonResult)NSOrderedAscending;

}

return?(NSComparisonResult)NSOrderedSame;

}

NSArray?*sortArray?=?[[NSArray?alloc]?initWithObjects: @"1",@"3",@"4",@"7", @"8",@"2",@"6", @"5",@"13",@"15", @"12",@"20",@"28",@"",nil];

//排序前

NSMutableString?*outputBefore?=?[[NSMutableString?alloc]?init];

for(NSString?*str?in?sortArray){

????[outputBefore?appendFormat:@"];

}

NSLog(@"排序前:%@",outputBefore);

[outputBefore?release];


NSArray?*array?=?[sortArray?sortedArrayUsingFunction:customSort?context:nil];

NSMutableString?*outputAfter?=?[[NSMutableString?alloc]?init];

for(NSString?*str?in?array){

????[outputAfter?appendFormat:@"];

}

NSLog(@"排序后:%@",outputAfter);

[outputAfter?release];

第三種 利用sortUsingDescriptors調用NSSortDescriptor(簡便)

//做倒序排序

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey: @"commentEntity.addTime" ascending: YES];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1];

[_commentVMArr sortUsingDescriptors:sortDescriptors];

????排序操作,NSArray提供了很多種方法,按照所利用的排序參數,可以簡單分為descriptor,selector,function,和block排序。

????數組排序的時候有sortedArrayUsingComparator方法,這里的參數為NSComparator,這個類其實是Block所定義的typedef NSComparisonResult(^NSComparator)(id obj1,id obj2); 所以我們直接用NSComparatormyComparator=^(id obj1,id obj2){};

????Block其實可以看作JS里面的(){}();方法以及.Net中的匿名方法,即不需要聲明就直接使用的方法,主要用處包括回調、事件處理和排序。聲明和實現可以分開,也可以寫在一起:

NSInteger?(^blockExample)(int,NSString*)=^(int?i,NSString?*s)

{

????NSLog(@"%d,%@",i,s);

};

blockExample(42,@"hello");


對于NSArray排序或者其他需要Block作為參數的函數來說,可以寫成下面兩種形式:

//聲明和使用

NSComparison?(?^ageComparator?)(?id,?id?)?=?^(?id?o1,?id?o2?)?{

????//?比較函數的實現

};

NSArray*?objs_sortedByComparator?=?[objs?sortedArrayUsingComparator:ageComparator];

//?不聲明,徹底匿名使用

NSArray*?objs_sortedByComparator?=?[objs?sortedArrayUsingComparator:^(?id?o1,?id?o2?)?{?

????//...

}];


例子:

NSArray????*array?=?[NSArray?arrayWithObjects:@"71",?@"16",?@"51",?@"104",?@"13",@"2",@"1",?nil];

array?=?[array?sortedArrayUsingComparator:(NSComparator)^(id?obj1,?id?obj2)?{

????return?(arc4random()?%?3)?-?1;

}];

//?NSLog(@"array:%@",?array);

NSArray?*sortedArray?=?[array?sortedArrayUsingComparator:?^(id?obj1,?id?obj2)?{

????if?([obj1?integerValue]?>?[obj2?integerValue])?{

????????return?(NSComparisonResult)NSOrderedAscending;

????}


????if?([obj1?integerValue]?<?[obj2?integerValue])?{

????????return?(NSComparisonResult)NSOrderedDescending;

????}

????return?(NSComparisonResult)NSOrderedSame;

}];

sortedArray?是排好序的時間對象數組

//?按時間排序

NSArray?*sortedArray?=?[srcArrary?sortedArrayUsingComparator:^(id?obj1,?id?obj2)

{

????NSComparisonResult?result?=?[obj1?compare:obj2];

????switch(result){

????????case?NSOrderedAscending:

????????????return?NSOrderedDescending;

????????case?NSOrderedDescending:

????????????return?NSOrderedAscending;

????????case?NSOrderedSame:

????????????return?NSOrderedSame;

????????default:

????????????return?NSOrderedSame;

????}?

????//?時間從近到遠(遠近相對當前時間而言)

}];


//隨機排序

NSArray????*array?=?[NSArray?arrayWithObjects:@"1",?@"2",?@"3",?@"4",?@"5",?nil];

array?=?[array?sortedArrayUsingComparator:(NSComparator)^(id?obj1,?id?obj2)?{

????return?(arc4random()?%?3)?-?1;

}];

????NSLog(@"array:%@",?array);??

10 屏蔽表情輸入

????有朋友在詢問,如何屏蔽emoji表情輸入的問題,因為蘋果自帶的表情在其他設備上不支持。?

????思路,在textfeild或者textview中,鍵入時候先判讀是不是emoji的內容,如果是,就不返回給編輯框。 代碼如下:?

-?(BOOL)textField:(UITextField?*)textField?shouldChangeCharactersInRange:(NSRange)range?replacementString:(NSString*)string{

? ?DLog(@"[[UITextInputMode currentInputMode] primaryLanguage] is %@",);

? ?if?([[[UITextInputMode?currentInputMode]primaryLanguage]?isEqualToString:@"emoji"])?{

? ? ? ?returnNO;

????}

? ?returnYES;

}

11 MJRefresh初始化時崩潰

原因:

12 獲取iOS設備型號

獲取iOS設備型號(最新iPhone6+、iPad4)

http://www.oschina.net/code/snippet_2247606_39106

iOS獲取手機的型號,系統版本,軟件名稱,軟件版本

http://www.2cto.com/kf/201210/162333.html

//獲得設備型號

+ (NSString*)getCurrentDeviceModel:(UIViewController*)controller

{

????intmib[2];

????size_tlen;

????char*machine;

????mib[0] = CTL_HW;

????mib[1] = HW_MACHINE;

????sysctl(mib, 2, NULL, &len, NULL, 0);

????machine = malloc(len);

????sysctl(mib, 2, machine, &len, NULL, 0);

????NSString *platform = [NSString stringWithCString: machine encoding:?NSASCIIStringEncoding];

????free(machine);

????if?([platformisEqualToString:@"iPhone1,1"])?

? ??????return?@"iPhone 2G (A1203)";

????if?([platformisEqualToString:@"iPhone1,2"])?

? ??????return?@"iPhone 3G (A1241/A1324)";

????if?([platformisEqualToString:@"iPhone2,1"])?

? ??????return?@"iPhone 3GS (A1303/A1325)";

????if?([platformisEqualToString:@"iPhone3,1"])

? ??????return?@"iPhone 4 (A1332)";

????if?([platformisEqualToString:@"iPhone3,2"])

? ??????return?@"iPhone 4 (A1332)";

????if?([platformisEqualToString:@"iPhone3,3"])

? ??????return?@"iPhone 4 (A1349)";

????if?([platformisEqualToString:@"iPhone4,1"])

? ??????return?@"iPhone 4S (A1387/A1431)";

????if?([platformisEqualToString:@"iPhone5,1"])

? ??????return?@"iPhone 5 (A1428)";

????if?([platformisEqualToString:@"iPhone5,2"])

? ??????return?@"iPhone 5 (A1429/A1442)";

????if?([platformisEqualToString:@"iPhone5,3"])

? ??????return?@"iPhone 5c (A1456/A1532)";

????if?([platformisEqualToString:@"iPhone5,4"])

? ??????return?@"iPhone 5c (A1507/A1516/A1526/A1529)";

????if?([platformisEqualToString:@"iPhone6,1"])

? ??????return?@"iPhone 5s (A1453/A1533)";

????if?([platformisEqualToString:@"iPhone6,2"])

? ??????return?@"iPhone 5s (A1457/A1518/A1528/A1530)";

????if?([platformisEqualToString:@"iPhone7,1"])

? ??????return?@"iPhone 6 Plus (A1522/A1524)";

????if?([platformisEqualToString:@"iPhone7,2"])

? ??????return?@"iPhone 6 (A1549/A1586)";

????if?([platformisEqualToString:@"iPod1,1"])

? ??????return?@"iPod Touch 1G (A1213)";

????if?([platformisEqualToString:@"iPod2,1"])

? ??????return?@"iPod Touch 2G (A1288)";

????if?([platformisEqualToString:@"iPod3,1"])

? ??????return?@"iPod Touch 3G (A1318)";

????if?([platformisEqualToString:@"iPod4,1"])

? ??????return?@"iPod Touch 4G (A1367)";

????if?([platformisEqualToString:@"iPod5,1"])

? ??????return?@"iPod Touch 5G (A1421/A1509)";

????if?([platformisEqualToString:@"iPad1,1"])

? ??????return?@"iPad 1G (A1219/A1337)";

????if?([platformisEqualToString:@"iPad2,1"])

? ??????return?@"iPad 2 (A1395)";

????if?([platformisEqualToString:@"iPad2,2"])

? ??????return?@"iPad 2 (A1396)";

????if?([platformisEqualToString:@"iPad2,3"])

? ??????return?@"iPad 2 (A1397)";

????if?([platformisEqualToString:@"iPad2,4"])

? ??????return?@"iPad 2 (A1395+New Chip)";

????if?([platformisEqualToString:@"iPad2,5"])

? ??????return?@"iPad Mini 1G (A1432)";

????if?([platform isEqualToString:@"iPad2,6"])

? ??????return?@"iPad Mini 1G (A1454)";

????if?([platformisEqualToString:@"iPad2,7"])

? ??????return?@"iPad Mini 1G (A1455)";

????if?([platformisEqualToString:@"iPad3,1"])

? ??????return?@"iPad 3 (A1416)";

????if?([platformisEqualToString:@"iPad3,2"])

? ??????return?@"iPad 3 (A1403)";

????if?([platformisEqualToString:@"iPad3,3"])

? ??????return?@"iPad 3 (A1430)";

????if?([platformisEqualToString:@"iPad3,4"])

? ??????return?@"iPad 4 (A1458)";

????if?([platformisEqualToString:@"iPad3,5"])?

? ??????return?@"iPad 4 (A1459)";

????if?([platformisEqualToString:@"iPad3,6"])

? ??????return?@"iPad 4 (A1460)";

????if?([platformisEqualToString:@"iPad4,1"])

? ??????return?@"iPad Air (A1474)";

????if?([platformisEqualToString:@"iPad4,2"])

? ??????return?@"iPad Air (A1475)";

????if?([platformisEqualToString:@"iPad4,3"])?

? ??????return?@"iPad Air (A1476)";

????if?([platformisEqualToString:@"iPad4,4"])?

? ??????return?@"iPad Mini 2G (A1489)";

????if?([platformisEqualToString:@"iPad4,5"])

? ??????return?@"iPad Mini 2G (A1490)";

????if?([platform isEqualToString:@"iPad4,6"])?

? ??????return?@"iPad Mini 2G (A1491)";

????if?([platformisEqualToString:@"i386"])

? ??????return?@"iPhone Simulator";

????if?([platformisEqualToString:@"x86_64"])

? ??????return?@"iPhone Simulator";

????return?platform;

}


13 iOS中Frame等struct類型的NSLog輸出格式

NSString?*NSStringFromCGPoint(?CGPoint?point);

NSString?*NSStringFromCGSize(?CGSize?size);

NSString?*NSStringFromCGRect(?CGRect?rect);

NSString?*NSStringFromCGAffineTransform(?CGAffineTransform?transform);

NSString?*NSStringFromUIEdgeInsets(?UIEdgeInsets?insets);

NSString?*NSStringFromUIOffset(?UIOffset?offset);


14 Catalog不應履行繼承職責,即盡量不要重寫源類繼承自基類的方法

????Catalog中如果重寫基類方法的話,即使其他地方沒有引用該類,系統照樣會執行進入Catalog類方法中,代碼超過了include類的執行范圍,容易造成不可預知的異常。

例如:

#import "UIScrollView+UITouch.h"


@implementationUIScrollView (UITouch)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event {

??? [[self nextResponder] touchesBegan:touches withEvent:event];

??? [super touchesBegan:touches withEvent:event];

}


-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)event {

??? [[self nextResponder] touchesMoved:touches withEvent:event];

??? [super touchesMoved:touches withEvent:event];

}


- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event {

??? [[self nextResponder] touchesEnded:touches withEvent:event];

??? [super touchesEnded:touches withEvent:event];

}

@end

? ? 雖然其他類中沒有引用UIScrollView+UITouch.h這個分類類,在觸發touch操作時,代碼依然會執行到這三個方法中來,因為這個catalog相當于替源類UIScrollView實現了繼承的職責,實現了父類的touch方法。自然,就會執行到這個分類類中來,即使沒有顯式include這個catalog類。


15 【架構】單例完整寫法

16 #include實質

#include和#import本質上就是遞歸地復制和粘貼引用文件的內容


17 xcode修改scheme名稱

xcode修改scheme名稱

http://blog.csdn.net/xueer8835/article/details/19610099


18 報錯:process launch failed:failedto get the task for process XXX(解決方案)

報錯:

????????processlaunch failed:failed to get the task for process XXX(解決方案)

http://blog.csdn.net/itianyi/article/details/8575154

原因:

????證書問題,project和targets的證書都必須是開發證書,ADHOC的證書會出現此問題。


解決方案:

??? project和targets的證書使用開發證書。

其他:

failed to get the task for process XXX

This error happens when you have set DistributionProvisioning profile in code signing. Change it to Developer ProvisioningProfile, then it will work. Worked for me for Xcode SDK 4.5.

把你的code sign由Distribution改成Developer.就這么簡單.


補充:

????iphone5s的時候會出現:processlaunch failed: security

????這時候,應該app其實已經安裝成功了,你只需要在iphone上啟動app,然后點擊信任就可以了。


19 #include 'openssl/rsa.h' file not found

#include 'openssl/rsa.h' file notfound

解決方案:

????1、確保Header Search Paths路徑正確;

????2、將路徑設置為“recursive”

????3、移除引用,重新添加一遍;

20 #import 'leveldb/db.h' file not found

方案一

$(PROJECT_DIR)/framework/TKDataBase/leveldb


21 iOS開發中的Undefined symbols錯誤

iOS開發中的Undefinedsymbols錯誤

http://www.molotang.com/articles/1593.html

參考了StackOverflow一個帖子,寫的很全,這個錯誤可能的根源基本上是如下幾類:

????1、引入了需要用到的庫的頭文件,卻沒有鏈接正確的實現庫。因為Xcode本身所支持的庫是Static Library,即.a的方式,.a的文件里只有實現,使用的時候需要另外引入頭文件,那么就有可能把頭文件放進來,沒有放.a或放入了錯誤的版本。

????2、Build Settings或者Build Phases配置有誤。檢查Build Phases里的Link Binary With Libraries和Build Settings里的幾項Search Path。

????3、從外部導入的文件沒有加入到特定的target中。這個正是我整理這篇日志之前遇到的,將.a、.m、.framework等引入到工程當中,卻沒有勾選當前Build的target,會出現這個問題,可以選中特定的文件,在右側邊欄中選中target。

????4、未包含處理器架構指令集的問題。報錯時的提示一般都是“Undefined symbols for architecture

armv7”之類的,而“for architecture armv7”就是說沒有支持armv7,在Build settings里architecture相關的幾項需要配置正確。

????有如上這幾種情況的時候,會出現“Undefined symbols”的報錯提示,這時候就要對提示中指出的特定symbol相關的文件仔細檢查了。


22 Xcode突然出現could not build modulefoundation錯誤

Xcode突然出現could notbuild module foundation錯誤

http://blog.csdn.net/zhuoyuetec/article/details/43525369

Adding C file causes pch error

http://stackoverflow.com/questions/19723392/adding-c-file-causes-pch-error

????Xcode6創建項目時并沒有.pch預編譯文件,如下圖添加預編譯文件

????在預編譯文件中添加若干頭文件引用后,出現could not build module foundation錯誤

解決方案:

???????在引用頭文件開始加入#ifdef

__OBJC__ 結束時加入#endif,例如

#ifndef PureStandard_PrefixHeader_pch

#define PureStandard_PrefixHeader_pch


#ifdef __OBJC__

#import "A.h"

#import "B.h"

#endif

#endif


23 【編譯】There was an internal APIerror.

????xcode7更新之后使用真機調試,在IOS8的一臺Iphone5手機上面沒什么問題,IOS8的一臺iphone6也沒問題。但是在IOS6的一臺Iphone4s和IOS7的ipad air2上面在最后安裝的時候居然安裝失敗,提示?There was an internal API error. 然后百度Google了一下,找到一下幾種可能或解決辦法:

????1.私有api的問題。

????2.product---clean一下,然后重新build一下,僅僅這樣問題就可能得到解決。-----然而我的問題卻沒有解決(我甚至關機再試過)

????3.部分人安裝了多個版本xcode,在刪除只保留一個版本之后重新build也好了--------然而我沒有安裝多個版本

????在糾結了快一天的時候 我發現console打印出的日志顯示在安裝的app的名字是亂碼,通過查看build settings發現過product name改的是中文(解決方法)。然后抱著試試看的態度 把product

name改成原來的,和xcodeproj文件名一樣再重新build,終于沒問題了。

????在此提醒要修改app名字的時候最好不要修改product那么,可以在info.plist中修改Bundle

display name.

http://blog.csdn.net/jf200614379/article/details/48624405


24 【上線】Xcode8打包上傳app,構建版本按鈕不顯示.

Xcode8打包上傳app,構建版本按鈕不顯示

http://blog.csdn.net/u013306324/article/details/52684076

[iOS Xcode8]上傳AppStore無法構建版本 沒有加號

http://blog.csdn.net/iostiannan/article/details/52636103

????需要在Info.plist的頂級目錄下配置需要開啟的系統權限,不然即使App上傳成功了,在構建版本一項中找不到。

25 ios接如微信SDK報錯'NSInvalidArgumentException', reason: '-[__NSArrayMenqueue:]:

????ios用ShareSDK接入微信SDK報錯'NSInvalidArgumentException', reason: '-[__NSArrayMenqueue:]:

解決方法:

????1.你的工程文件中選擇Build Setting,在"Other Linker Flags"中加入"-Objc",其中-ObjC的C要大寫。

????2.如果工程報錯"_GCControllerDidDisconnectNotification",項目->TARGETS->iOS->BuildPhases->Link Binary With Libraries

????增加庫:GameController.framework

? ??3.如果還報錯xx.dylib的問題的話,則找到剛剛添加的GameController.framework,右側Required改為Opitional。


26 由于應用BundleID信息校驗不通過,無法分享到微信

http://bbs.umeng.com/thread-25696-1-1.html

????微信開放平臺里面,應用的Bundle ID與測試版本Bundle ID都必須填寫,不然就會報這個錯。


27 app發布,本地化存在錯誤。

????Api包沒問題,有可能是發布時錯選了所支持語言導致,例如App只支持中文,但是多選了英文(美國)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容

  • 1、禁止手機睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,138評論 1 6
  • 1,Search Bar 怎樣去掉背景的顏色(storyboard里只能設置background顏色,可是發現cl...
    以德扶人閱讀 2,407評論 2 50
  • 古鎮游記 七月,驕陽似火,也擋不住我們倆去西塘、南潯古鎮游覽的熱情,“周游九十九,不如到此走一走”,我編的順口溜,...
    xrzh128閱讀 272評論 4 6
  • 今天上午,不能好好工作,BOSS吼了好幾次,我都假裝沒聽到。我有事情要做,比BOSS的吼叫還要緊急的事情要做,就讓...
    誰偷了螞蟻閱讀 348評論 3 4
  • 1.引子:阿朱和阿紫的名字是怎么來的? 請允許我先賣個關子。我先不講蘇格拉底,我先講孔子。 金庸的小說里有一對姐妹...
    抱團取暖閱讀 2,071評論 0 1