objective-C学习 KVC
2016-01-17 15:09
465 查看
#import <Foundation/Foundation.h>
#import "Book.h"
int main(int argc,const
char * argv[]) {
@autoreleasepool {
// insert code here...
Book *book = [[Bookalloc]init];
// //键值访问
// [book setValue:@"jianguo" forKey:@"_name"]; //KVC设置
// NSString *name = [book valueForKey:@"_name"]; //KVC访问
// NSLog(@"name = %@",name);
//
// //路径访问
// Author *author = [[Author alloc]init];
// [author setValue:@"yihong" forKey:@"_name"];
// [book setValue:author forKey:@"_author"];
//
// NSString *authorName = [book valueForKeyPath:@"_author._name"]; //访问路径
// NSLog(@"authorName = %@",authorName);
//
// [book setValue:@"longfeng" forKeyPath:@"_author._name"];
// NSString *authorName2 = [book valueForKeyPath:@"_author._name"]; //访问路径
// NSLog(@"authorName2 = %@",authorName2);
//一对多
NSMutableArray *reBook = [NSMutableArrayarrayWithCapacity:3];
for (int i=0; i<3; i++) {
Book *book = [[Bookalloc]init];
NSString *names = [NSStringstringWithFormat:@"job_%d",i];
[book setValue:names
forKey:@"_name"];
[book setValue:@(12+i)forKey:@"price"];
[reBook addObject:book];
[book release];
}
NSLog(@"reBook = %@",reBook);
[book setValue:reBook
forKey:@"reArray"];
// NSArray *names = [book valueForKeyPath:@"reArray._name"];
NSArray *names = [reBook
valueForKeyPath:@"_name"];
//同上
NSLog(@"names = %@",names);
//运算 count,sum,max,min,avg
[book setValue:[NSNumbernumberWithFloat:3.4]forKey:@"price"];
float fl =[[book
valueForKey:@"price"]
floatValue];
NSLog(@"price = %f",fl);
NSString *sum = [book
valueForKeyPath:@"reArray.@sum.price"];
NSLog(@"sum = %@",sum);
NSString *max = [book
valueForKeyPath:@"reArray.@max.price"];
NSLog(@"max = %@",max);
NSString *avg = [book
valueForKeyPath:@"reArray.@avg.price"]; //平均值
NSLog(@"avg = %@",avg);
}
return 0;
}
Book.h
#import <Foundation/Foundation.h>
#import "Author.h"
@interface Book : NSObject{
@private
NSString *_name;
Author *_author;
NSArray *reArray;
float price;
}
@end
Book.m
#import "Book.h"
@implementation Book
@end
Author.h
#import <Foundation/Foundation.h>
@interface Author :
NSObject{
@private
NSString *_name;
}
@end
Author.m
#import "Author.h"
@implementation Author
@end
#import "Book.h"
int main(int argc,const
char * argv[]) {
@autoreleasepool {
// insert code here...
Book *book = [[Bookalloc]init];
// //键值访问
// [book setValue:@"jianguo" forKey:@"_name"]; //KVC设置
// NSString *name = [book valueForKey:@"_name"]; //KVC访问
// NSLog(@"name = %@",name);
//
// //路径访问
// Author *author = [[Author alloc]init];
// [author setValue:@"yihong" forKey:@"_name"];
// [book setValue:author forKey:@"_author"];
//
// NSString *authorName = [book valueForKeyPath:@"_author._name"]; //访问路径
// NSLog(@"authorName = %@",authorName);
//
// [book setValue:@"longfeng" forKeyPath:@"_author._name"];
// NSString *authorName2 = [book valueForKeyPath:@"_author._name"]; //访问路径
// NSLog(@"authorName2 = %@",authorName2);
//一对多
NSMutableArray *reBook = [NSMutableArrayarrayWithCapacity:3];
for (int i=0; i<3; i++) {
Book *book = [[Bookalloc]init];
NSString *names = [NSStringstringWithFormat:@"job_%d",i];
[book setValue:names
forKey:@"_name"];
[book setValue:@(12+i)forKey:@"price"];
[reBook addObject:book];
[book release];
}
NSLog(@"reBook = %@",reBook);
[book setValue:reBook
forKey:@"reArray"];
// NSArray *names = [book valueForKeyPath:@"reArray._name"];
NSArray *names = [reBook
valueForKeyPath:@"_name"];
//同上
NSLog(@"names = %@",names);
//运算 count,sum,max,min,avg
[book setValue:[NSNumbernumberWithFloat:3.4]forKey:@"price"];
float fl =[[book
valueForKey:@"price"]
floatValue];
NSLog(@"price = %f",fl);
NSString *sum = [book
valueForKeyPath:@"reArray.@sum.price"];
NSLog(@"sum = %@",sum);
NSString *max = [book
valueForKeyPath:@"reArray.@max.price"];
NSLog(@"max = %@",max);
NSString *avg = [book
valueForKeyPath:@"reArray.@avg.price"]; //平均值
NSLog(@"avg = %@",avg);
}
return 0;
}
Book.h
#import <Foundation/Foundation.h>
#import "Author.h"
@interface Book : NSObject{
@private
NSString *_name;
Author *_author;
NSArray *reArray;
float price;
}
@end
Book.m
#import "Book.h"
@implementation Book
@end
Author.h
#import <Foundation/Foundation.h>
@interface Author :
NSObject{
@private
NSString *_name;
}
@end
Author.m
#import "Author.h"
@implementation Author
@end
相关文章推荐
- Object-C--->Swift之(七)丰富的函数形参功能
- Objective-C Associated Objects 的实现原理
- 类 Object
- Object C 语法入门
- Scala的object和class的区别
- 【Objective-C】09-空指针和野指针
- Object-C--->Swift之(五)函数入门级讲解
- Objective-C UI之UITableView详解
- objective-c宏定义
- Objective-C 10 NSValue和NSNull使用方法
- 水晶报表设置FiledObject支持HTML格式的数据
- Android ObjectAnimator ValueAnimation学习
- IOS开发基础Object-C( 15)-- block的使用方法
- 初识Objective-C
- Non-Maximum Suppression for Object Detection in Python
- Java不可变对象(Immutable Objects)
- Android笔记--对Service、Object、Contentprovider、泛型的理解
- Java提高学习之Object(5)
- Java提高学习之Object(4)
- Java提高学习之Object(3)