当前位置:  编程技术>移动开发
本页文章导读:
    ▪闹钟的设立        闹钟的设置 package com.mct.alarmmanagerdemo;import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.os.Bundle;import android.os.Vibrator;import android.view.Vi.........
    ▪ 五 2.Foundation1-常用结构体        5 2.Foundation1-常用结构体 5 2.Foundation1-常用结构体   NSRange 1)、在Foundation/NSRange.h中对NSRanger的定义          Typedef  struct  _NSRange{                    NSUInteger  location;        .........
    ▪ 4.4OC10-内存管理2-set步骤的内存管理       4.4OC10-内存管理2-set方法的内存管理 4.4OC10-内存管理2-set方法的内存管理   例一: main.m  // //  main.m //  OC10-内存管理2-set方法的内存管理 // //  Created by qwz on 13-12-9. //  Copyright (c) 2013年 renhe..........

[1]闹钟的设立
    来源: 互联网  发布时间: 2014-02-18
闹钟的设置
package com.mct.alarmmanagerdemo;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;

public class AlarmActivity extends Activity implements OnClickListener {
private Vibrator vb;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
/* 设置为无标题栏 */
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.alarm_activity_layout);
findViewById(R.id.m_close).setOnClickListener(this);
findViewById(R.id.m_delay).setOnClickListener(this);


// 调用震动
vb = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = { 500, 10, 300, 50 };
// 第一个参数表示震动
vb.vibrate(pattern, 2);

}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.m_close:
vb.cancel();

finish();
break;
case R.id.m_delay:
vb.cancel();

finish();
break;
}

}

}

    
[2] 五 2.Foundation1-常用结构体
    来源: 互联网  发布时间: 2014-02-18
5 2.Foundation1-常用结构体
5 2.Foundation1-常用结构体

 

NSRange

1)、在Foundation/NSRange.h中对NSRanger的定义

         Typedef  struct  _NSRange{

                   NSUInteger  location;

                   NSUInteger  length;

}  NSRange;

//typedef unsigned long NSUInteger

 

2)、这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。

3)、location表示该范围的起始位置

4)、length表示该范围内所含的元素个数

5)、比如“I  love  objective-c”中的“obj”可以用location为7,length为3的范围来表示

6)、

 

 

列一:

main.m

 //

//  main.m

//  Foundation1 - 结构体

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

void test(){

    //定义了Date这个结构体类型

    struct Date{

        int year;

        int month;

        int day;

    };

    //定义结构变量

    struct Date d = {2013, 4, 5};

    d.day = 6;

}

 

void test1(){

    typedefstruct Date{

        int year;

        int month;

        int day;

    } myDate;

    

    myDate d = {2013, 4, 5};

}

 

void range(){

    NSRange range = NSMakeRange(8, 10);

    NSLog(@"location:%zi", range.location);

    NSLog(@"length:%zi", range.length);

    

    NSString *str = NSStringFromRange(range);

    NSLog(@"%@", str);

    //NSLog(@"%@", range); 错误做法,%@代表着OC对象

}

 

int main(int argc, const char * argv[])

{

    

    @autoreleasepool {

        range();

    }

    return 0;

}

 

运行结果:

2013-12-11 09:37:48.757 OC10-内存管理2-set方法的内存管理[319:403] location:8

2013-12-11 09:37:48.762 OC10-内存管理2-set方法的内存管理[319:403] length:10

2013-12-11 09:37:48.763 OC10-内存管理2-set方法的内存管理[319:403] {8, 10}

 

 

 NSPoint

1)、在Foundation/NSGeometry.h中对NSPoint的定义 typedef  CGPoint  NSPoint;

2)、在CoreGraphics/CGGeometry.h中对CGPoint的相关定义

Struct  CGPoint{

         CGFloat  x;

         CGFloat  y;

};

Typedef  struct  CGPoint  CGPoint;

// #define  CGFLOAT_TYPE  double

// typedef  CGFLOAT_TYPE  CGFloat;

3)、NSPoint 和 CGPoint是等价的

4)、这个结构体代表的是平面中的一个点(x, y)

列二:

main.m

 //

//  main.m

//  Foundation1 - 结构体

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

 

void point(){

    //NSPoint p;

    CGPoint p;

    p.x = 1;

    p.y = 10;

    

    p = NSMakePoint(10, 9);

    //常见的方式

    p = CGPointMake(8, 9);

    

    NSString *str = NSStringFromPoint(p);

    NSLog(@"%@", str);

}

 

int main(int argc, const char * argv[])

{

    

    @autoreleasepool 

        point();

    }

    return 0;

}

 

 

 

NSSize

1)、在Foundation/NSGeometry.h中对NSSize的定义 typedef CGSize NSSize;

2)、在CoreGraphics/CGGeometry.h中对CGSize的相关定义

 

3)、这个结构体用来存储宽度和高度

4)、可以利用NSMakeSize()和CGSizeMake()创建CGSize

例三:

 

 main.m

 //

//  main.m

//  Foundation1 - 结构体

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

void size(){

    NSSize size;

    size.width = 100;

    size.height = 90;

    

    size = NSMakeSize(90, 80);

    size = CGSizeMake(10, 8);

    

    NSString *str = NSStringFromSize(size);

    NSLog(@"%@", str);

    

}

 

int main(int argc, const char * argv[])

{

    

    @autoreleasepool {

        size();

    }

    return 0;

}

 

 

NSRect

 

1) 在Foundation/NSGeometry.h中对NSRect的定义 typedef  CGRect  NSRect;

 

2) 在CoreGraphics/CGGeometry.h中对CGRect的相关定义

 

Struct  CGRect{

 

         CGPoint  origin; //矩形左上角坐标

 

         CGSize   size; //矩形的宽度和高度

 

};

 

typedef  struct  CGRect  CGRect;

 

3) 这个结构体用来存储宽度和高度

 

4)可以利用NSMakeRect() 和 CGRectMake() 创建CGRect

 

 main.m

 //

//  main.m

//  Foundation1 - 结构体

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

#import <Foundation/Foundation.h>

 

void rect(){

    NSRect rect; // CGRect rect;

    rect.origin.x = 10;

    rect.origin.y = 11;

    

    rect.size.width = 100;

    rect.size.height = 90;

    

    rect = NSMakeRect(10, 10, 80, 80);

    rect = CGRectMake(8, 9, 10, 12);

    

    NSString *str = NSStringFromRect(rect);

    NSLog(@"%@", str);

    

}

 

int main(int argc, const char * argv[])

{

    @autoreleasepool {

        rect();

    }

    return 0;

}

 

 

 


    
[3] 4.4OC10-内存管理2-set步骤的内存管理
    来源: 互联网  发布时间: 2014-02-18
4.4OC10-内存管理2-set方法的内存管理

4.4OC10-内存管理2-set方法的内存管理

 

例一:

main.m

 //

//  main.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Student.h"

#import "Book.h"

 

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

        Student *stu = [[Student alloc] initWithAge:29];

        Book *book = [[Book alloc] initWithPrice:3.5];

        

        [book release];

        [stu release];

    }

    return 0;

}

 

Student.h

 //

//  Student.h

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Book.h"

 

@interface Student : NSObject

 

@propertyint age;

 

- (id)initWithAge:(int)age;

 

@propertyBook *book;

@end

 

Student.m
 //

//  Student.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Student.h"

 

@implementation Student

 

#pragma mark 构造方法

- (id)initWithAge:(int)age{

    if( self = [super init]){

        _age = age;

    }

    returnself;

}

 

#pragma mark 回收对象

- (void)dealloc{

    NSLog(@"student:%i 被销毁了", _age);

    [super release];

}

 

@end

 

 Book.h
 //

//  Book.h

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface Book : NSObject

@propertyfloat price; //价格

 

- (id)initWithPrice:(float)price;

 

@end

 

 Book.m
 //

//  Book.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Book.h"

 

@implementation Book

 

- (id)initWithPrice:(float)price{

    if (self = [super init]){

        _price = price;

    }

    returnself;

}

 

- (void)dealloc{

    NSLog(@"book:%f 被销毁了", _price);

    [super dealloc];

}

 

@end

运行结果

2013-12-09 17:04:29.679 OC10-内存管理2-set方法的内存管理[634:403] book:3.500000 被销毁了

2013-12-09 17:04:29.703 OC10-内存管理2-set方法的内存管理[634:403] student:29 被销毁了

 ---------------------------------
----------------------------------
例二:
main.m  

//

//  main.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by qwz on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Student.h"

#import "Book.h"

 

void test(Student *stu){

    //book:1

    Book *book = [[Book alloc] initWithPrice:3.5];

    

    //book:2

    stu.book = book;

    

    //book:1

    [book release];

    

    Book *book2 = [[Book alloc] initWithPrice:4.5];

    //book2:2

    stu.book = book2;

    //book2:1

    [book2 release];

    

}

 

void test1(Student *stu){

    [stu readBook];

}

 

int main(int argc, const char * argv[])

{

 

    @autoreleasepool {

        //stu:1

        Student *stu = [[Student alloc] initWithAge:29];

        

        //stu:1

        //book:1

        //book2:1

        test(stu);

        

        //stu:1

        //book:1

        //book2:1

        test1(stu);

        

        //stu:0

        //book:0

        [stu release];

    }

    return 0;

}

 

Student.h
 

//

//  Student.h

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

#import "Book.h"

 

@interface Student : NSObject{

    Book *_book;

}

 

@propertyint age;

 

- (id)initWithAge:(int)age;

 

@propertyBook *book;

 

- (void)readBook;

 

@end

 

Student.m

 

//

//  Student.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Student.h"

 

@implementation Student

 

#pragma mark 构造方法

- (id)initWithAge:(int)age{

    if( self = [super init]){

        _age = age;

    }

    returnself;

}

 

#pragma mark 回收对象

- (void)dealloc{

    //释放对象

    [_book release];

    //[self.book release];

    NSLog(@"student:%i 被销毁了", _age);

    [super dealloc];

}

 

#pragma mark - getter和setter方法

//@synthesize book = _book;

//如果自己手动实现了getter和setter,xcode就不会自动生成@synthesize

//也就不会自动生成_book

//getter和setter的默认实现

- (void)setBook:(Book *)book{

    if(_book != book){

        //先释放旧的成员变量

        [_book release];

        //在retain新传进来的对象

        _book = [book retain];

    }

}

 

- (Book *)book{

    return  _book;

}

 

#pragma mark - 公共方法

#pragma mark 读书

- (void)readBook{

    NSLog(@"当前读的书是:%f", _book.price);

}

 

@end

 

Book.h

 

//

//  Book.h

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import <Foundation/Foundation.h>

 

@interface Book : NSObject

@propertyfloat price; //价格

 

- (id)initWithPrice:(float)price;

 

@end

 

Book.m 

 

//

//  Book.m

//  OC10-内存管理2-set方法的内存管理

//

//  Created by liuyes on 13-12-9.

//  Copyright (c) 2013年 renhe. All rights reserved.

//

 

#import "Book.h"

 

@implementation Book

 

- (id)initWithPrice:(float)price{

    if (self = [super init]){

        _price = price;

    }

    returnself;

}

 

- (void)dealloc{

    NSLog(@"book:%f 被销毁了", _price);

    [super dealloc];

}

 

@end

 

 

 

 

 

 

 

 

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
.net/c#/asp.net iis7站长之家
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3