把自己项目中遇到的问题总结一下,供大家参考,希望大家多多提出意见!!

在Xcode 6.2中遇到Your build settings specify a provisioning profile with the UUID, no provisioning profile was found错误

1.找到项目中的**.xcodeproj文件,点击右键,或者直接点击项目名称,右键 show in finder (打开包内容)。
2.打开后找到project.pbxproj文件,用文本编辑器打开。其实就是右键,点击open就好了。
3.打开这个文件后,按command+F,在这个文件中查找“PROVISIONING_PROFILE",找到和这个“
PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";”类似的都删除。
4.然后保存文件,重新打开项目。xcode会提示你重新下载安装provisioning profile文件。下载后安装上就可以。

// 让scrollView适应界面的高度,不会在界面中来回摇晃

self.automaticallyAdjustsScrollViewInsets = NO;

1.  在每个页面的入口和出口(一般是viewDidLoad和dealloc)打上日志,可以了解用户的操作流程,并查出页面在关闭时是否销毁了相应的对象。

2.  定时器NSTimer 需要在一个新线程中运行,否则UI操作会阻塞定时器。

3.  需要为定时器所在的线程设置NSRunLoop,否则定时器可能不会动。

4.  如果在线程中设置了NSRunLoop,需要在销毁线程时也将其停止,使用CFRunLoopStop 。

5.  所有的UI操作都应该在主线程中执行,否则会导致应用崩溃(不一定是立即崩溃)。

6.  如果项目中有c函数,出现同名的函数会导致应用编译失败,即使这些c函数处于不同的页面中。

7.  使用ASIHttpRequest,同步下载过程是不能被取消的,异步下载过程才可以被取消。

8.  应用内支付,支付成功的回调里面,还需要对加密数据transactionReceipt 进行验证,避免越狱的机器使用 IAPFree 等软件伪造数据。

9.  不要试图获取设备的UDID,否则会造成应用审核不通过。可以使用OpenUDID 或者 Mac 地址代替。

10.将比较费时的操作不要放在主线程中执行,避免UI响应慢。应该在一个新线程中执行(对有同步要求的操作除外)。

11.使用最新的Xcode and iOS SDK进行开发,对高版本的兼容性会好一些。例如Mac 10.6下只能安装Xcode4.2and iOS SDK 5.0 ,对iOS 5.1版本的系统就不能直接调试。

12. 图片命名:例如有一张图片为 MyImage.png,为了兼容不同设备,需要存为不同分辨率的图片,命名规则如下:

  • MyImage.png - 默认的图片名称。

  • MyImage@2x.png - 适用于Retina 显示屏的高分辨率图片。

  • MyImage~iphone.png - 适用于iPhone 和 iPod touch的图片。

  • MyImage@2x~iphone.png - 适用于iPhone and iPod touch 设备 Retina 显示屏的高分辨率图片。

  • 在显示图片时,只需要直接取 @"MyImage.png",系统就能根据当前的设备,自动读取相应的图片了。

  • 注意:以上图片命名规则只使用于UIKit框架。如果使用了cocos2d等其他框架,则有另外一套命名规则。

一些好用的框架/组件:

1.  PDColoredProgressView进度条组件,可以设置进度条的颜色,支持iOS4。但是在ASIHttpRequest的下载进度条中不好使用。

2.  MTLabel可以对label中的文字设置行高。

3.  TSAlertView可以在弹出框(UIAlertView)中设置输入框,类似于JavaScript中的prompt 。

4.  ZipArchive对文件进行压缩和解压操作。

5.  ASIHTTPRequest数据的上传和下载,以及断点续传。

6.  json-framework文件格式解析。

性能优化

1.  使用xcode自带的 Instruments工具可以查看应用的内存,cpu等资源使用情况。

2.  JSON格式解析速度优化。有人分析说 JSONKit 比 json-framework 效率更高。

日志跟踪

1.  友盟,比较全面的数据分析工具。

2.  Crashlytics.framework可以记录应用程序崩溃日志,并快速定位到出问题的代码行。国内可能需要翻墙。

ios 项目问题解决总结(2)

 
1.最近学习coreImage,coregraphics,了解相关的画笔相关的问题,关于混合模式的设计,画布上undo,redo的操作实现?(2014 7.15)

 
一:混合模式

(1) // 将UIImage转换成CIImage

CIImage *ciImage1 = [[CIImage alloc] initWithImage:self.imageView1.image];

CIImage *ciImage2 = [[CIImage alloc] initWithImage:self.imageView2.image];

// 创建滤镜

CIFilter *filter = [CIFilter filterWithName:@"CIMultiplyBlendMode"

keysAndValues:kCIInputImageKey, ciImage1 ,kCIInputBackgroundImageKey,ciImage2,nil];

NSLog(@"%@",filter.attributes);

[filter setDefaults];

// 获取绘制上下文

CIContext *context = [CIContext contextWithOptions:nil];

// 渲染并输出CIImage

CIImage *outputImage = [filter outputImage];

// 创建CGImage句柄

CGImageRef cgImage = [context createCGImage:outputImage

fromRect:[outputImage extent]];

// 获取图片

UIImage *showImage = [UIImage imageWithCGImage:cgImage];

// 释放CGImage句柄

CGImageRelease(cgImage);

(2) CGSize newSize = CGSizeMake(320, 480);

UIGraphicsBeginImageContext(newSize);

[self.imageView2.image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

[self.imageView1.image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)blendMode:kCGBlendModeMultiply alpha:1.0];

UIImage *blendImage =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

二:undo/redo功能

实际上是存储画过的path,width,alpha 到集合中,undo删除集合最后一个重新全部从数组依次取出path,width,alpha重新在画布上画,redo,是undo操作时将该path放入缓存的数组之中,redo时取出添加到原数组,再次重绘。

好资源:http://www.cnblogs.com/xdream86/archive/2012/12/12/2814552.html

2.Undefined symbols for architecture i386:问题

解答:一般是第三方库的问题。

3.解析网络请求返回的字典数据时注意使用dir[@"data.text"],注意dir[@"data"] 是否存在,不然会报NSNull 错误,今天因为这个原因废了好长时间。

4.最近做一个播放网络视频的例子:

代码如下:

-(void) playVideo:(NSString*) urlStr

{

NSURL *url=[[NSURL alloc] initWithString:urlStr];

self.moviePlayer=[[MPMoviePlayerController alloc] init];

self.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;

[self.moviePlayer setContentURL:url];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

self.moviePlayer.controlStyle=MPMovieControlStyleDefault;

self.moviePlayer.shouldAutoplay=YES;

[self addSubview:self.moviePlayer.view];

[self.moviePlayer setFullscreen:YES animated:YES];

}

- (void)moviePlayBackDidFinish:(NSNotification*)notification

{

[[NSNotificationCenter defaultCenter] removeObserver:self

name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

if ([self.moviePlayer respondsToSelector:@selector(setFullscreen:animated:)])

{

[self.moviePlayer.view removeFromSuperview];

}

}

注意要点:点击播放后,回调还没有执行,self不能被销毁,否则回调出错

5.注意写项目时能直接用hidden的就不要用removeFromSuperView

6.最近项目用到tableView,出现这样的情况,删除最后一行后,reload,再次点击最后一个列表还是不能点击(8.22)

原因:删除操作未完成,就开始reload 解决:延迟reload操作0.1s

7.今天更新项目,删掉了.xib文件后程序无法正常启动(8.25)

原因:mian.m中代码错误 解决改为与AppDelegate关联即可

8.今 天更新关于图片特效处理的项目,使用到数据的存储,起初用int*去存储,发现真机上一运行就crash,发现是因为像素点的数据值太大超过范围值。

解决:改为用unsign char*去存储,每个像素点存4个值。

9.更新项目遇到一个问题;

问题描述:tableView 点击cell,跳转,返回,再次点击cell ,running in loop.

分析:重复调用-reloadRowsAtIndexPaths:withRowAnimation:触发tableView去请求数据,程序将陷入死循环。

解决:不要重复调用-reloadRowsAtIndexPaths:withRowAnimation:,data与UI区分开来。

 
1、在使用第三方基于FlipSquaresNavigationController做动画的时候(push),在做动画的过程中会出现动画卡的现象,原因是在FlipSquaresNavigationController做动画的方法里面,调用了下个界面的.view属性,这个时候会执行viewDidLoad方法,如果在viewDidLoad里面创建UI的话,会占用主线程,照成动画的卡顿,解决方法可以在viewWillAppear:或者是viewDidAppear:里面创建UI .
2.、在使用UICollectionView的时候,崩溃出现'UICollectionView must be initialized with a non-nil layout parameter’,原因是没有进行UICollectionViewFlowLayout的初始化。

解决方法:
UICollectionViewFlowLayout *layout= [[UICollectionViewFlowLayout alloc]init];
self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];
[self.view addSubView:self.collectionView];  
[self.collectionView registerClass:[UICollectionViewCell class]
        forCellWithReuseIdentifier"Cell"];
self.collectionView.delegate=self;
self.collectionView.dataSource=self;
 
注意出现:delegate,dataSource协议的时候
self.collectionView.delegate=self;
self.collectionView.dataSource=self;
对应的在.h里面一定要加:<UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>

3、网络返回数据为<null>时,不知道如何进行判断,出现这种情况的原因就是,后端返回的数据没有给默认值,可以通过[responseData isEqual:[NSNull null]]进行判断。

4、在IOS7中UINavigationController中使用UITextView或者UIScrollView的时候,文本的对齐方式,垂直方向的对齐方式是居中对齐,不是上对齐,需要在viewDidlLoad里面添加:
automaticallyAdjustsScrollViewInsets
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){
        self.automaticallyAdjustsScrollViewInsets = NO;
    }

1、IOS UTF-8编码(POST上传的时候,汉字上传的格式为%AE 这种形式),可以通过下面方法进行转换。
      NSString* encodedString = [urlString
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringE
ncoding];

解决方案 :NSString * encodedString = (NSString
*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorD
efault,
(CFStringRef)urlString,NULL,NULL,kCFStringEncodingUTF8);

2、键盘上面View在改变键盘类型的时候,View的frame值实时改变,

可以使用通知中心来进行观察,实时的改变View的
frame。

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillChangeFrame:)
name:UIKeyboardWillChangeFrameNotification object:nil];

也可
以设置键盘的inputView。

3、在解析网络返回数据的时候,接收数据类型不匹配,比如: 比如说返回的是NSNumber,接收用NSString。

4、数组越界的问题(常见情况是:先进⾏网络请求的语句,但是在下面语句紧接着就使用了接收网络数据的NSArray或者是
NSMutableArray),对⼀个元素个数为0的数组进行
objectAtIndex:操作,导致数组越界,

解决方法是在从数组中取元素的时候,对数组进⾏[array count]判断;保证数组中元素个数不为0,然后再对数组进行操作。

5、⺴络返回数据为<null>时,不知道如何进行判断,出现这种情
况的原因就是,后端返回的数据没有给默认值,可以通过
[responseData isEqual:[NSNull null]]进行判断。


6、学⽣从网上下载的demo,在参照demo⾃己写的时候,莫名其妙的出现崩溃的情况,⼀般情况下都是,网上的Demo使⽤的时ARC,但是学⽣在⾃己⼯程里⾯使用的时MRC,导致某些对
象提前释放。

解决方法,在TARGETS-Build Phases-Compile

Sources 对应的.m⽂文件添加-fobjc-arc。如果想让某个类不使⽤用
ARC那么可以在TARGETS-Build Phases-Compile Sources 对应
的.m⽂文件添加-fno-objc-arc。

7、在IOS7中UINavigationController中使⽤用UITextView或者
UIScrollView的时候,⽂本的对齐⽅式,垂直方向的对齐方式是居中对齐,不是上对齐,

需要在viewDidlLoad⾥面添加:
automaticallyAdjustsScrollViewInsets

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0){

}

在使⽤用UIScrollView的时候也会出现偏移。

8、在使⽤用UICollectionView的时候,崩溃出 现'UICollectionView must be initialized with a non-nil layout parameter’,

原因是没有进⾏行 UICollectionViewFlowLayout的初始化。

解决⽅方法:

UICollectionViewFlowLayout *layout= [[UICollectionViewFlowLayout alloc]init]; self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];

[self.view addSubView:self.collectionView]; [self.collectionView registerClass:[UICollectionViewCell class]

forCellWithReuseIdentifier:@"Cell"]; self.collectionView.delegate=self; self.collectionView.dataSource=self;

注意出现:delegate,dataSource协议的时候 self.collectionView.delegate=self; self.collectionView.dataSource=self; 对应的在.h⾥里⾯面⼀一定要加: <UICollectionViewDataSource,UICollectionViewDelegateFlowL ayout>

9、在导入CocoaHTTPServer框架的时候,在已经导入libxml2的 情况下,设置了header search path为${SDCROOT}/usr/include/

self.automaticallyAdjustsScrollViewInsets = NO; // Avoid
the top UITextView space, iOS7 (~bug?)

libxml2,仍出现unknown type name ‘xmlNodePtr’等20个错 误,原因是libxml2在其他⽂文件夹⾥面(比如在cocos2d-x的⽂件 夹⾥面),另外导入libxml2类似框架的时候是在TARGETS-Build Phases-Link Binary With Libraries,⽽不是在*Tests下。

10、在⼀一个试图模态除⼀一个试图的时候,出现Presenting view controllers on detached view controllers is discouraged <*>,

解决⽅方法: 程序运⾏行的过程中出现’Only run on the main thread!’,是 因为更新UI不是在主线程进⾏行的。

12、UITableViewCell的在IOS5和IOS6有不同的初始化方法,在 IOS6中采用- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath对 UITableViewCell进⾏行初始化时,需要使⽤用配套的- (void)registerClass:(Class)cellClass forCellReuseIdentifier:(NSString *)identifier⽅方法对 UITableViewCell进行注册。

13、在使用百度地图API的时候,先需要在appDelegate⾥面设 置百度地图的代理,不然进⼊主屏幕之后是⿊色的。

14、在使⽤用UITableView的时候,section会停留在屏幕的最上⽅,直到滑动到下⼀个分区,解决方法,tableView的样式选⽤group,然后⾃定义headerView。

15、涉及到网络请求和UITableView结合展示数据的时候,出现数组越界问题,

原因是:⺴络请求还没有完成,但是在 UITableView的代理⽅法⾥面已经开始使⽤用数组(对一个元素个 数为0的数组调用objectAtIndex:⽅法),解决⽅法是在使用数组 的时候判断数组中元素个数,不为0才进⾏行操作。

16、在使⽤用第三⽅方抽屉效果(DDMenu)的过程中,如果从 Center试图Push到下级ViewCOntroller(AViewController),那么 在AViewController中使⽤用手势仍可以返回DDMenu的左视图,如果想取消这个效果,那么可以在AViewController中把DDMenu的 ⼿手势暂时关闭。

17、如果对⼀个数组使用系统的copy,那么copy得到的数组是 个不可变的数组。

[self.view.window.rootViewController
presentViewController:viewController animated:YES
completion:nil];

18、在类的.h⾥里⾯面,如果在#import <Foundation/Foundation.h> 的下⼀一⾏行写代码的话,不会⾃自动补全,还有如果参数⾥里⾯面有中⽂文 的话,Xcode不提⽰示也不会⾃自动补全,但是可以使⽤用。如: _showBookLabel1.text = [NSString stringWithFormat:@"作者: %@ 类型:”,_assigenModel.author_name];author_name不提 ⽰示,但是能使⽤用。

19、在使⽤本地通知的时候,如果注册过通知,但是把程序删除 之后,再次安装的时候,会出现两次通知提醒(因为这些通知加⼊到系统⾥面)。解决方案是在进入程序时把之前的通知删除掉。

20、在UITableViewCell中动态展示数据的时候,可以在自定义 Cell里面写⼀个类⽅法来专门计算Cell的高度。

21、在使⽤用第三⽅方基于FlipSquaresNavigationController做动画 的时候(push),在做动画的过程中会出现动画卡的现象,原因 是在FlipSquaresNavigationController做动画的⽅法里面,调用了下个界面的.view属性,这个时候会执⾏行viewDidLoad⽅方法,如 果在viewDidLoad⾥面创建UI的话,会占用主线程,照成动画的卡顿,解决⽅法可以在viewWillAppear:或者是viewDidAppear:⾥面创建UI .

22、深拷贝和浅拷贝的最大区别是copy出来的成员对象地址是否一致,如果子对象地址改变,则是深拷贝,反之,则是浅拷贝

23、 UITableView 定位到某个分区或者某⼀⾏

NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:0 inSection:3];
[_tableView scrollToRowAtIndexPath:scrollIndexPath

atScrollPosition:UITableViewScrollPositionTop

animated:YES];

24、学生在做视频播放和下载的时候出现这个错误
RTCReporting: resolve from https://qtpartners.apple.com/
storebags/hls?version=4.10,解决⽅方案(换台机器或者换个
Xcode就可以)

。⺴⽹网上找的相似的错误给出的解决⽅方案是:1、This seems to
be a problem with trying to play videos on the simulator. I've
had this problem for months now, and just ran into it again

today when I was trying to play video on my simulator.

The solution, while not great, is to use an actual device instead of the
simulator for testing video playing.

2、You need use:
[player play];

after you sound play in the real device and in simulator.

25、IOS7状态栏的适配问题http://beyondvincent.com/blog/2013/11/03/120-

customize-navigation-status-bar-ios-7/

26、完整的单例模式,需要重写retain、release、autorelease、retainCount等
⽅方法.相关介绍http://beyondvincent.com/blog/2013/05/09/20/,https://
developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/
CocoaFundamentals/CocoaObjects/CocoaObjects.html

27、在使⽤从别⼈人那边拷贝过来的工程,只有My mac 64-bit可选,模拟器都不能使用,解决方法:首先关闭你的Xcode,找到你出现解决此问题的项⺫目录下,
然后此项⺫目的***.xcodeproj ⽂文件,然后右键选择“显示包内容”,如下图:

!





一般情况下,包中有如下3个⽂文件:

1.project.pbxproj 2.project.xcworkspace 3.xcuserdata

找到“xcuserdata”这个罪魁祸⾸首,将其整个移到废纸篓中,OK,重新打开你的项⺫⽬目,

则正常显⽰示可使⽤用的Simulator;(http://www.himigame.com/iphone-cocos2d/

621.html)

29、学⽣生在声明实例变量的时候使⽤了NSString *_string;这样在使用的过程中取到的

是一个地址,因为这个NSString *_string;在CAValueFunction冲突。如果命名没问

题,也有可能的原因是这个对象被提前释放了,retain⼀下也许就可以了。

30、得到当前⼯工程的目录”$(SRCROOT)”

31、ShareSDK真机出现Undefined symbols for architecture arm64:

"_OBJC_CLASS_$_WeiboApi", referenced from: objc-class-ref in

MMAppDelegate.o,解决⽅方法http://blog.csdn.net/topbar/article/details/

21449643<iOS7.1 编译报错 解决⽅方案 体会>

32、如果创建的工程,运行时发现self.view的⾼高度只有480,那么原因就是缺少了4

英寸的启动图片Default-568h@2x.png.

33、百度地图错误[__NSCFString stringFromMD5]: unrecognized selector sent to

instance 0x1f836730

project->build setting->other linker flags

写上 -ObjC

百度地图常⻅见错误:

(1)编译正常,运⾏行报 [UIDevice uniqueGlobalDeviceIdentifier]:

unrecognized selector sent to此时需要 other linker flags 添加 -all_load参
数。

具体:Project ->build settings ->linking->Other Linker flags
(2)编译报 Undefined symbols for architecture armv7。请检查有没有添加
QuartzCore.framework 和 CoreLocation.framework

(3) BMKMapManager强烈建议通过单例模式管理起来,并且不要⼿手动调⽤用其
release⽅方法。

(4) 进⾏行⽤用户位置定位时除了要设置showsUserLocation = YES,还要在
mapView:didUpdateUserLocation:⽅方法中调⽤用
setCenterCoordinate:animated

另外⼀一定要在dealloc中,或者其他离开⻚页⾯面的地⽅方调⽤用showsUserLocation
= NO,否则会出现第⼆二次push到定位⻚页⾯面时,不会重新定位问题。

(5) 必须⾄至少让⼀一个类保持.mm⽂文件,或者按照官⽅方修改编译器类型。
(6) lipo –create Release-iphoneos/libbaidumapapi.a Release-

iphonesimulator/libbaidumapapi.a –output libbaidumapapi.a 如果报错,请
改成

lipo –create –output libbaidumapapi.a Release-iphoneos/
libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a 就能解决。
34、提醒学⽣生在往⼯工程⾥里⾯面拖⽂文件的时候⼀一定要选择copy和addToTargets.

35、某些控件的可交互性userInteractionEnabled<这种问题我感觉可以不予解
决,只要前期讲师多次强调过的话>。

36、note: after modifying system headers, please delete the module
cache at ‘/Users/sumomochuufuku/Library/Developer/Xcode/
DerivedData/ModuleCache/2NEVAP7X943D2’。。解决办法:前往 '/Users/
sumomochuufuku/Library/Developer/Xcode/DerivedData/ModuleCache/
2NEVAP7X943D2 这个⽂文件夹,删除其⽂文件夹中的内容,然后运⾏行app,没问题
了,注意不是删除 2NEVAP7X943D2 ⽂文件夹,⽽而是其中的内容。然后再 clean下
项⺫⽬目就可以了(product -> clean)<IOS7开发错误收集http://blog.csdn.net/
smallsky_keke/article/details/16117653>

37、如果你的应用程序是从别人那边拷贝过来的,如果提示第三方开源框架使⽤用错误或者找不到,那么把第三方开源框架重新导⼊一遍有时就可以了

38、运⾏行xcode在真机上,或者archive打包时,都会弹出输⼊入⽤用户名和密码的框
:”Mac OS X"想要进⾏行更改。键⼊入管理员的名称和密码以允许执⾏行此操作("Mac

OS X”想使⽤用系统钥匙串),解决⽅方法如下<http://blog.csdn.net/rhljiayou/
article/details/13296811>
39、Xcode5去除⾼高光效果:http://blog.csdn.net/qtc_2012/article/details/
18087745

1.⾸首先,在General中App Icons 使⽤用Source--> AppIcon
2.在 Images.xcassets 中依次添加对应尺⼨寸的icon.
3.选中AppIcon ,在右侧第三个按钮下,勾选 iOS icon is pre-
rendered.

4.编译,运⾏行,icon 的⾼高光效果就没有了.
PS:如果,还存在的话,请将app先卸载,然后重新运⾏行即可.

40、如果使⽤用mailcore2第三⽅方开源框架,那么需要联⺴⽹网下载东⻄西,如果⺴⽹网络
不通畅的话会报错。

41、XCode 5 “ios模拟器未能安装此应⽤用程序”解决办法:http://
blog.csdn.net/somestill/article/details/19402049

42、在IOS中使⽤用系统JSON解析的的时候,发现返回数据是JSON格式,但
是解析出来是个null,可能是返回数据的编码格式问题,可以尝试使⽤用ASI的
responseString,然后把responseString转换成NSData,在使⽤用系统的
JSON解析就可以了。

43、百度地图和ShareSDK⼀一起使⽤用的时候,最后报错duplicate symbol
_isRetina in,解决⽅方案把all_load取消掉。

44、如果学⽣生在使⽤用第三⽅方静态库如ShareSDK的时候出现错误Undefined
symbols for architecture arm64:或者是X86-64,当前的静态库不⽀支持64



 

位,需要在Build Settings下⾯面,删除Valid Architectures 下的arm64
,并且改Build Active Architecture Only改为NO.

45、如果在使⽤用真机拍照,图⽚片保存到本地Document⽂文件,再次取出图⽚片的
时候出现图⽚片旋转了90°可以使⽤用以下⽅方法解决:

CGImageRef oldImageRef=image.CGImage;

UIImage* newImage=[UIImage imageWithCGImage:oldImageRef scale:.1
orientation:UIImageOrientationRight];

参考链接:http://www.2cto.com/kf/201404/290777.html

46、如果想在iOS中设置状态栏是⽩白⾊色,那么需要[[UIApplication
sharedApplication]
setStatusBarStyle:UIStatusBarStyleLightContent];另外在plist⽂文件⾥里
将View controller-based status bar appearance改为NO

47、在播放音乐的时候,如何设置都没有问题,但是没有声音,这个时候需要
考虑播放器是否设置为局部变量了。

48、如果UITableViewCell,didSelect⽅方法不走,其他代理⽅法都走,那么是有手势截获了UITabelViewCell的didSelect事件

49、Xcode中获取⼯工程的相对路径:$(SRCROOT)

50、在使⽤用CoreData的时候出现Receiver type
'NSManagedObjectContext' for instance message is a forward
declaration 等9个(不确定,或者是7个)错误,是因为虽然导入了
CoreData框架,但是没有在.pch⽂文件⾥里⾯面#import,参考链接:http://
blog.csdn.net/xiaoxuan415315/article/details/7940861

51、如果程序在运⾏行的时候崩溃,出现的提示的某个类调了
setValue:forUndefinedKey:,并且这个key在这个类⾥⾯或者整个工程里面都不能搜索到,那么这个时候就要考虑使⽤用Storyboard的时候,一个控件拉了两根线的情况。

52、在使⽤用shareSDK进行QQ空间分享的时候,出现提示could not build
module uikit,把模拟器换成真机调试

53、同时使⽤百度地图SDK和百度导航SDK的时候出现以下10个错误的解决方案是在build settings中的other linker flags添加-Objc



错误如下:ld: warning: directory not found for option '-L/Users/
lanou3g/Documents/Daemonson/NavigationGo/baiduNaviSDK/
Statistic'
Undefined symbols for architecture i386:

"_MSR_Close", referenced from:
CVMFE::mfeClose() in libbaiduNaviSDK.a(VMFE.o)

"_MSR_Detect", referenced from:
CVMFE::mfeDetect() in libbaiduNaviSDK.a(VMFE.o)

"_MSR_Exit", referenced from:
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see
invocation)

54、Xcode每次修改后,编译提⽰示“Developer tools access”,需要控制另 一个进程才能继续调试,可以使⽤如下终端命令解决。sudo /usr/sbin/
DevToolsSecurity —enable。参考连接:http://blog.csdn.net/xyxjn/
article/details/16111773

54、上传程序的时候出现Missing  Screenshot”,可能原因是创建工程的时
候选择的是混合工程,但是没有iPad的截图 

55、优酷m3u8地址格式,1、http://v.youku.com/player/getM3U8/vid/
XNzI3NTI1NjUy/type/flv      2、http://pl.youku.com/playlist/m3u8?
vid=XNzIwMDE5NzI4&type=mp4  
http://pl.youku.com/playlist/m3u8?

vid=162779600&ts=1407469897&ctype=12&token=3357&keyframe=
1&sid=640746989782612d6cc70&ev=1&type=flv&ep=dCaUHU2LX8YJ
4ivdjj8bMyqxJ3APXP8M9BiCiNRiANQnS%2B24&oip=2043219268 

56、子线程中不要进行UI的更新,并且如果子线程有自动释放对象,那么需要
手动添加自动释放池。 

57、No  architectures  to  compile  for  (ARCHS=armv7  armv7s  arm64,  
VALID_ARCHS=armv7s,armv7).出现这个错误的时候,是因为Valid  
Architectures设置的格式和Architectures的格式不一样。比如Architectures
是空格,Valid  Architectures中间是”,”(逗号)。

58、Core  Data:Receiver  type  ‘NSManagedObjectContext’  for  class  
is  a  forward  declaration。解决方案:在使用core  Data时出现如题  错误,已
在项目中加入了Coredata.framework,最终在stackoverflow上找到答案,原
来要在  xxx.pch    中加入#import  <CoreData/CoreData.h> 






59、学生在抓取时光网的借口的时候,抓接口能抓到数据,但是在进行请求的

时候没有数据,那是因为少了header,  
代码如下:  
 NSURL  *url  =  [NSURL  URLWithString:@"http://api.m.mtime.cn/
Showtime/LocationMovies.api?locationId=290"]; 

         
       NSMutableURLRequest  *request  =  [NSMutableURLRequest  
requestWithURL:url  
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData  
timeoutInterval:-1];  
       [request  setHTTPMethod:@"GET"];  
       [request  
addValue:@"5,1406738416605,B99DAADA90F36E724EA7A12214774062
"  forHTTPHeaderField:@“X-MTime-Mobile-CheckValue"];  
[request  setValue:@"text/html"  forHTTPHeaderField:@“Content-
Type"];  
[NSURLConnection  sendAsynchronousRequest:request  queue:
[NSOperationQueue  mainQueue]  
completionHandler:^(NSURLResponse  *response,  NSData  *data,  
NSError  *connectionError)  {  
             NSString  *string  =  [[NSString  alloc]  initWithData:data  
encoding:NSUTF8StringEncoding]; 

               NSLog(@"---  str  =  %@",  string); 

       }]; 

60、遇到网络接口返回数据乱码:

可以使用  
NSStringEncoding  gbkEncoding  
=CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_
18030_2000);  
NSString  *string  =  [[NSString  alloc]  initWithData:self.data  
encoding:gbkEncoding]; 

61、遇到错误,ld:  building  for  iOS  Simulator,  but  linking  against  dylib  
built  for  MacOSX  file  '/Applications/Xcode.app/Contents/Developer/

Library/Frameworks/XCTest.framework/XCTest'  for  architecture  x86_64 

clang: error: linker command failed with exit code 1 (use
-v to see invocation)1把下⾯面的XCTest.framework删掉,

2然后把测试⼯工程.m⽂文件右边的target勾选掉,保留测试(如下图)。


62、iOS ⾃自定义字体http://blog.csdn.net/justinjing0612/
article/details/8093985


63、如果在抓接⼝口的过程中,能抓到数据,但是使⽤用代码的话不能请求到数
据,那么可能的原因就是缺少了HttpHeader,⽰示例:

NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:[NSURL URLWithString:@“http://api.m.mtime.cn/
Showtime/LocationMovies.api?locationId=290”]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:-1];

[request addValue:@"5,1406738416605,B99DAADA90F36E724EA7A12214774062" forHTTPHeaderField:@“X-MTime-Mobile-CheckValue"]; // 添加 HttpHeader

    [request setHTTPMethod:@"GET"];
    [NSURLConnection sendAsynchronousRequest:request queue:
[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data,
NSError *connectionError) {
        NSLog(@"---- request = %@", response);
NSLog(@"=== =%@", connectionError);
NSLog(@"data%@", data);
NSString *str = [NSJSONSerialization
  JSONObjectWithData:data
options:NSJSONReadingMutableContainers error:nil];
        NSString *string = [[NSString alloc]
initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"--- str = %@", string);

}];

forState:UIControlStateNormal]; 选中item字体颜⾊色:[[UITabBarItem appearance]

setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor
yellowColor] }forState:UIControlStateSelected];


64、如果在使⽤用CocoaPods的过程中,出现头⽂文件找不到的情况,那么需
要在下⾯面的位置进⾏行配置。

63、tabBarItem的未选中title颜⾊色:[[UITabBarItem appearance]
setTitleTextAttributes:@{ NSForegroundColorAttributeNam
e : [UIColor whiteColor] }

65、兼容iOS8升级到Xcode6.0编译之前的工程,结果App⽆无法在真机上运
⾏行。报错如下:The file “xxxx.app” couldn’t be opened
because you don’t have permission to view it.

解决⽅方案:查看工程中警告,发现需要更新旧工程的设置:
点击Upate to reconmmented settings,打开如下窗⼝口:

67、iOS objc_msgSend iOS too many arguments in function

call 报错解决⽅方案

3. 当接口里的数据有空null 的时候, 会报错

在处理数据的时候进行判断 if(data != [NSNull null])

(array.count > 0)等等

nil是一个对象指针为空,Nil是一个类指针为空,NULL是基本数据类型为空 [NSNull null]数据为空

4. 控制table的分割线长短

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

self.tableView.separatorColor = [UIColor colorWithWhite:0.668 alpha:0.8];

[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 20, 0, 20)];

5.  设置navigationBar 的时候视图会往上面挪动65, 需要设置

filmNC.navigationBar.translucent = NO; 清除透明度

IOS 项目问题总结的更多相关文章

  1. 开源 iOS 项目分类索引大全 - 待整理

    开源 iOS 项目分类索引大全 GitHub 上大概600个开源 iOS 项目的分类和介绍,对于你挑选和使用开源项目应该有帮助 系统基础库 Category/Util sstoolkit 一套Cate ...

  2. ios项目里扒出来的json文件

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  3. 现有iOS项目集成React Native过程记录

    在<Mac系统下React Native环境搭建>配置了RN的开发环境,然后,本文记录在现有iOS项目集成React Native的过程,官方推荐使用Cocoapods,项目一开始也是使用 ...

  4. iOS项目的本地化处理(多国语言)

    项目的本地化就是:iOS系统在不同语言环境下自动切换语言,从而实现一个app发布到全世界各个国家的AppStore上. 我们不仅仅需要在iOS项目中做本地化处理,在上架iOS APP的时候,也需要做对 ...

  5. 在Xcode 6 beta里编译Cocos2d-x iOS项目时失败

    转载 在Xcode 6 beta里编译Cocos2d-x iOS项目时可能会失败,提示如下错误: Undefined symbols for architecture i386: "_fwr ...

  6. phonegap创建的ios项目推送消息出现闪退现象

    使用phonegap创建的ios项目,推送消息时,当程序在前台运行或者在后台运行状态下,推送消息过来,可以解析并且跳转: 但是在程序从后台退出的状态下,当消息推送过来的时候,点击通知栏,打开程序,程序 ...

  7. MVVM 模式下iOS项目目录结构详细说明

    ➠更多技术干货请戳:听云博客 我们在做项目的时候,会经常用到各种设计模式,最常见的要数 MVC (模型,视图,控制器)了.但是,今天我们要说的是另一种设计模式——MVVM. 所以 MVVM 到底是什么 ...

  8. WinObjc - 使用iOS项目生成通用Windows应用

    Github上一周年的WinObjc项目最近发布了预览版本,终于等到了这一天.WinObjc项目就是Build 2015大会上微软宣布的Project IslandWood项目,致力于将iOS应用快速 ...

  9. iOS 项目中用到的一些开源库和第三方组件

    iOS 项目中用到的一些 iOS 开源库和第三方组件 分享一下我目前所在公司 iOS 项目中用到的一些 iOS 开源库和第三方组件, 感谢开源, 减少了我们的劳动力, 节约了我们大量的时间, 让我们有 ...

  10. iOS项目中常用的第三方开源库

    1.项目使用的第三方开源库 项目使用了CocoaPods(类似java中的maven)管理常用的第三方库,一些特殊的单独引用,下面介绍下比较好用的几个. (1)AFNetworking 目前比较推荐的 ...

随机推荐

  1. maven POM.xml 标签详解

    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以 ...

  2. ubuntu apt 命令参数(转)

    apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统. apt-get update 在修改/etc/apt/sou ...

  3. NGINX小技巧--将所有目录和目录下所有文件分别给与不同的权限

    为了安全,有时要将文件的权限进行限制,但,目录如果没有755,则不能进入. 所以需要分别给权限 find ./ -type f -name "*" |xargs ls -l

  4. C#实现目录复制

     摘自:http://www.cnblogs.com/zxjay/archive/2008/10/29/1322517.html FCL提供了文件移动.文件复制.目录移动的方法,但没提供目录复制的 ...

  5. zoj2562:搜索+数论(反素数)

    题目大意:求n以内因子数量最多的数  n的范围为1e16 其实相当于求n以内最大的反素数... 由素数中的 算数基本原理 设d(a)为a的正因子的个数,则 d(n)=(a1+1)(a2+1)..... ...

  6. poj3708:函数式化简+高精度进制转换+同余方程组

    题目大意 给定一个函数 找出满足条件   等于 k 的最小的x m,k,d已知 其中 m,k 很大需要使用高精度存储 思路: 对 函数f(m)进行化简 ,令t=ceil( log(d,m) ) 可以得 ...

  7. Android 通过外键连接两个数据库

    Learn: 1.Android数据库的语法. 2.通过外键连接两个数据库. 3.加强了对数据库的熟悉度. 4.对文本框的visiblity属性的了解. Demo:http://pan.baidu.c ...

  8. Maven--多模块依赖实例解析(五)

    <Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> <Maven—生命周期和插件(四)&g ...

  9. c语言结构体数组引用

    struct dangdang { ]; ]; ]; int num; int bugnum; ]; ]; double RMB; }dbdd[]={{,,}, {,,} };//初始化 void m ...

  10. JPA字段映射(uuid,日期,枚举,@Lob)

    转:http://www.cnblogs.com/tazi/archive/2012/01/04/2311588.html 主键: JPA主键的生成策略不像Hibernate那么丰富. @Id @Ge ...