对象属性操作-ios

#import <Foundation/Foundation.h>
@class Author;
@interface Books : NSObject{

 @private
    NSString *color;
    int book_id;
    NSString *box;
    Author *author;
    NSArray *relationbook;
    float price;

@public
    NSString *name;

}

@property (nonatomic) int size;

-(void) setBox:(NSString *) box;
-(NSString *) box;

-(NSString *) method;
@end
#import "Books.h"

@implementation Books

@synthesize  size=_size;

-(void) setBox:(NSString *) _box{
    box=_box;
}

-(NSString *) box{
    return box;
}

-(NSString *) method{
    return @"这个方法可以通过[],或者点语法调用";
}
@end
#import <Foundation/Foundation.h>

@interface Author : NSObject
@property (nonatomic,copy) NSString *name;

@end
#import "Author.h"

@implementation Author
@synthesize name=_name;
@end
        Books *book=[[Books alloc] init];

        //当属性为public时,可以通过指针来操作,kvo,kvc操作
        book->[email protected]"iso开发";
        NSLog(@"%@",book->name);
        [book setValue:@"iphone" forKeyPath:@"name"];
        NSLog(@"%@",[book valueForKey:@"name"]);

        //当属性为private时,可以用property和synthesize来自动生成get,set方法,然后通过点语法或者调用自动生成方法来操作
        book.size=12;
        NSLog(@"%d",book.size);
        [book setSize:14];//自动生成的set方法
        NSLog(@"%d",[book size]);//自动生成的get方法
        [book setValue:[NSNumber numberWithInt:2323] forKeyPath:@"size"];
        NSLog(@"%@",[book valueForKey:@"size"]);

        //当属性为private时,可以手动生成,然后通过点语法或者调用方法来操作
        NSString *[email protected]"书的内容";
        book.box=content;
        NSLog(@"%@",book.box);
        [book setBox:content];
         NSLog(@"%@",[book box]);
        [book setValue:@"来说" forKeyPath:@"box"];
        NSLog(@"%@",[book valueForKey:@"box"]);

        //声明普通方法可以通过点语法调用或者[]调用
        NSLog(@"%@",[book method]);
        NSLog(@"%@",book.method);

        //当属性为private时,可以通过kvo,kvc,即下面方式访问
        //-----属性为普通类型操作
        [book setValue:@"android开发" forKey:@"name"];
        [book setValue:@"whilte" forKey:@"color"];
        NSLog(@"%@:%@",[book valueForKey:@"name"],[book valueForKey:@"color"]);

        //----属性为自定义对象操作1--对象
        Author *author=[[Author alloc] init];
        [email protected]"caicai";
        [book setValue:author forKey:@"author"];
        Author *author2=[book valueForKey:@"author"];
        NSLog(@"%@",author2.name);

        //----属性为自定义对象操作2--对象--路径访问
        [book setValue:@"caitou" forKeyPath:@"author.name"];
        NSLog(@"%@",[book valueForKeyPath:@"author.name"]);

        //----属性为自定义对象操作2--对象数组--路径访问
        NSMutableArray *relationBook=[NSMutableArray arrayWithCapacity:3];
        for (int i=0; i<3; i++) {
            Books *book=[[Books alloc] init];
            NSString *name=[NSString stringWithFormat:@"job_%d",i];
            [book setValue:name forKeyPath:@"name"];
            [book setValue:@(12+i) forKeyPath:@"price"];
            [relationBook addObject:book];
        }
        [book setValue:relationBook forKeyPath:@"relationbook"];
        NSArray *names=[book valueForKeyPath:@"relationbook.name"];
        NSLog(@"%@",names);
        //kvc简单运算 sum max avg count
         NSLog(@"%@",[book valueForKeyPath:@"[email protected]"]);
         NSLog(@"%@",[book valueForKeyPath:@"[email protected]"]);
        NSLog(@"%@",[book valueForKeyPath:@"[email protected]"]);
        NSLog(@"%@",[book valueForKeyPath:@"[email protected]"]);

对象属性操作-ios,布布扣,bubuko.com

时间: 2024-12-29 23:25:40

对象属性操作-ios的相关文章

7.1.6 DOM对象属性操作

prop()  removeProp() $(function(){ //js对input单选按钮checked的默认设置 //console.log($('input[type=radio]').attr('checked')); //check var oInput=document.getElementsByTagName('input')[1]; console.dir(oInput); console.log($('input[type=radio]').eq(0).prop('che

09.11 jquery04 效果 基本 滑动滑出 淡入淡出 自定义动画 动画操作 工具 浏览器 对象和属性操作核心

# 效果 ### 基本 (width/height/opacity) * show() * hide() * toggle() ### 滑动滑出 (height) * slideUp()       隐藏 * slideDown()  显示 * slideToggle() ### 淡入淡出 * fadeOut()    隐藏 * fadeIn()      显示 * fadeToggle() * fadeTo() 不占用位置 消失之后后面的自动向上移动 ### 自定义动画 * animate(p

jQuery - 02. 样式表属性操作/类操作、动画、显示隐藏、滑入、淡入、停止动画、节点操作、添加对象、清空节点

样式表属性操作.css $("div").css({'width':100,'height':100,'background':'red'}); $("div").css("background","pink"); 类操作 .addClass添加类   $("div").addClass("class"); .removeClass删除类   $("div).removeCla

IOS遍历未知对象属性、函数

转:http://blog.csdn.net/chaoyuan899/article/details/24399761 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

了解JavaScript 对象的属性操作

提起操作, 很多人都会想到我们学习过程中最经常做的操作, 就是对数据库进行增, 删, 改, 查, 既然提到这个, 那么对于对象的属性操作也不例外, 基本上可以说也是这几个操作. JS中对象的属性标签 writable(可写), enumerable(可枚举), configurable(可配置), value(值), get/set(get, set方法). 这几个标签会在后面逐渐丰富, 这里先简单介绍下. 属性的读写 属性的读写在介绍对象的时候基本已经说的差不多了, 这里补充和总结一下. 这里

python类内init外声明的属性与init内声明的对象属性的访问和操作区别

python类内init外声明的属性与init内声明的对象属性的访问和操作区别(面试题) 1.在ipython中输入以下代码,其输出会是什么? In [1]: class ClassOut: ...: out_mem = 'out_mem' ...: print out_mem ...: def __init__(self): ...: inner_mem = 'inner_mem' ...: self.inner_mem = 'self.inner_mem' ...: self._inner_

深入理解javascript对象系列第二篇——属性操作

× 目录 [1]查询 [2]设置 [3]删除[4]继承 前面的话 对于对象来说,属性操作是绕不开的话题.类似于“增删改查”的基本操作,属性操作分为属性查询.属性设置.属性删除,还包括属性继承.本文是对象系列的第二篇——属性操作 属性查询 属性查询一般有两种方法,包括点运算符和方括号运算符 var o = { p: 'Hello World' }; o.p // "Hello World" o['p'] // "Hello World" [注意]变量中可以存在中文,因

IOS中将对象属性列表归档成一个plist文件中

归档步骤: 1.将一个NSDictionary对象归档到一个plist属性列表中 <1> 首先要将数据封装成字典: NSMutableDictionary * dict = [NSMutableDctionary dictionary]; [dict setObject:@"烟灰" forKey:@"name"]; [dict setObject:@"1234567" forKey:@"phoneNumber"];

JavaScript对象之属性操作

在js对象中,我们可以对对象属性进行操作. 上图的要点为:for-in会把原型链上的可枚举属性也列出来. 上图的要点为:可以使用逻辑运算符&&进行层层查找对象是否为undefined,从而在赋值过程中不报错. 上图的要点为: 1.delete不存在的属性,依旧返回true. 2.Object.getOwnPropertyDescriptor()是返回某个对象的描述对象,这有点像Java的反射类. 3.Object.prototype不可配置. 上图的要点为: 1.delete全局变量和局部