1.NSString [a hasPrefix: ] [a hasSuffix:] 判断开头和结束是否包含....
2.数组排序(对象属性)
NSArray *emparray=[empArr sortedArrayUsingComparator:^NSComparisonResult(TXLInfo * obj1, TXLInfo * obj2) {
return [[NSNumber numberWithFloat:[obj1.xmpxm floatValue]] compare:[NSNumber numberWithFloat:[obj2.xmpxm floatValue]]];
}];
3.上传到AppStore时报错“Your binary is not optimized for iPhone 5” (ITMS-90096) when submitting
在工程里的Images.xcassets添加并设置LaunchImage对解决ERROR ITMS-90096根本不会起到任何作用,需要单独添加针对iPhone 5的载入图片。关键点有三项:①图片的名称必须叫Default-568.png。②必须把图片放在工程的根目录下。③图片尺寸必须是320*568。在info.plist中添加数组->字典:
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageName</key>
<string>Default-568</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
</array>
4.
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
//要监控网络连接状态,必须要先调用单例的startMonitoring方法
[manager startMonitoring];
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
//status:
//AFNetworkReachabilityStatusUnknown = -1, 未知
//AFNetworkReachabilityStatusNotReachable = 0, 未连接
//AFNetworkReachabilityStatusReachableViaWWAN = 1, 3G
//AFNetworkReachabilityStatusReachableViaWiFi = 2, 无线连接
NSLog(
@"%d"
, status);
}];
5.苹果加急审核网址:https://developer.apple.com/contact/app-store/?topic=expedite
6.提交ipa包后在iTunes看不到,可能是因为plist中没有添加相关权限
7.关闭controller左滑返回上一页手势
-(void)viewDidAppear:(BOOL)animated{ //关闭导航栏交互能力 self.navigationController.interactivePopGestureRecognizer.enabled = NO; } -(void)viewDidDisappear:(BOOL)animated{ //关闭导航栏交互能力 self.navigationController.interactivePopGestureRecognizer.enabled = YES; } |
8.根据bundleId获取更新信息:
http://itunes.apple.com/cn/lookup?bundleId=xxx
9.获取设备的UDID
#import <AdSupport/AdSupport.h>
NSString *advertisingId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
10.从数组中筛选出相同属性的对象
NSPredicate * predicateTwo = [NSPredicate predicateWithFormat:@"%K CONTAINS[c] %@",@"userName",username];
NSArray *personInfo = [personArray filteredArrayUsingPredicate:predicateTwo];
11.在xcode9 ios11环境下,uitableview设置模式UITableViewStyleGrouped,设置头部尾部高度,代理方法要成对调用,否则不会生效
eg:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 0.01;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return [[UIView alloc] initWithFrame:CGRectZero];
}
12.计算字符串长度
- (int)stringLength:(NSString *)string
{
float number = 0.0;
for (int index = 0; index < [string length]; index++)
{
NSString *character = [string substringWithRange:NSMakeRange(index, 1)];
if ([character lengthOfBytesUsingEncoding:NSUTF8StringEncoding] == 3)
{
number++;
}
else
{
number = number + 0.5;
}
}
return ceil(number);
}
13.获取的设备uuid在app更新,卸载时候会改变,所以要自己把第一次生成的uuid保存,备用
14.NSString * encodingString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//编码
NSString *str = [model.album_name stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//解码
15.navigationbar设置背景图片水平重复问题
UIImage *bgImage = [UIImageFromMainViewModule(@"nav_bar_bg.png") resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch];
[theNav.navigationBar setBackgroundImage:bgImage forBarMetrics:UIBarMetricsDefault];
16.适配屏幕
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
#define kScreenWidthRatio (kScreenWidth/375.0)
#define kScreenHeightRatio (kScreenHeight/667.0)
#define AdaptedWidthValue(x) (x*kScreenWidthRatio)
#define AdaptedHeightValue(x) (x*kScreenHeightRatio)
#define AdaptedFontSizeValue(x) (x*(kScreenWidthRatio+kScreenHeightRatio)/2.0)