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

在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可以记录应用程序崩溃日志,并快速定位到出问题的代码行。国内可能需要FQ。

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 = [NSMutableURLRequestrequestWithURL:[NSURL URLWithString:@“http://api.m.mtime.cn/Showtime/LocationMovies.api?locationId=290”]cachePolicy:NSURLRequestReloadIgnoringLocalCacheDatatimeoutInterval:-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:dataoptions: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系统在不同语言环境下自动切换语言,从而实现一个app发布到全世界各个国家的AppStore上. 我们不仅仅需要在iOS项目中做本地化处理,在上架iOS APP的时候,也需要做对 ...

  2. iOS 项目集成Flutter

    #最近移动端火爆无非是Flutter--舍我其谁,而官网的引导之中鲜有说怎么在已有项目中去集成Flutter,今天我们就再蹭个热门来进行一个iOS集成 1 创建iOS项目(做测试使用) 2 cocoa ...

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

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

  4. 创建第一个IOS项目

    今天我们创建第一个IOS项目,并在模拟器上运行 首先进入Xcode 点击创建新项目后,接下来该给项目起一个名字啦 HelloWorld! 点击下一步,开始选择模板啦 我们选择SingleView Ap ...

  5. XamarinSQLite教程Xamarin.iOS项目中打开数据库文件

    XamarinSQLite教程Xamarin.iOS项目中打开数据库文件 以下是打开MyDocuments.db数据库的具体操作步骤: (1)将Mac电脑上的MyDocuments.db数据库移动到W ...

  6. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件

    XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件 开发者可以在指定的路径中找到复制的数据库文件,具体的操作步骤如下: (1)单击Mac电脑中Finder菜单中的"前 ...

  7. 在Xamarin.iOS项目中使用预设数据库

    在Xamarin.iOS项目中使用预设数据库 当开发者准备好一个预设数据库文件后,就可以将这个数据库文件添加到创建的项目中了.本节将分别在Xamarin.iOS和Xamarin.Android项目中使 ...

  8. Xamarin SQLite教程Xamarin.iOS项目添加引用

    Xamarin SQLite教程Xamarin.iOS项目添加引用 使用直接方式访问SQLite数据库,需要将System.Data和Mono.Data.SQlite库导入到创建的项目中.下面将分别讲 ...

  9. Xamarin.iOS项目编译提示Could not AOT the assembly

    Xamarin.iOS项目编译提示Could not AOT the assembly 错误信息:Could not AOT the assembly **************.dll 这个错误是 ...

  10. Xamarin.iOS项目提示error MSB3174:”TargetFrameworkVersion”的值无效

    Xamarin.iOS项目提示error MSB3174:"TargetFrameworkVersion"的值无效 错误信息:MSBulid\14.0\bin\Microsoft. ...

最新文章

  1. Maya 2022中的硬表面建模技术学习视频教程
  2. 设计模式学习2 工厂模式
  3. etcd集群搭建(高可用)
  4. 【从蛋壳到满天飞】JS 数据结构解析和算法实现-哈希表
  5. mysql char和varchar_MySQL char与varchar的差异
  6. json web token没有哪个成分_【分享项目】给你看看我们公司的登录认证是怎么做的?!(SpringBoot+Shiro+Token+Redis)...
  7. 左室短轴切面_【图】短轴超声切面 - 心脏解剖学 - 天山医学院
  8. 米斯特白帽培训讲义 挖掘篇
  9. Java基础语法之变量作用域、小大驼峰命名规则和java运算符(赋值、关系、三元、逻辑运算符)
  10. 加密SD卡的新型身份认证方案
  11. KandQ:单例模式的七种写法及其相关问题解析
  12. ListView中动态显示和隐藏HeaderFooter
  13. SVM支持向量和逻辑回归的decision_function用法详解
  14. mysql 的基本用法_mysql的基本用法
  15. C# 访问 带密码的access数据库
  16. java程序员面试宝典第四版pdf下载
  17. c语言小程序:打文字游戏【图形库graphics.h】
  18. Java--第2天--Html(二)
  19. java初学者学习路线
  20. 生活账本怎么记不会乱,用哪一记账工具才能让账目更清晰

热门文章

  1. ikun必学!python 画一个简单的只因
  2. bim建筑绘图计算机要求,BIM技术人才需要达到哪些要求呢?
  3. JVM 监控及诊断命令行工具概述
  4. PLL(锁相环)电路原理
  5. AD2428W手册解读之系统调试
  6. 用什么条码标签制作软件批量打印产品吊牌?
  7. 前端第五次培训(JS语法)
  8. vue 移动端PC端选用的ui框架
  9. 挑战一个月完成一篇论文初稿
  10. 自动加权GCN算法实现反洗钱识别-有数据有代码