A, AFNetworking POST plain string
Modify the location AFURLRequestSerialization
before fixing
NSString * AFQueryStringFromParameters(NSDictionary *parameters) { NSMutableArray *mutablePairs = [NSMutableArray array]; for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) { [mutablePairs addObject:[pair URLEncodedStringValue]]; } return [mutablePairs componentsJoinedByString:@"&"]; }
Modified
NSString * AFQueryStringFromParameters(NSDictionary *parameters) { if ([parameters isKindOfClass:[NSString class]]) return (NSString *)parameters; NSMutableArray *mutablePairs = [NSMutableArray array]; for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) { [mutablePairs addObject:[pair URLEncodedStringValue]]; } return [mutablePairs componentsJoinedByString:@"&"]; }
Second, find the same plurality of sub-strings of a string
NSString *str = @"14 28 62 24 3 46 99 73 10 51 0 95 34 58 50 33 56 23 97 82 83 8 94 1 17 7 19 96 9 54"; NSString *searchString = @"1"; NSRange searchRange = NSMakeRange(0, [str length]); NSRange range; while ((range = [str rangeOfString:searchString options:0 range:searchRange]).location != NSNotFound) { NSLog(@"%@",NSStringFromRange(range)); searchRange = NSMakeRange(NSMaxRange(range), [str length] - NSMaxRange(range)); }
Three, UITextField limit the number of words
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSInteger existedLength = textField.text.length; NSInteger selectedLength = range.length; NSInteger replaceLength = string.length; if (existedLength - selectedLength + replaceLength > 4) return NO; return YES; }
Fourth, the enumeration of array elements
[array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { }];
Fifth, to add pictures UILabel
NSTextAttachment *attachment = [[NSTextAttachment alloc] init]; attachment.image = [UIImage imageNamed:@"image"]; attachment.bounds = CGRectMake(0, 0, 15, 15); NSMutableAttributedString *string = [[NSMutableAttributedString alloc] init]; [string appendAttributedString:[NSAttributedString attributedStringWithAttachment:attachment]]; [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"string"]]; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 30)]; label.attributedText = string; [self.view addSubview:label];
Sixth, adaptive screen size
view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
Seven, to determine whether to push open
BOOL registered = [[UIApplication sharedApplication] isRegisteredForRemoteNotifications];
Eight, UIView turn UIImage
- (UIImage *)viewToImage:(UIView *)view { UIImage *image = [[UIImage alloc] init]; UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, [UIScreen mainScreen].scale);// 区域 透明 屏幕密度 [view.layer renderInContext:UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
Nine, jump App Store
NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=xxx"]; [[UIApplication sharedApplication] openURL:url];
Ten, UIButton vertical layout
[button setTitleEdgeInsets:UIEdgeInsetsMake(40 ,-button.imageView.frame.size.width, 0, 0)]; [button setImageEdgeInsets:UIEdgeInsetsMake(-20, 0, 0, -button.titleLabel.bounds.size.width)];