,NSInteger就代表long,如果是32位的就代表int。 简而言之,就是如果你并不考虑位数对程序的影响或者说你觉得并不能游刃有余的操作int和long,那么NSInteger是一个很安全的选择。 那么是不是说有了NSInteger就可以不用int了呢? 什么时候用NSInteger 其实在Apple的文档或者示例代码里,int和NSInteger都会存在,大多数出现NSInteger是在函数的返回值上。 因为函数的返回值是根据参数而不断变化的,范围是不可控的,所以就会使用NSInteger作为返回值。 所以,简单说来,凡是API用到了NSInteger,那就别用int了。 reference When to use NSInteger vs. int
.#>]; 下面我们通过几个简单的例子来看看它该如何使用: 首先我们需要定义一个模型,因为示例中需要用到它 PersonModel.h import typedef NS_ENUM(NSInteger
numberOfComponents; 获取分区数 - (NSInteger)numberOfRowsInComponent:(NSInteger)component; 获取某一分区的行数 - (CGSize )rowSizeForComponent:(NSInteger)component; 获取某一分区行的尺寸 - (UIView *)viewForRow:(NSInteger)row forComponent :(NSInteger)component; 获取某一分区某一行的视图 - (void)reloadAllComponents; 重载所有分区 - (void)reloadComponent:(NSInteger ; 设置选中某一分区某一行 - (NSInteger)selectedRowInComponent:(NSInteger)component; 返回某一分区选中的行 数据源代理中的方法: - (NSInteger - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)
:(NSInteger)startRow toRow:(NSInteger)endRow forString:(NSString *)searchString NS_AVAILABLE_MAC(10_5 editedColumn; //获取编辑的行 @property (readonly) NSInteger editedRow; //获取点击的列 @property (readonly) NSInteger )column; //取消某行的选中 - (void)deselectRow:(NSInteger)row; //判断某列是否被选中 - (BOOL)isColumnSelected:(NSInteger :(NSInteger)column row:(NSInteger)row; //获取某个位置的View,用于view-base - (nullable __kindof NSView *)viewAtColumn :(NSInteger)column row:(NSInteger)row makeIfNecessary:(BOOL)makeIfNecessary; //获取某行的视图 用于view-base -
比如: NSInteger num = 3; NSInteger(^block)(NSInteger) = ^NSInteger(NSInteger n){ num = 3; NSInteger(*block)(NSInteger) = ((NSInteger (*)(NSInteger))&__WYTest__blockTest_block_impl 比如: NSInteger num = 3; NSInteger(^block)(NSInteger) = ^NSInteger(NSInteger n){ static NSInteger num = 3; NSInteger(^block)(NSInteger) = ^NSInteger(NSInteger n){ static NSInteger num3 = 300; NSInteger num4 = 3000; - (void)blockTest { NSInteger num = 30;
NSInteger count = array.count; for (NSInteger i = start; i < count; i++) { [subArray addObject , NSInteger * subIndexs, BOOL(^filter)(NSArray *subArray, NSInteger *subIndexs, void *ctx), BOOL(^handler NSInteger count = array.count; NSInteger subCount = subArray.count; for (NSInteger i = start; NSInteger maxSum = 0; dynamicProgram(@[@2,@7,@9,@3,@1], &maxSum, ^BOOL(NSArray *subArray, NSInteger * NSInteger index = subIndexs[0]; for (NSInteger i = 1; i < subArray.count; i++) {
numberOfItems; //获取按钮索引的方法 - (NSInteger)indexOfItem:(NSMenuItem *)item; - (NSInteger)indexOfItemWithTitle :(NSString *)title; - (NSInteger)indexOfItemWithTag:(NSInteger)tag; - (NSInteger)indexOfItemWithRepresentedObject ; //获取按钮的方法 - (nullable NSMenuItem *)itemAtIndex:(NSInteger)index; - (nullable NSMenuItem *)itemWithTitle )index; - (void)selectItemWithTitle:(NSString *)title; - (BOOL)selectItemWithTag:(NSInteger)tag; - (void indexOfSelectedItem; //获取已经选中的按钮tag @property (readonly) NSInteger selectedTag; //将选中的标题显示进行同步 - (void
/** 计算分页总数 @param pageSize 每页条数 @param totalCount 总条数 @return 分页数 */ + (NSInteger)getPageCountWithPageSize :(NSInteger)pageSize totalCount:(NSInteger)totalCount{ NSInteger pageCount = (totalCount + pageSize pageNum 分页 从0开始 @param pageSize 每页条数 @param data 数据 @return 分页数据 */ + (NSArray *)getPagedList:(NSInteger )pageNum pageSize:(NSInteger)pageSize data:(NSArray *)data{ NSInteger fromIndex = pageNum * pageSize ; if (fromIndex >= data.count) { return [NSMutableArray array]; } NSInteger
is_report = 1; NSInteger report_interval = 3; [_smart_player_sdk SmartPlayerSetReportDownloadSpeed :is_report report_interval:report_interval]; //录像端音频,是否转AAC后保存 NSInteger is_transcode = 1; ) handleSmartPlayerEvent:(NSInteger)nID param1:(unsigned long long)param1 param2:(unsigned long long) )SmartPlayerSetRecorderFileMaxSize:(NSInteger)size;/* * 设置录像时音频转AAC编码的开关 * * aac比较通用,sdk增加其他音频编码(比如speex 默认是0. * * 注意: 转码会增加性能消耗 */- (NSInteger)SmartPlayerSetRecorderAudioTranscodeAAC:(NSInteger)is_transcode
因为三角形是最小边几何图形 + (instancetype)geometrySourceWithVertices:(const SCNVector3 *)vertices count:(NSInteger )vectorCount floatComponents:(BOOL)floatComponents componentsPerVector:(NSInteger)componentsPerVector bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride bytesPerComponent:(NSInteger)bytesPerComponent dataOffset:(NSInteger)offset dataStride:(NSInteger)stride
)addButtonWithTitle:(NSString *)title; 返回根据按钮索引按钮标题 - (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex ; 获取按钮数量 @property(nonatomic,readonly) NSInteger numberOfButtons; 设置将某一个按钮设置为取消按钮 @property(nonatomic ) NSInteger cancelButtonIndex; 返回其他类型按钮第一个的索引值 @property(nonatomic,readonly) NSInteger firstOtherButtonIndex =isVisible) BOOL visible; 显现警告框 - (void)show; 代码模拟点击按钮消失触发方法 - (void)dismissWithClickedButtonIndex:(NSInteger )buttonIndex; 警告框已经消失时触发的方法 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger
keyEquivalentModifierMask; //Item图标 @property (nullable, strong) NSImage *image; //Item状态 @property NSInteger numberOfItems; //获取某个位置的Item - (nullable NSMenuItem *)itemAtIndex:(NSInteger)index; //获取某个Item的位置 - (NSInteger)indexOfItem:(NSMenuItem *)item; - (NSInteger)indexOfItemWithTitle:(NSString *)title; - (NSInteger )indexOfItemWithTag:(NSInteger)tag; - (NSInteger)indexOfItemWithSubmenu:(nullable NSMenu *)submenu; - (NSInteger)indexOfItemWithTarget:(nullable id)target andAction:(nullable SEL)actionSelector; //根据标题获取
:(NSInteger)section; 返回每一行的cell - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection :(NSInteger)section; 2、可选实现的方法 返回分区数(默认为1) - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView ; 返回每个分区头部的标题 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger) section; 返回每个分区的尾部标题 - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger )tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)
:(NSInteger)component; @end ! :(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component // 返回pickerView 每行的view - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row )pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component _ -(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
= UIBarStyleBlackTranslucent, UIActionSheetStyleBlackOpaque = UIBarStyleBlackOpaque, }; - (NSInteger )addButtonWithTitle:(NSString *)title; 添加一个按钮,会返回按钮的索引 - (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex ; 获取按钮标题 @property(nonatomic,readonly) NSInteger numberOfButtons; 获取按钮数量 @property(nonatomic) NSInteger cancelButtonIndex; 设置取消按钮的索引值 @property(nonatomic) NSInteger destructiveButtonIndex; 设置特殊标记 @property animated:(BOOL)animated ; - (void)showInView:(UIView *)view; - (void)dismissWithClickedButtonIndex:(NSInteger
一个简单的九宫格布局 效果 思路 利用控件的索引index计算出控件所在的行号和列号 利用列号计算控件的x值 利用行号计算控件的y值 需要设置一些固定值 布局列数: NSInteger cols = 3 ; 图片长宽 :NSInteger imageW = 100; NSInteger imageH = 100; 计算每张图片应该放在第几行和第几列 NSInteger col = index % cols ; NSInteger row = index / cols; 计算图片布局间距 CGFloat colMargin = (bgView.bounds.size.width - cols *imageW )index{ //一行的列数 NSInteger cols = 3; //图片大小 NSInteger imageW = 100; NSInteger col = index % cols; //图片所在行 NSInteger row = index / cols; CGFloat shopX = col * (imageW
geometerNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeDynamic shape:nil]; //设置力 NSInteger X = (NSInteger)(arc4random_uniform(9)) - 4; NSInteger Y = (NSInteger) (1 ); NSInteger Z = (NSInteger)(arc4random_uniform(9)) - 4; [geometerNode.physicsBody applyForce:SCNVector3Make(X, -
例如,UITableView中的如下代理方法: - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 对应到UICollectionView的代理方法中就是: - (NSInteger )collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section; - (__kindof collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger
} } Objective-C语言实现 - (NSArray *)mergeWithArray:(NSArray *)sourceArray startIndex:(NSInteger )startIndex midIndex:(NSInteger)midIndex endIndex:(NSInteger)endIndex{ i = startIndex; NSInteger j = midIndex + 1; NSInteger k = startIndex; while )startIndex endIndex:(NSInteger)endIndex{ if (startIndex < endIndex ) { NSInteger midIndex = (startIndex + endIndex)/2; NSArray *tempArray
#import <UIKit/UIKit.h> typedef void(^TextLengthBlock)(NSInteger length); typedef void(^IsTextFieldTypeBlock )(BOOL filedType); typedef NS_ENUM(NSInteger,DTextFieldType) { DTextFieldStringTypeNone = 0, NS_ASSUME_NONNULL_BEGIN @interface UITextField (Limit) /**允许输入最大字符长度*/ @property (assign, nonatomic) NSInteger maxLength; /**输入类型*/ @property (assign, nonatomic) NSInteger textFieldType; /**输入长度回调(返回输入的字符长度)*/ @ objc_setAssociatedObject(self, &DTextFieldTypeKey, @(textFieldType), OBJC_ASSOCIATION_ASSIGN); } - (NSInteger