摘要:子龙山人:http://www.cnblogs.com/andyque/archive/2011/05/07/2039481.html这篇教程是Ray Wenderlich的《如何使用cocos2d制作基于tiled地图的游戏》系列教程的后续。如果你还没有看过前面两部分的教程,可以在我的博客上找到另外两篇我翻译Ray的教程。 在第二部分教程中,Ray教大家如何在地图中制作可碰撞的区域,如何使用tile属性,如何制作可以拾取的物品以及如何动态修改地图、如何使用“Heads up display”来显示分数。 在这个教程中,我们将加入敌人,这样的话,你的忍者就可以向它们扔飞镖啦,同时还增加了胜..
阅读全文
摘要:/** cocos2d for iPhone: http://www.cocos2d-iphone.org** Copyright (c) 2008-2010 Ricardo Quesada* Copyright (c) 2011 Zynga Inc.** Permission is hereby granted, free of charge, to any person obtaining a copy* of this software and associated documentation files (the "Software"), to deal* in t
阅读全文
摘要:http://magicalboy.com/ios_gps_location/在 iOS 平台上使用CLLocationManager获取 GPS 位置信息,比如经度,纬度,海拔高度等是很简单的事情。步骤加入 CoreLocation.framework , 导入头文件。#import <CoreLocation/CoreLocation.h>在 AppDelegate.m 中加入检测是否启用位置服务功能。CLLocationManager *manager = [[CLLocationManager alloc] init];if (manager.locationService
阅读全文
摘要:nib是NeXT Interface Builder的缩写。xib 是xml nib文件,于2007年 Leopard (and Xcode 3.0) 版本中更新。以源码方式打开查看:< ?xml version="1.0" encoding="UTF-8"?>78410F2521……相同点:NIB 和 XIB 都是 Interface Builder 的图形界面设计文档。Interface Builder 把窗口、菜单栏以及窗口上的各种控件的对象都“冻结”在了一个 NIB文档里面了;程序运行时,这些对象将会“苏醒”。不同点:NIB为二进制文
阅读全文
摘要:Do anyone tried GLPaint sample application with OpenGl ES 2.0 ? I had a try an got errors with glMatrixMode(), glPointSize(), glOrthof(), glTexEnvf() methods .All of those errors are because the code uses functions and constants that wereremovedin OpenGL ES 2.0. If you want to make that app use Open
阅读全文
摘要:BYCircleTextureFactory.h// // BYCircleTextureFactory.h // SuperBalance1.1 // // Created by Bruce Yang on 8/1/11. // Copyright 2011 Home. All rights reserved. // #import "cocos2d.h" #import "GameConfig.h" #import "CirclePointsGenerator.h" #import "BYTextureDef.h&quo
阅读全文
摘要:转载自:http://blog.csdn.net/yang3wei/article/details/7375013参考自:http://zhidao.baidu.com/question/146717333//// LineIntersect.h// HungryBear//// Created by Bruce Yang on 12-3-12.// Copyright (c) 2012年 EricGameStudio. All rights reserved.//#import <cstdio>#import "Box2D.h"#define zero(x)
阅读全文
摘要:转自:http://blog.csdn.net/yang3wei/article/details/7521298主要是注意所使用的数据类型。之前用的是float,出现了一些意外,而且花费了我不少时间来反复验证、推导,做了很多的无用功,而且,反复推导得出来的计算步骤并没有什么不牢靠的地方。然后计算得到的结果却是让人如此之不省心,梗的我闷得慌。今天上午发来了一贴,多位朋友各抒己见,总算是让我发现了一些不足的地方,首当其冲的是一个变量弄错了,导致大批的计算失准。后来修正了这个bug以后,还是会出现计算不精确的地方。再后来便将涉及的所有成员变量由float 纠正为 double 类型,计算精度果然得到
阅读全文
摘要:双递归双递归过程在过程体内两次引用其自身;而树形递归过程的计算则在过程体中分裂为 N 路分支,各自引用自身以完成运算,最后汇总得出过程本身的计算结果。可以想见,当 N 等于 2 时,那树形递归过程也是个双递归过程,但双递归过程也可能是个树形递归过程吗?这个就不一定,还是得看具体的计算进展方式了。比如 Ackermann 函数。ackermann(X, Y) ->if ->Y == 0 ->0;X == 0 ->2 * Y;Y == 1 ->2;true ->f(X - 1, f(X, Y - 1))end.从 ackermann 函数的过程定义来看,很明显的
阅读全文
摘要:1、递归。递归真是个好东西,解法一目了然。#include<stdio.h>#define N 8int l[14];int r[14];int q[N];int col[N];static int cnt = 0;void try(int i){int j;for(j=0; j<N; j++){if(l[i+j] == 0 && r[i-j+7] ==0 && col[j] == 0){l[i+j]=1;r[i-j+7] =1;col[j] = 1;q[i] = j; if(i+1 == N){++cnt;// return;}else{tr
阅读全文
摘要:1、递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。关键要抓住的是:(1)递归出口(2)地推逐步向出口逼近2、具体实例1。汉诺塔这是递归的超经典的例子,几乎每本程序设计书上谈到递归都会介绍。具体情景不再赘述。以我上述的方法观之:(1)递归的出口在于disk数为一的时候(2)向出口逼近:如果不是一,是n ,则我们先挪动上面n-1块disk,等上面挪完,即递归返回的时候,我们挪动最底下的disk。仅仅如此,一个貌似十分复杂的问题就解决了,因为挪动那n-1块disk的时候,会
阅读全文
摘要:有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。public class Ant {private static int LONG = 27;private int[] a = { 3, 7, 11, 17, 23 };private int min = 0, max = 0;public void go
阅读全文
摘要:1,游戏由玩家和庄家(即赌场的发牌员)对玩,看谁的牌面点数更靠近21点。但如果超过了21点,则称为“爆掉”,算输。其中花牌(J,Q,K)都算10点,A可以算1点,也可以算11点,看哪种情况更有利。玩家之间不做比较。2,游戏开始时,所有玩家和庄家各拿两张牌,一般来说,是玩家两张牌牌面朝上,庄家一张牌面朝上,一张牌面朝下。3,两张牌的点数,肯定介于2到21点之间。21点只可能是一张10(包括J,Q,K,下同)和一张A,这叫“天成(BlackJack,以下简称BJ)”,除非庄家也拿到了BJ,不然赢一倍半的赌注。4,玩家在游戏中有如下选择:(1)要牌,直到他(或她,下同)认为自己的牌面离21点足够近了
阅读全文
摘要:整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。如6的整数划分为最大数 6 65 5 + 14 4 + 2, 4 + 1 + 13 3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 12 2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 + 11 1 + 1 + 1 + 1 + 1 + 1共11种。下面介绍一种通过递归方法得到一个正整数的划分数。递归函数的声明为 int split(int n, int m);其中n为要划...
阅读全文
摘要:http://www.1000phone.net/thread-7517-1-1.html程序截图: 我收到许多读者来信说,能不能写一个教程,关于如何在cocos2d里面使用touch事件来拖拽精灵(sprite)。既然你们这么要求,我就满足你们啦! 在这个教程中,你将学到下列内容:使用touch事件拖拽精灵的基本方法如何通过touch事件来滚动视图本身如何方便地计算坐标如何通过识别手势来实现一些更cool的效果 为了使事件变得有趣,你将要移动一些非常可爱的动画图片,它是我可爱的妻子创作的,背景则是由gwebstock创建。 这个教程假设你已经有一些基本的cocos2d的知识,同时已经...
阅读全文
摘要:http://danal.blog.51cto.com/3353275/655317NSString *executableFile = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleExecutableKey];NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString *)kCFBundleVersionKey];还有其它很多信息可由infoDictionary获得,以下是官方文档里的
阅读全文
摘要:最近遇到个需求,需要当手指向上划动时视图向上移动显示出隐藏在屏幕下方的菜单,这时整个视图的bounds需要大于屏幕大小,隐藏菜单才能接收到Touch事件,但是发现无论在loadView里初始化view的bounds为多大,最后它会自动变为屏幕大小。于是只能在swipe操作中处理了。但是如果直接self.view.bounds = aBounds的话,会看到视图是以中心点进行伸缩的,而我需要的是以最上方为基点进行伸缩,解决方法是改变layer的anchorPoint,然后将layer的位置固定。anchorPoint是CALayer的定位点,也就是设置position时对准的点,默认的ancho
阅读全文
摘要:@interface GameLayer : CCLayer{float lastScale;}@end@implementation GameLayer-(id) init{ if ((self = [super init] )) {lastScale = 1.f; UIPinchGestureRecognizer *gestureRecognizer = [[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinchFrom:)] autorelease]; [[[CC...
阅读全文
摘要:原文:子山龙人 http://www.cnblogs.com/andyque/archive/2011/04/11/2012852.html原文链接地址:http://www.raywenderlich.com/1186/collisions-and-collectables-how-to-make-a-tile-based-game-with-cocos2d-part-2程序截图:这篇教程是《如何使用cocos2d制作基于tiled地图的游戏》的第二部分。在上一个教程中,我们创建了一个简单的基于tiled地图的游戏,里面有一个忍者在沙漠里寻找可口的西瓜! 在第一部分教程中,我们介绍了如何基.
阅读全文
摘要:原文:子山龙人 http://www.cnblogs.com/andyque/archive/2011/04/11/2012852.html英文:原文链接地址:http://www.raywenderlich.com/1163/how-to-make-a-tile-based-game-with-cocos2d在这个2部分的教程中,我将会教大家如何使用cocos2d来做一个基于tile地图的游戏,当然还有Tiled地图编辑器。(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战、冒险岛、吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏。-_- 在第一部.
阅读全文
摘要:Please help me out.I am able to build the code after many changes but it crashes in simulator.-(id) initFromNormalSprite:(CCNode<CCRGBAProtocol>*)normalSpriteselectedSprite:(CCNode<CCRGBAProtocol>*)selectedSpriteactiveSprite:(CCNode<CCRGBAProtocol>*)activeSpritedisabledSprite:(CCNo
阅读全文
摘要:本文由泰然翻译组出品,转载请注明出处!http://article.ityran.com/archives/281翻译人员:jesse,TXX_糖炒小虾,无敌葫芦娃 校对:Iven接着上一篇教程的工程,我们编译,并运行。输入昵称和密码然后按下start键。我使用了 “MisterX” and “TopSecret”。如果服务器的通讯运行良好“Connecting”会一闪而过,然后主界面出现。相反,如果你得到了错误的消息,那就会出现些解决故障的小贴士:请确保MAMP正在运行。在Apache Server和MySQL Server前应该会出现绿灯。请确保你可以使用你的浏览器连接服务器的ip地址。同
阅读全文
摘要:本文由泰然翻译组出品,转载请注明出处!http://article.ityran.com/archives/281翻译人员:jesse,TXX_糖炒小虾,无敌葫芦娃 校对:Iven生成APP ID和SSL证书登录iOS Provisioning Portal页面首先,我们将要新建一个App ID. 每一个推送APP都需要一个唯一的对应的App ID,推送的消息将被送达到这个ID对应的APP应用中(这里不能使用通配ID)。在iOS Provisioning Portal页面左侧选择App IDs,然后点击New App ID的按钮。在例子中,对应的表单项填的值如下:·Descripti
阅读全文
摘要:本文由泰然教程组新人1V1计划出品,http://article.ityran.com/archives/194翻译人员:晓丫 &小样,Sharyu,大菠萝,outman;校对人员:子龙山人,Iven,sile,TXX_糖炒小虾学习怎样为你的iphone程序添加推送通知这是由iOS教程组成员Matthijs Hollemans撰写的一篇有关推送通知的教程,Matthijs Hollemans是一位有着丰富经验的iOS开发者和设计者。在iOS系统里,应用程序在后台运行的时候有很多事情都做不了(译者注:由于沙盒限制)。应用程序只允许在这个“沙盒”内做一些操作,这样可以减缓电池的消耗,延长电
阅读全文
摘要:本文由泰然教程组 jesse 原创,版权所有,转载请注明原出处,并通知原作者!!!原文地址:http://jessex.me/?p=181本文主要是阐述一下Block中如何的使用外部变量以及block本身的内存管理。先定义一个block变量,作为后续的例子中使用:typedefvoid(^BlockCC)(void);BlockCC _block;1、block中引用外部变量block中可以直接使用外部的变量,比如int number =1;_block =^(){NSLog(@"number %d", number);};那么实际上,在block生成的时候,是会把numb
阅读全文
摘要:转自:http://article.ityran.com/archives/1024翻译:蓝羽, benna , outman校对:Sharyu还记得当索尼克开始潜水时,音乐变得戏剧化的情景吗?很抱歉引起那些焦虑的回忆,但是这是动态背景音乐很好的一个例子。我将展示如何根据游戏的动作增加无缝情绪变化的音乐。WordSurge-一个强度上升的例子这是我上个游戏WordSurge的做法 随着玩家形势变得来越危险,音乐也逐渐变得激烈。请观看下面的视频用苹果的Garage Band打造你自己的音乐在你做任何事以前,你需要一些音乐。 打开Garage Bandand,引导你内心的铁斯托吧。注:铁斯托,国际
阅读全文
摘要:原文:http://article.ityran.com/archives/841本文由 大侠自来也(泰然翻译组)翻译,校对:Iven,yuezang这篇文章是这个关于音频系列的第三篇文章。如果你还需要对音频不是很了解,可以先看看这个系列教程的第一篇和第二篇。到目前为止,我们这个系列已经讨论了文件格式和数据格式的区别,还有怎么样在Mac下面转换和录制音频文件。现在我们将会进行比较有趣的部分——在你的iphone上面播放音频!在Mac上面有许多种方式播放音频——System Sound Services, AVAudioPlayer, Audio Queue Services, 和 OpenAL
阅读全文
摘要:原文:http://article.ityran.com/archives/372翻译:大侠自来也 校对:Benna,yuezang,Iven原文链接地址:http://www.raywenderlich.com/233/audio-101-for-iphone-developers-converting-and-recording这篇文章是这个系列(涵盖iPhone开发者感兴趣的音频主题)的第二篇。本文由泰然教程组出品,转载请注明出处并通知泰然.在这个系列的第一篇文章中,我讲解了文件格式和数据格式的区别,还有哪些格式是在iPhone上面支持的。现在,让我们讨论一下你怎么样在不同格式之间转换。
阅读全文
摘要:原文:http://article.ityran.com/archives/253本翻译由泰然翻译组出品,转载请注明出处,并通知泰然!!翻译:大侠自来也 校对:子龙山人,Iven在做iphone开发之前,我(ray)对声音格式了解的相当少。我知道一些“wav”和“mp3”声音格式的差异,但是我肯定不能准确地告诉你“AAC”、“CAF”是什么格式的声音文件,同时也不知道在MAC上最好的转换音频文件的方法是什么。我深知,假如你想要成为一名合格的iphone开发者,你必须对声音文件数据格式,转换,录音和使用什么音频操作API有个基本的了解。这篇文章是三篇涵盖音频开发教程中的第一篇。在这篇文章中,我们
阅读全文
摘要:出自泰然:http://article.ityran.com/archives/1326本文由泰然翻译组组长 TXX_糖炒小虾 原创,版权所有,转载请注明出处并通知作者和泰然!触摸是iOS程序的精髓所在,良好的触摸体验能让iOS程序得到非常好的效果,例如Clear。鉴于同学们只会用cocos2d的 CCTouchDispatcher 的 api 但并不知道工作原理,但了解触摸分发的过程是极为重要的。毕竟涉及到权限、两套协议等的各种分发。于是我写了这篇文章来抛砖引玉。本文以cocos2d-iphone源代码为讲解。cocos2d-x 于此类似,就不过多赘述了。零、cocoaTouch的触摸在讲解
阅读全文
摘要:1、什么是Socket?Socket又称之为“套接字”,是系统提供的用于网络通信的方法。它的实质并不是一种协议,没有规定计算机应当怎么样传递消息,只是给程序员提供了一个发送消息的接口,程序员使用这个接口提供的方法,发送与接收消息。Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息。所以,Socket一定包含了通信的双发,即客户端(Client)与服务端(server)。2、Socket的通信过程?每一个应用或者说服务,都有一个端口。比如DNS的53端口,http的80端口。我们能由DNS请求到查询信息,是因
阅读全文
摘要:关于iPhone应用中HTTP上传请求协议总结是本文要介绍的内容,主要是来学习HTTP上传请求协议的内容,具体内容来看本文详解。http协议应该注意四点:1、初始化响应服务器地址NSURL *url = [NSURL URLWithString:@"http://xxx.xxx.xx.xxx/mqupload.jsp"]; [urlRequest setValue: [NSString stringWithFormat:@"%@\r\n", @"http://XXXXXX HTTP/1.1"]]; //可要可无 2、设置提交方法 GE
阅读全文
摘要:原文地址:http:///www.cocos2d-x.org/boards/7/topics/550Got this working, thought I'd share:Can also be found on my not very often updated blog hereOK, first thing you need to know is that Cocos2d doesn’t play videos, it leaves this up to the iOS SDK on the devices. The following code therefore is Obj
阅读全文
摘要:支持以下几种坐标系:1.屏幕坐标系 原点在左上角,X轴向右,Y轴向下。2.GL坐标系 原点在左下角,X轴向右,Y轴向上。3.世界坐标系 指相对于整个屏幕的坐标系,(0,0)就是屏幕的左下角,(320,480)就是屏幕的右上角。4.本地坐标系 相对于父对象的坐标。[obj.parent convertToWorldSpace:[obj position]]; //获得obj的世界坐标[obj.parent convertToNodeSpace:[obj position]]; //获得obj的本地坐标[[CCDirector sharedDirector] convertToGL:*****..
阅读全文
摘要://创建一个按钮直接调用这个函数 可以直接退出程序voidHelloWorld::menuCloseCallback(CCObject* pSender){ CCDirector::sharedDirector()->end(); //关闭界面 #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) //关闭游戏 exit(0); #endif}
阅读全文
摘要:http://hi.baidu.com/hzacxy123/blog/item/6528e2f9c8514c959e51468f.html全面剖析Cocos2d游戏触摸机制[注册触摸事件]1.先来看看层--CCLayer的声明部分:@interface CCLayer : CCNode <UIAccelerometerDelegate, CCStandardTouchDelegate, CCTargetedTouchDelegate>{ BOOL isTouchEnabled_; BOOL isAccelerometerEnabled_;} i:可以看出CCLayer实现了重...
阅读全文
摘要:http://hi.baidu.com/hzacxy123/blog/item/f87bde2030c8615292580788.htmltypedef enum{ kCCTouchSelectorBeganBit = 1 << 0, kCCTouchSelectorMovedBit = 1 << 1, kCCTouchSelectorEndedBit = 1 << 2, kCCTouchSelectorCancelledBit = 1 << 3, kCCTouchSelectorAllBits = ( kCCTouchSelectorBegan
阅读全文
摘要:question:In one of my iPhone projects, I have three views that you can move around by touching and dragging. However, I want to stop the user from moving two views at the same time, by using two fingers. I have therefore tried to experiment with UIView.exclusiveTouch, without any success.To understa
阅读全文
摘要:libFlurryAnalytics类 Targets -> buildPhases -> 点击加号添加 libFlurryAnalytics.a 则自动在librarySearchPath下添加了路径BugSense-ios.frameWork Targets -> buildPhases -> 点击加号添加 BugSense-iOS.framework文件夹 则自动在librarySearchPath下添加了路径 ,同时在 FrameWorkSearchPath 下也添加了路径
阅读全文
摘要:http://www.bugsense.com/docs/iosUsing BugSense in your iOS application is super easy!Download theBugSense-iOS [rev4.4].zipfile, and unzip it.In Xcode, select the target that you want to use and, in the "Build Phases" tab expand the "Link Binary With Libraries" section. Press the
阅读全文
摘要:http://blog.csdn.net/fg313071405/article/details/7239387Flurry 是第三方的工具,包括三个部分,数据分析工具,广告,视频广告.对于一般的开发来说使用第一种就就足够了.FlurryAnalytics可以上官网去看的参考文档,全是英文的,不过内容也不是很多,很快就能熟悉,然后在和自己的业务联系起来,能很快上手.这里就自己这几天研究的情况记录下:1: 首先注册,注册完了后下载sdk. sdk里面带有说明文档和appkey2: 我首先下载的是3.6的sdk,后来升级为3.7的, 现在的sdk支持xcode 3.2.5及以上, 设备支持ios3
阅读全文
摘要:http://yarin.blog.51cto.com/1130898/381934在开发游戏时,总是要使用很多的资源文件,比如:图片、音乐等。而我们经常会遇到一些商业游戏中都看不到这些资源文件,那是因为商业游戏,一般都会将这些资源文件打包成二进制的文件,然后在程序中读取,并使用。这样的游戏看上去更显得专业一些,本文我们就来学习一个最简单的将资源文件打包成二进制文件的方法——使用BinCompiler将资源文件打包成二进制文件。所需工具:BinCompiler(见附件)运行“BinCompiler.exe”,指定要打包的资源文件的路径,和输出二进制文件的路径,如下图所示。点击create按钮,
阅读全文
摘要:to interpret a dataoutputstream i've found a solution.to read a integer:use getBytes:range: to save exactly 4 bytes into a UInt32 (take care, 4byte integer).as mac is little-endian and bytes sent over the network mostly big-endian, you need to NSSwapBigIntToHost() with the UInt32 as argument. Th
阅读全文
摘要:由于iOS无法通过html表单来上传图片,因此想要上传图片,必须实现http请求,而不能像其他语言那样通过html表单的post就能上传。上传图片的http post请求的格式是这样的:?123456789101112Content-type: multipart/form-data, boundary=AaB03x--AaB03xcontent-disposition: form-data; name="field1"Hello Boris!--AaB03xcontent-disposition: form-data; name="pic"; file
阅读全文
摘要:try{OutputStreamo=response.getOutputStream();//将图片转换成字符串Filef=newFile("f:\\Vista.png");FileInputStreamfis=newFileInputStream(f);byte[]bytes=newbyte[fis.available()];fis.read(bytes);fis.close();//生成字符串StringimgStr=byte2hex(bytes);System.out.println(imgStr);//将字符串转换成二进制,用于显示图片//将上面生成的图片格式字符串
阅读全文
摘要:http://dingchaoqun12.blog.163.com/blog/static/1160625042010931193284/Java学习之InputStream中read()与read(byte[] b)IT之旅2010-06-01 12:43:28阅读105评论0字号:大中小订阅 这两个方法在抽象类InputStream中都是作为抽象方法存在的,JDK API中是这样描述两者的:read() :从输入流中读取数据的下一个字节,返回0到255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回-1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。rea
阅读全文
摘要:http://blog.csdn.net/xiaominghimi/article/details/6926913 本章节主要为大家介绍在游戏开发过程中经常遇到的两个问题; 1. 解决滚屏背景或拼接地图有黑边! 对于游戏开发中,背景(游戏地图)是必要的元素之一,那么对于大部分游戏的背景都是动态,或者不断移动的;例如RPG中的背景随着人物、主角而移动,那么一般情况下背景都是由地图编辑器(图块)拼出来的,要不就是直接一整张大图去显示,在或者就是将一张大图进行裁减成N张,然后再进行拼接完成等等; 那么对于背景(地图)元素中存在的重复图块很少的话基本上就没有利用地图编辑器的必要了;在这里Hi...
阅读全文
摘要:1. NSData 与 NSStringNSData-> NSStringNSString*aString = [[NSStringalloc]initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString*aString =@"1234abcd";NSData*aData = [aStringdataUsingEncoding:NSUTF8StringEncoding];2.NSData与ByteNSData->Byte数组NSString*testString =@&q
阅读全文
摘要:int globalsoc;-(void)searchFunction { isSearch = YES; isConnect = NO; if (isfirstSearch == YES) { isfirstSearch = NO; globalsoc = socket(AF_INET, SOCK_DGRAM, 0); if (globalsoc == -1){ //error NSLog([NSString stringWithFormat:@"failed to create socket(receive) : %d", errno]); return; } NSLo
阅读全文
摘要:http://hi.baidu.com/bloodyfox/blog/item/cc2e2a2a572485275243c172.htmlAppDelegate* appdele = (AppDelegate*)[[UIApplication sharedApplication] delegate]; NSString *Url = nil; Url = [NSString stringWithFormat:@"%@/decoder_control.cgi?command=1&user=%@&pwd=%@", appdele.globalIpAdd, app
阅读全文
摘要:add this to one of your xmppStream delegate's:- (void)xmppStream:(XMPPStream *)sender socketWillConnect:(AsyncSocket *)socket{ // XMPPStream is preparing to connect. // Add the voip flag to the socket. CFReadStreamSetProperty([socket getCFReadStream], kCFStreamNetworkServiceType, kCFStreamNetwor
阅读全文
摘要:XMPP(ExtensibleMessageingandPresenceProtocol)可扩展消息与存在协议,是目前主流的四种IM(即时消息)协议之一,其它三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服
阅读全文
摘要:http://www.dotblogs.com.tw/billy3321/archive/2010/06/02/xmpp.aspx最近剛好有機會碰到XMPP,把一些學習心得記錄在這邊。XMPP(Extensible Messageing and Presence Protocol) 是一種IM的通訊協定,其前身為Jabber,後於IETF標準化為RFC3920。除 了一般通訊協定常有的Server與Client外,XMPP還另外定義了Gateway,只要通過Gateway,便可以與其他的IM Protocol通話。XMPP最大的特色在於傳輸的內容。其傳輸的內容為XML;藉由XML的擴充性,可以
阅读全文
摘要:I need a method to convert a UIImage in a NSString and then convert the NSString back to a UIImage.image name? path? url? image data as base64? What do you try to do?Convert it to a binary stream instead (NSData). This will depend on the format of yourUIImage. If it's a JPEG/PNG for instance, yo
阅读全文
摘要:I am facing a problem to convert NSString to UIImage. EDIT1: I'm downloading photo as a string from gtalk server and parsed xml 5896efb83a92deaee41a30648cc9dbf7e9942b0e to use as an image.It's not clear from the question what it is that you are trying to do.There is no standard convention fo
阅读全文
摘要:Apple Mach-O Linker Error是一类错误,错误信息的最后一行,通常如下Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1发生这种错误的原因通常是因为两个子工程中存在同名类造成的链接错误。比如我发生错误的原因就是因为在两个.m文件中都定义了同样名字的const变量。虽然给的错误信息不明显,但是点开还是可以发现一些信息,从而定位的。但是信息很多,需要仔细排查,这次就是在众多的信息中发现了那个变量的命名,从而找到这个问题,通常你的变量都会被加一
阅读全文
摘要:Cocoa资源文件嵌入是本文要介绍的内容,主要是俩学习Cocoa/iPhoneApp/静态库嵌入资源文件rtb v0.1发布,软件开发中,可能需要把用到的资源文件嵌入到二进制执行文件中,例如生成单个执行文件、防止机密或版权信息被PE工具查看或修改、嵌入图片资源到静态库中等等。在Mac OSX Cocoa 或iOS开发中,编译生成的Product.app是一个APP包,其实就是个文件夹,右键Show Package Contents或者去掉,app 扩展后双击打开就可以查看包内容,修改包里面的任何资源文件都不会影响程序正常运行,要提交到App Store的程序在修改资源文件后运行下codesig
阅读全文
摘要:I wrote up a function to decode some Base64 text and return it. Here is the (somewhat messy) code I made:- (NSString)decodeBase64:(NSString)input { NSString alphabet = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-"; NSString decoded = @""; NSString encoded =
阅读全文
摘要:http://blog.csdn.net/loyal_baby/article/details/4067223声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。可以通过使用extern关键字声明变量名而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern:extern int i; // declares but does not define iint i; // declares and defines iAn extern declaration is not a definition and does not alloca
阅读全文
摘要:http://blog.sina.com.cn/s/blog_6fc5bfa90100oaum.html看了C++ Primer 感觉真的不太好理解,反正我是不好理解,还是买一本Primer Plus 吧。P59页说:头文件用于声明而不是用于定义当设计头文件时,记住定义和声明的区别是很重要的。定义只可以出现一次,而声明则可以出现多次(第 2.3.5 节)。下列语句是一些定义,所以不应该放在头文件里:extern int ival = 10;//initializer, so it's a definitiondouble fica_rate;//no extern, so it'
阅读全文
摘要:问题1:你是把变量传给了函数,还是把地址传给了函数?例:#include<stdio.h>#include<stdlib.h>#include<string.h>void oxx(char *dest){dest=(char *)malloc(30);strcpy(dest,"contenthasbeenmodied");}voidoxx2(char *dest){strcpy(dest,"contenthatbeenmodied");}intmain(){char *dest;char str[30];dest =
阅读全文
摘要:两周前空闲的时候编译了opencore for iOS, 如何编译的请参看这一篇文章。今天又有空,所以就试着去用了一下这个库,我想把.amr的文件decode为.wav格式的。在test目录下有简单的例子,教大家如何用这个库,于是我就照着里面的代码,写了一个for iOS在xcode里跑,结果大失所望, 转化出来的文件只有4K大小。首先我说说我的方法。新建了一个iOS的工程,然后把编译好的lib与include文件拖到工程里,然后修改wav.cpp后缀为wav.mm,并修改它的内容如下:#import<UIKit/UIkit.h>#include"wav.h"v
阅读全文
摘要:http://www.giser.net/?p=187在ios的开发中,经常遇到要读写文件的情况,例如处理照片,采集信息等,那么在ios中对文件的读写有两种方式:1 使用NSData 来将整个数据读取到内存中NSData *myData = [[[NSData alloc] initWithContentsOfFile:appFile] autorelease];将文件写到文件中[data writeToFile:appFile atomically:YES]使用这种方式比较适合针对小文件的读写,可以全部的读到内存中处理,比如说全局性的配置文件等。2 使用c的api来读取在ios的开发中,可以
阅读全文
摘要:I noticed a strange lack of high performance I/O routines in Objective-C. All I see is:Bulk I/O. E.g, contentsAtPath of NSFileManager or writeToFile of NSString. These are memory intensive and impractical for complex data structure.Very low level buffer based I/O from NSFileHandle. This is not good
阅读全文
摘要:getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include <unistd.h> extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。 extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getopt返回'?’、 int getop
阅读全文
摘要:使用NSStream来实现Socket#import <Foundation/Foundation.h> #import <CFNetwork/CFNetwork.h>#import <SystemConfiguration/SystemConfiguration.h>#import <netinet/in.h>#import <arpa/inet.h>@interface Stream : NSObject { NSInputStream *inStream; NSOutputStream *outStream; NSMutable
阅读全文
摘要:正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达式,因为这里*与正则式的*的含义是不同的。为便于理解和记忆,先从一些概念入手,所有特殊字符或字符组合有一个总表在后面,最后一些例子供理解相应的概念。正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。可以通过在一对分隔符之间放入表达式模式的各种组件
阅读全文
摘要:在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件.他是一个编译的中转文件,简单说就是debug的symbols包含在这个文件中.他有什么作用? 当release的版本 crash的时候,会有一个日志文件,包含出错的内存地址, 使用symbolicatecrash工具能够把日志和dSYM文件转换成可以阅读的log信息,也就是将内存地址,转换成程序里的函数或变量和所属于的 文件名.有一篇详细的blog讲了这个过程http://www.anoshkin.net/blog/2008/09/09/iphone-crash-logs/将类似Thread 0 Crashed:0 libobj
阅读全文
摘要:@interface NSManagedObject (FirstLetter)- (NSString *)uppercaseFirstLetterOfName;@end@implementation NSManagedObject (FirstLetter)- (NSString *)uppercaseFirstLetterOfName {[self willAccessValueForKey:@"uppercaseFirstLetterOfName"];NSString *aString = [[self valueForKey:@"ContactName&q
阅读全文
摘要:果SDK自带的就有密码保护,使用方法很简单,如下:1、引入Security.frameWork框架。2、引入头文件:SFHKeychainUtils.h.3、存密码:[SFHFKeychainUtilsstoreUsername:@"dd"andPassword:@"aa"forServiceName:SERVICE_NAMEupdateExisting:1error:nil];[SFHFKeychainUtilsdeleteItemForUsername:@"dd"andServiceName:SERVICE_NAMEerror:n
阅读全文
摘要:上个月,Bolt Creative宣布他们99美分的Pocket God游戏销量达到了120万份。这个游戏是1月份发布的,3月份排名达到了第一名,并保持这个位置大概一个月。这个游戏依然在前10名中。Pocket God是小团队在iPhone上取得成功的最新例子。这款游戏由Dave Castelnuovo的创建人Bolt Creative和他的美术Allan Dye一起开发。在竞争强烈的AppStore中,你的游戏或应用如何在iPhone取得成功?下面是Castelnuovo提供的10个方法。1、选择你能够完成的项目成为独立的开发者是非常辛苦的。我们大多数都是在周末和晚上进行自己的梦想工程,期盼
阅读全文
摘要:有时候你的程序需要知道用户使用的设备是iPhone还是iPod。因为有些特性iPod是没有的,比如电话功能。方法很简单:NSString *deviceType = [UIDevice currentDevice].model;如果你想得到一个本地化的字符串,可以使用以下命令:NSString *deviceType = [UIDevice currentDevice].localizedModel;NSLog(@”type: %@”, deviceType);JavaScrpit代码:if((navigator.userAgent.match(/iPhone/i)) || (navigato
阅读全文
摘要:判断 iPhone 是否插入了 SIM 卡,可以参考苹果官网的 systemconfigure framework 教程,将下面的代码复制到头文件extern NSString* const kCTSMSMessageReceivedNotification;extern NSString* const kCTSMSMessageReplaceReceivedNotification;extern NSString* const kCTSIMSupportSIMStatusNotInserted;extern NSString* const kCTSIMSupportSIMStatusRead
阅读全文
摘要:-(void)drawRect:(CGRect)rect {NSString* imageName = [[NSString alloc]initWithFormat:@”b%d.png”,m_Index];UIImage* aImage = [UIImage imageNamed:imageName];[imageName release];int width = aImage.size.width;int height = aImage.size.height;CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();CGCont
阅读全文
摘要:发现很多砸几百万、几千万甚至上亿的投入做游戏失败的,大都是没有认真做好DEMO。DEMO可是个好东西,做游戏想赚钱、想省钱,非它不可。但它既区别于小说的提纲,也区别于摘要。那DEMO到底是什么呢?从预算来说,开发DEMO的预算不要超过整体预算的30%;如果DEMO的预算超过了30%,估计开发者、项目经理从心里就没有勇气砍掉这个项目了,他们经常会说:大钱都花了,索性把后面的小钱也花了,万一赚钱呢!万一是个好产品呢。自己骗自己,自己给自己编美好的未来了。这30%着实是心理防线。从时间上来说,开发DEMO的时间不要超过2个月,也不要超过整个项目时间的20%。手机游戏开发团队,不少公司都是很小型的公司
阅读全文
摘要:UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境(Distributed Computing Environment, DCE) 领域的一部份。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microso
阅读全文
摘要:在 iPhone 应用或者是游戏的开发过程中,对声音的支持是必不可少的。在我做过的几个应用中,每个都涉及到音效,所以在这里做个简单的归纳,很多都是引用自《iPhone Application Programming Guide》(需要有 Apple ID 才能打开链接),加了一些实际使用的经验。iPhone OS 主要提供以下了几种播放音频的方法:System Sound ServicesAVAudioPlayer 类Audio Queue ServicesOpenAL1. System Sound ServicesSystem Sound Services 是最底层也是最简单的声音播放服务,
阅读全文
摘要:<script type=”text/javascript”>function OnLoad(){document.documentElement.style.webkitTouchCallout = “none”;}</script>
阅读全文
摘要:@implementationNSString (PasteboardGoodies)- (void) sendToPasteboard{[[NSPasteboardgeneralPasteboard]declareTypes: [NSArrayarrayWithObject:NSStringPboardType]owner:nil];[[NSPasteboardgeneralPasteboard]setString:selfforType:NSStringPboardType];}// sendToPasteboard@end// PasteboardGoodiesNSPasteboard
阅读全文
摘要:AirPrint 是苹果 iOS 系统自带的无线打印功能,阅读、新闻等类型的应用内如能集成 AirPrint,会给消费者带来极大便利。CocoaChina 会员分享了在应用里加入 AirPrint 功能的方法,希望下面的代码能为相关应用的开发者们节省时间。NSString *path = [[NSBundle mainBundle] pathForResource:@”test” ofType:@”jpg”];NSData *data = [NSData dataWithContentsOfFile: path];UIPrintInteractionController *pic = [UIP
阅读全文
摘要:UIAccelerometer *accelerometer =[UIAccelerometer sharedAccelerometer];accelerometer.delegate =self;accelerometer.updateInterval =1.0f/60.0f;- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{if(fabs(acceleration.x)>2.0||fabs(acceleration.y)>2.0|
阅读全文
摘要:(1.给图层添加背景图片:myView.layer.contents = (id)[UIImage imageNamed:@"view_BG.png"].CGImage;(2.将图层的边框设置为圆脚myWebView.layer.cornerRadius = 8;myWebView.layer.masksToBounds = YES;(3.给图层添加一个有色边框myWebView.layer.borderWidth = 5;myWebView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 blue:0.
阅读全文
摘要:[timer release] only needs to be called if you “own” the timer. From Apple’s documentation:Because the run loop maintains the timer, from the perspective of memory management there’s typically no need to keep a reference to a timer once you’ve scheduled it. Since the timer is passed as an argument w
阅读全文
摘要:本文介绍Objective C中实现观察者模式(也被称为广播者/监听者、发布/注册或者通知)的五种方法以及每种方法的价值所在。该文章将包括:1 手动广播者和监听者(Broadcaster and listeners)2 键-值观察(Key Value Observing)3 通知中心(Notification center)4 上下文通知(Context notification)5 用于观察的委托(Delegate)关于观察者观察者模式是维持两个模块之间抽象关系的最强大的方式之一。观察者模式包括一个发布已发生事件的模块以及响应该事件的另一模块的若干个的实例。它和直接调 用第二个模块的方法不同
阅读全文
摘要:1、确定你的项目工程的resouce下有你要用的字体文件(.ttf,.odf)。2、 然后在你的工程的Info.plist文件中新建一行(Add Row),添加key为:UIAppFonts,类型为Array或Dictionary都行;在UIAppFonts下再建立一个键值对,key 为:Item 0,添加Value为XXX.ttf(你字体的名字,string型),可以添加多个,使用的时候写对应字体名字就行。3、在你的项目里要用字体的时候 xx.font = [UIFont fontWithName:@"XXX" size:20.0],这样就可以了
阅读全文
摘要:http://www.10bay.com/一般来说UINavigationController是作为UIWindow的子view来使用的,例如当你创建一个Navigation类型的应用程序时,系统会将AppDelegate中的navigationController做为window的根控制器self.window.rootViewController = self.navigationController; [self.window.makeKeyAndVisible];UINavigationController在放置自己的位置时,会默认考虑到状态条,并在顶部留出20px的空白位置。但是当将
阅读全文
摘要:ModalViewController可以有不同的呈现类型(modalPresentationStyle),在ipad下要提供多方向支持时,就要注意可能要改变ModalViewController的呈现方式,列举如下:1. UIModalPresentationFullScreen:全屏模式,即弹出窗口占满整个屏幕,在portrait模式和landscape模式下都一样。2. UIModalPresentationFormSheet:会将窗口缩小,使之居于屏幕中间,在portrait和landscape下都一样,但要注意landscape下如果软键盘出现,窗口位置会调整。3. UIModalP
阅读全文
摘要:rom:http://mithin.in/2009/08/26/detecting-taps-and-events-on-uiwebview-the-right-way/Recently, I was working on a project which required detection of tap and events on the UIWebView. We wanted to find out the HTML element on which the user taps in the UIWebView and then depending on the element tapp
阅读全文
摘要:http://www.10bay.com/?p=149[[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];因主线程有事务要处理,会阻塞主线程外设事件的触发;解决:“将socket的runloopsource添加到新开的线程的runloop中,并在新线程中显示启动runloop就可以了”创建一个线程,取得它的runloop,然后用类似上面的代码将其加入,这样就不会阻塞接收数据事件的回调了。即[NSThread detachNewThreadSelec..
阅读全文
摘要:I'm trying to useCommonCryptoto generate keys usingPBKDF2but I can't seem to importCommonCrypto/CommonKeyDerivation.h, I just errors that it is not found.Any ideas?edit: I should probably mention I have already added the security framework and I can import all of the otherCommonCryptoheaders
阅读全文
摘要:ask: I want to upload an image to server .I know to convert image ti NSData and then send it to server but is there any way to send complete image from your bundle to server without byte conversion? If there is a way i will be thankful if someone provide me details about thisanswer:Any thing that ha
阅读全文
摘要:Apple Keychain Services offer a secure means to store sensitive information. Through the keychain, all the hardwork is managed for you to store and retrieve content. As powerful as the keychain services are, I was recently tinkering with some code to see if I could obfuscate content within an applic
阅读全文
摘要:Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下。最常见的用途是作为电子邮件或WebService附件的传输编码#import<CommonCrypto/CommonCryptor.h>#import"GTMBase64.h"//Opensource,base64处理,就两个文件,自己从网上下载下吧+(NSString*)TripleDES:(NSString*)plainTextencrypt
阅读全文
摘要:想将sinaweibo demo project 加入到 Three20UI中,当用户点击thumb photo 相册的时候,一张放大的图片上加上sinaweibo图标。现在点击sinaweibo图标,可以出现 OAuth 及 XAuth 选择界面,再点击OAuth 时,Appcrashes.点击 XAuth 时,出现用户名及密码登录界面,输入后,程序同样崩溃。用的是下面的代码:- (void)clickActionItem {} in the three20UI as follows: - (void)clickActionItem { SinaWeiBoSDKDemoViewControl
阅读全文
摘要:Encryption.h文件 #import <Foundation/Foundation.h> @class NSString; @interface NSData (Encryption) - (NSData *)AES256EncryptWithKey:(NSString *)key; //加密- (NSData *)AES256DecryptWithKey:(NSString *)key; //解密- (NSString *)newStringInBase64FromData; //追加64编码+ (NSString*)base64encode:(NSS...
阅读全文
摘要:【破文标题】**CHM 3.50 注册流程及算法分析(续)【破文作者】Ptero【破解工具】FI,OllyDbg,Dede,IDA,MD5工具【注册方式】序列号+KeyFile【保护方式】花指令,自校检,进程检测,API断点检测【加壳方式】UPX v0.94-1.90【加密算法】MD5+AES-256(Rijndael)+ZLib+RC4【软件限制】功能限制【破解声明】初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!----------------------------------------------------【破解分析】有关该软件中的AES-256(Rijndae
阅读全文
摘要:http://www.keakon.net/2010/01/04/SHA-1%20vs%20SHA-256最近想在GAE上实现一个验证码,但又不想用传统的键盘输入方式。一来是习惯用鼠标,切换到键盘很麻烦;二来是生成图片的成本很大,在GAE上还不能用C实现;三是在让机器难以识别的同时,也会造成用户的困惑。所以想到Google曾经提出的一个技术:提供一组选项,用鼠标将正确的选项拖动到指定位置,然后提交。在实现时我发现,如果不在客户端加密的话,这个提交过程是可以直接机器模拟的,也就造成验证码没有意义了。既然加密是必须的,那么接着就该选择和非对称加密了。然而思考了一番后发现,如果用户本身要伪装自己,那
阅读全文
摘要:感谢作者:http://www.keakon.net/2011/08/13/用CommonCrypto计算MD5和SHA编程时经常需要和MD5、SHA等hash算法打交道,搜了一下后我发现iOS SDK中自带了CommonCrypto,于是就无需自己实现或用第三方库了。首先来看MD5,它的输出结果是128位的,因此需要16个8位的char来存储。而输入参数我就直接用const char *了,反正NSString和NSData都能与它相互转换:#include <CommonCrypto/CommonDigest.h>static inline char hexChar(unsig
阅读全文
摘要:在你的 iOS App中 使用 OpenSSL 库 转发英文原文链接:http://www.x2on.de/2010/07/13/tutorial-iphone-app-with-compiled-openssl-1-0-0a-library/下文有错误 参照有风险:需要修改 输入命令行的部分 建议用英文原版里的!!!在你的 iOS App中 使用 OpenSSL 库——译自x2on的“Tutorial: iPhone Appwith compiled OpenSSL 1.0.0a Library”原文地址:http://www.x2on.de/2010/07/13/tutorial-ipho
阅读全文
摘要:+(NSString*)HloveyRC4:(NSString*)aInput key:(NSString*)aKey{ NSMutableArray *iS = [[NSMutableArray alloc] initWithCapacity:256]; NSMutableArray *iK = [[NSMutableArray alloc] initWithCapacity:256]; for (int i= 0; i<256; i++) { [iS addObject:[NSNumber numberWithInt:i]]; } int ...
阅读全文
摘要:ios des 加/解密(with base64)#include <CommonCrypto/CommonCryptor.h>+ (NSString*)Encrypte:(NSString*)src key:(NSString*)key{ NSString* retStr = nil; NSData* srcData = [src dataUsingEncoding:NSUTF8StringEncoding]; size_t dataOutAvilable = ([srcData length] + kCCBlockSize3DES) & ~(kCCBlockSize3D
阅读全文
摘要:转自:http://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.htmliOS中多线程编程工具主要有:NSThreadNSOperationGCD这三种方法都简单易用,各有千秋.但无疑GCD是最有诱惑力的,因为其本身是apple为多核的并行运算提出的解决方案.虽然当前移动平台用双核的不多,但不影响GCD作为多线程编程的利器(ipad2已经是双核了,这无疑是一个趋势).http://www.cnblogs.com/scorpiozj/archive/2011/07/25/2116459.htmlGCD是和block紧密相连的,所以最好
阅读全文
摘要:origion:http://www.alterplay.com/ios-dev-tips/2009/10/asynchronous-uiimage.htmlEverybody needed or will need to load images from web. The easiest way to do it is to get NSData from NSURL and create UIImage:UIImage *myImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithS
阅读全文
摘要:A good example for using allocWithZone: is when you are implementing the NSCopy protocol, which allows you make your custom objects copyable (deep copy / copy by value) like: ClassName *newObject = [currentObject copy]; //results in newObject being a copy of currentObject not just a reference to itT
阅读全文
摘要:原文:http://www.duckrowing.com/2010/05/21/using-the-singleton-pattern-in-objective-c/感谢作者what the purpose of the +allocWithZone override is?+allocWithZone is overridden to make sure you can only allocate a single instance of this object. All subsequent calls should return nil.I don't think you'
阅读全文
摘要:http://gaoyong.diandian.com/post/2011-11-02/6443926我们今天谈谈cocoa程序设计中的模型-视图-控制器(MVC)范型。我们将从两大方面来讨论MVC:什么是MVC?M、V、C之间的交流方式是什么样子的?理解了MVC的概念,对cocoa程序开发是至关重要的。一、MVC的概念MVC是Model-VIew-Controller,就是模型-视图-控制器,这些都是什么东西呢?MVC把软件系统分为三个部分:Model,View,Controller。在cocoa中,你的程序中的每一个object(对象)都将明显地仅属于这三部分中的一个,而完全不属于另外两个
阅读全文
摘要:http://southking.iteye.com/blog/1489462假设两个ViewController之间已经建立了SegueA:TableViewController的子类 B:viewController A --> B 传送数据类Player的对象player1.设置Segue的identifier2.在B.h里添加Java代码@property(nonatomic,strong)Player*player; 在B.m里添加Java代码@synthesizeplayer;3.在A.m里重写UIViewController 的以下方法Java代码-(void)prepar
阅读全文
摘要:http://southking.iteye.com/blog/1487806ARC是什么ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机能在 iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2 可以使用该机能。简单地理解ARC,就是通过指定的语法,让编译器(LLVM 3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析
阅读全文
摘要:前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。本节,我们先来看看 ARC 产生之前的 Objective-C 内存管理世界,然后再来看看导入 ARC 后,新的 LLVM 编译器在背后为我们做了什么。Objective-C 内存管理和许多面向对象语言一样,Objective-C 中内存管理的方式其实就是指引用计数(Refer
阅读全文
摘要:NSArray *allObject = [dictionary allValues];[allObject makeObjectsPerformSelector:@selector(objSel)];
阅读全文
摘要:Stream是单向的,Reading From Input Streams:1.Create and initilize an instance of NSInputStream from s source of data;2.Sechedule the stream object on a run loop and open the stream;3.Handle the events that the stream object reports to its delegate;4.When there is no data to read,dispose the stream object
阅读全文
摘要:http://www.cnblogs.com/wustlj/archive/2011/12/20/2294745.html所有的引用计数系统,都存在循环应用的问题。例如下面的引用关系:对象a创建并引用到了对象b.对象b创建并引用到了对象c.对象c创建并引用到了对象b.这时候b和c的引用计数分别是2和1。当a不再使用b,调用release释放对b的所有权,因为c还引用了b,所以b的引用计数为1,b不会被释放。b不释放,c的引用计数就是1,c也不会被释放。从此,b和c永远留在内存中。这种情况,必须打断循环引用,通过其他规则来维护引用关系。比如,我们常见的delegate往往是assign方式的属性
阅读全文
摘要:http://southking.iteye.com/blog/1487811概念当我们使用强参照(Strong reference)时,往往需要留意循环参照的问题。循环参照指的是两个对象被互相强参照,以至于任一对象都不能释放。一般情况下,当对象之间有“父子关系”时,强参照的情况发生的比较多。比如通讯薄对象AddrBook和每个通讯录Entry的关系如下。这种情况下,由于Entry对象被AddrBook强参照,所以不能释放。另一方面,如果Entry被释放了,AddrBook对象的强参照也就没有了,其对象也应被释放。解决方式像上面的例子,当多个对象间有“父子关系”时,需要在一侧用“弱参照”来解决
阅读全文
摘要:http://southking.iteye.com/blog/1487814自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。引子我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法:12id obj = [[NSObject alloc] init];void *p = obj;反过来,当把void*对象变回id类型时,只是简单地如下来写,12id obj = p;[obj release];但是上面的代码在ARC有效时,就有了下面的错误: error: implicit ...
阅读全文
摘要:Both detachNewThreadSelector and performSelectorInBackground are used to call a method in the background.Is there any difference between the 2 methods? or do they both work the same way?answer:They're both essentially the same but slightly different paradigms. Behind the scenes they do exactly t
阅读全文
摘要:http://blog.sina.com.cn/s/blog_9030ba4b01012db1.html简介:CAEmitterLayer提供了一个基于Core Animation的粒子发射系统,粒子用CAEmitterCell来初始化。粒子画在背景层盒边界上Properties:birthRate:粒子产生系数,默认1.0;emitterCells:装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;emitterDepth:决定粒子形状的深度联系:emitter shapeemitterMode:发射模式NSString * const kCAEmitterLayer
阅读全文
摘要:http://www.x2x1.com/show/9787537.aspxHow can I calculate points around a sphere? I need this for my particles explosion. I don't want the particle's points to be all random. I need them in a spherical pattern. For 2d circle explosion I was using this:float n=many;float rad = 1;for (int i = 0
阅读全文
摘要:uiview类每次nib加载的时候,更新此方法,区别,viewDidLoad方法只执行一次,此方法每次切换到视图都会加载,类似uiviewController的 - (void)viewWillAppear:(BOOL)animated; 方法- (void)awakeFromNib当IB加载的时候, 界面的补充初始化用这个.
阅读全文
摘要:1.TARGETS --->build settings 搜索 compiler 找到 compiler for c/c++/objective-c 改成 APPLE LLVM compiler 3.02.TARGETS --->build settings 搜索 analyzer Run Static Analyzer 改成 YES3.TARGETS --->build settings 搜索 automatic objective-c Automatic Reference Counting 改成YES4.From Xcode's m...
阅读全文
摘要:#define TEXT_INPUT_NUMBERS @"0123456789"- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ if(textField == _textInput){ if(range.location >= 11){ return NO; } NSCharacterSet *cs; cs = [[NSCharacterSet cha...
阅读全文
摘要:http://stackoverflow.com/questions/2003201/observing-pinch-multi-touch-gestures-in-a-uitableviewI am looking to implement a pinch in/out on top of a UITableView, I have looked at several methods including this one:But while I can create aUIViewTouchobject and overlay it onto my UITableView, scroll e
阅读全文
摘要:AUIEventobject (or, simply, an event object) represents an event in iOS. There are three general types of event: touch events, motion events, and remote-control events. Remote-control events allow a responder object to receive commands from an external accessory or headset so that it can manage ma..
阅读全文
摘要:Ever since I got the video feed working on my Packbot OCU application the reds and the blues have been swapped, giving the video feed a weird spacey look and totally cramping my style. Apparently the data is sent this way because leaving it in BGR format reduces the load for the Packbot's onboar
阅读全文
摘要:Converting from UIImage/CGImage to Leptonica Pix structureUIImage *image = [UIImage imageNamed:@"test.png"];...CFDataRef imageData = CGDataProviderCopyData(CGImageGetDataProvider([image CGImage]));const UInt8 *rasterData = CFDataGetBytePtr(data); /*-----------------------------------------
阅读全文
摘要:FileStream MyFileStream; long FileSize; MyFileStream = new FileStream=("c:\\a.doc",FileMode.Open); FileSize = MyFileStream.Length; byte[] Buffer = new byte[(int)FileSize]; MyFileStream.Read(Buffer, 0, (int)FileSize); MyFileStream.Close(); Response.AddHeader("Content-Disposition",
阅读全文
摘要://// network.h// AUOiWay_Mobile//// Created by Mahmood1 on 2/21/12.// Copyright (c) 2012 __MyCompanyName__. All rights reserved.//#import<UIKit/UIKit.h>#define SUPPORTS_IOKIT_EXTENSIONS 1/** To use, you must add the (semi)public IOKit framework before compiling*/#if SUPPORTS_IOKIT_EXTENSIONS@i
阅读全文
摘要:/**检查某点是否包含在多边形的范围内(只用与判断在多边形内部,不包含点在多边形边上的情况)~*/- (BOOL) checkPointWithinPolygon:(PolyVerticesWrapper*)pvw point:(b2Vec2)point { intverticesCount = [pvwverticesCount]; b2Vec2*ptPolygon = [pvwvertices]; intnCross =0; for(inti = 0; i < verticesCount; ++ i) { floatj = ptPolygon[i].x; floatk...
阅读全文
摘要:- (void)saveImageWithData:(NSData*)jpeg andDictionary:(NSDictionary*)dicRef andName:(NSString*)name{ [self setCapturedImageName:name]; CGImageSourceRef source ; // Notice here how I use __bridge source = CGImageSourceCreateWithData((__bridge CFDataRef)jpeg, NULL); CFStringRef UTI = C...
阅读全文
摘要:ask:I am trying to use a snippet of code from a Apple programming guide, and I am getting a EXC_BAD_ACCESS when trying to pass a pointer to a function, right after doing a malloc.(For Reference:iPhone Application Programming Guide: Event Handling - Listing 3-6)The code in question is really simple:C
阅读全文
摘要:Is there an integer vector struct in Cocoa or should I define my own?I am keeping track of pairs of ints and NSUIntegers as array indexes and other things.Is there something analogous to CGPoint that is already defined?I'm doing graphics stuff on iPhone if it matters.It's fairly easy to defi
阅读全文
摘要:strong与weak是由ARC新引入的对象变量属性ARC引入了新的对象的新生命周期限定,即零弱引用。如果零弱引用指向的对象被deallocated的话,零弱引用的对象会被自动设置为nil。@property(strong) MyClass *myObject;相当于@property(retain) MyClass *myObject;@property(weak) MyOtherClass *delegate;相当于@property(assign) MyOtherClass *delegate;强引用与弱引用的广义区别:强引用也就是我们通常所讲的引用,其存亡直接决定了所指对象的存亡。如果
阅读全文
摘要:http://www.cnblogs.com/Piosa/archive/2012/02/23/2365287.html首先看两个runloop的示例,来源:http://paste.lisp.org/display/86524第一个:#include<CoreFoundation/CoreFoundation.h>staticvoid_perform(void*info__unused){printf("hello\n");}staticvoid_timer(CFRunLoopTimerReftimer__unused,void*info){CFRunLoop
阅读全文
摘要:http://www.cnblogs.com/Piosa/archive/2011/10/15/2212824.html通常在创建完UITableViewController后,会看到UITableViewDataSource的一个实现函数如下- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = [NSString stringWithFormat:@"Cell&
阅读全文
摘要:考虑下面的问题:#include <iostream>using namespace std;int Sum(int i[]){int sumofi = 0;for (int j = 0; j < sizeof(i)/sizeof(int); j++) //实际上,sizeof(i) = 4{sumofi += i[j];}return sumofi;}int main(){int allAges[6] = {21, 22, 22, 19, 34, 12};cout<<Sum(allAges)<<endl;system("pause"
阅读全文
摘要:http://blog.csdn.net/cpskiss/article/details/7056270不同的设备(显示器、打印机、扫描仪、摄像头)处理颜色的方式是不同的。每种设备都有其所能支持的颜色值范围。一种设备能支持的颜色可能在其它设备中无法支持。为了有效的使用颜色及理解Quartz2D中用于颜色及颜色空间的函数,我们需要熟悉在Color Management Overview文档中所使用的术语。该文档中讨论了色觉、颜色值、设备依赖及设备颜色空间、颜色匹配问题、再现意图(rendering intent)、颜色管理模块和ColorSync。在本章中,我们将学习Quartz处理颜色和颜色空
阅读全文
摘要:裁剪路径当前裁剪区域是从路径中创建,作为一个遮罩,从而允许遮住我们不想绘制的部分。例如,我们有一个很大的图片,但只需要显示其中一小部分,则可以设置裁减区域来显示我们想显示的部分。当我们绘制的时候,Quartz只渲染裁剪区域里面的东西。裁剪区域内的闭合路径是可见的;而在区域外的部分是不可见的。当图形上下文初始创建时,裁减区域包含上下文所有的可绘制区域(例如,PDF上下文的media box)。我们可以通过设置当前路径来改变裁剪区域,然后使用裁减函数来取代绘制函数。裁剪函数与当前已有的裁剪区域求交集以获得路径的填充区域。因此,我们可以求交取得裁减区域,缩小图片的可视区域,但是不能扩展裁减区域。裁减
阅读全文
摘要:一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间。还有三种类型的可以运行在后台,1.音乐2.location3.voip大多数应用程序进入后台状态不久后转入暂停状态。在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除。应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务。判断是否支持多线程UIDevice*device=[UIDevicecurrentDevice]; BOOLbackgroundSupported=NO; if([devicerespondsToSelector:@selector(isMultitask
阅读全文
摘要:iPhone OS为创建高质量的图形提供两种路径:即通过OpenGL进行渲染,或者通过Quartz、Core Animation、和UIKit进行渲染。UIKit的图形系统在iPhone OS上,所有的描画—无论是否采用OpenGL、Quartz、UIKit、或者Core Animation—都发生在UIView对象的区域内。视图定义描画发生的屏幕区域。如果您使用系统提供的视图,描画工作会自动得到处理;然而,如果您定义自己的定制视图,则必须自行提供描画代码。对于使用OpenGL进行描画的应用程序,一旦建立了渲染表面,就必须使用OpenGL指定的描画模型。视图描画周期UIView对象的基本描画模
阅读全文
摘要:http://blog.csdn.net/pjk1129/article/details/71613831、绘图总结:绘图前设置:CGContextSetRGBFillColor/CGContextSetFillColorWithColor//填充色 CGContextSetRGBStrokeColor/CGContextSetStrokeColorWithColor//笔颜色 CGContextSetLineWidth//线宽度绘图后设置:注: 画完图后,必须 先用CGContextStrokePath来描线,即形状,后用CGContextFillPath来填充形状内的颜色.2.常见图形绘制
阅读全文
摘要:http://blog.sina.com.cn/s/blog_7a2ffd5c0100x4q6.htmlSprite如果经过了缩放,那么构建的CCMenuItemSprite显示的位置会不正确。一个Sprite经过缩放后,实际尺寸不再等于contentSize,而是需要乘以scale系数,但是在CCMenuItemSprite构造时,仍然设定了Sprite的contenSize大小:[self setContentSize: [normalImage_ contentSize]];而后设定3种状态的Sprite时,会将其锚点设为(0,0),如:-(void) setNormalImage:(C
阅读全文
摘要:http://www.cocoachina.com/bbs/simple/?t69462.html最近在游戏的制作中想要加入一个类似技能使用后的“冷却效果”,第一个想到的就是cocos2d中的ProgressTo。于是看了一下自带的sample,感觉不错,于是就实践了一下,但是发现了如下的问题:1.ProgressTo无法和CCSprite一同使用,必须使用在ProgressTimer对象上2.ProgressTimer无法和CCMenuItemSprite一起使用当Sprite数量很少时,可以单个使用ProgressTo + ProgressTimer,但是当Sprite很多并使用CCMen
阅读全文
摘要:http://blog.csdn.net/tangaowen/article/details/7370475iphone使用keychain来存取用户名和密码 以下文字转载自:http://blog.csdn.net/bl1988530/article/details/6887946,向原作者表示感谢和敬意。 iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式。每个ios程序都有一个独立的keychain存储。从ios 3.0开始,跨程序分享keychain变得可行。下面就使用keychain来实现存取用户名和密码。苹果已经有现成的类封装...
阅读全文
摘要:http://blog.csdn.net/tangaowen/article/details/7380408cocos2d支持以下几种坐标系:1.屏幕坐标系 原点在左上角,X轴向右,Y轴向下。2.GL坐标系 原点在左下角,X轴向右,Y轴向上。3.世界坐标系 指相对于整个屏幕的坐标系,(0,0)就是屏幕的左下角,(320,480)就是屏幕的右上角。4.本地坐标系 相对于父对象的坐标基本的两个坐标系:屏幕坐标系和GL坐标系。屏幕坐标系x轴朝右,y轴朝下。默认原点在左上角。GL坐标系x轴朝右,y轴朝上。默认原点在左下角。在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函数使用哪个
阅读全文
摘要:原文:http://blog.csdn.net/tangaowen/article/details/7342021切记 cocos2d中一个CCAction 对象只能被使用到一个Sprite对象上 在cocos2d中,经常需要将一个action施加到多个Sprites上面,以达到相同的效果。 所以经常会有下面的代码:CCMoveTo * move =[CCMoveTo actionWithDuration:DESK_ANIMATE_TIME position:point]; [deskImage runAction:move]; [HeadImageSprite r...
阅读全文
摘要:以下文字转载自:http://blog.csdn.net/lbj05/article/details/6297214,对原作者表示感谢和敬意。 iPhone SDK提供了多种动画手段,UIView、UIImageView和CALayer都支持动画。但如何处理常见的gif动画呢?UIWebView提供了答案,代码如下:// 设定位置和大小CGRect frame = CGRectMake(50,50,0,0);frame.size = [UIImage imageNamed:@"anim.gif"].size;// 读取gif图片数据NSData *gif = [NSData
阅读全文
摘要:// Obtain the shared instance of the cacheCCSpriteFrameCache *cache = [CCSpriteFrameCache sharedSpriteFrameCache;// load the frames[cache addSpriteFramesWithFile:@"frames.plist"];// It loads the frame named "frame1.png".// IMPORTANT: It doesn't load the image "frame1.png
阅读全文
摘要:http://www.ityran.com/thread-27-1-1.html有时候为了方便需要是不是需要把UIImage转换成精灵 ,而有时候又需要把精灵转换成UIImage, 有木有为这些在烦恼的,有的话顶起来-(CCSprite *) convertImageToSprite:(UIImage *) image { CCTexture2D *texture = [[CCTexture2D alloc] initWithImage:image]; CCSprite *sprite = [CCSprite spriteWithTexture:texture]; [texture r...
阅读全文
摘要:我创建了一个自定义的CCSprite,然后添加了一张png图片。CCTexture2D *paddleTexture = [[CCTextureCache sharedTextureCache] addImage:@"1.png"];MySprite *mSprite = [MySprite paddleWithTexture:paddleTexture];当手指触摸到这个CCSprite时,我该如何判断当前触摸的位置是否是在图片上的透明区域,还是在图片的图像上。请高手们帮帮忙,谢谢。备注://判断触摸点是否在CCSprite上- (BOOL)containsTouchLo
阅读全文
摘要:http://hi.baidu.com/%C7%D8%B7%E7%D2%C0%BE%C9%D4%DA/blog/item/4e278c374635ac3191ef3934.html使用SDK截屏比较简单,代码如下:UIGraphicsBeginImageContext(self.view.frame.size);[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImag
阅读全文
摘要:question:Why not to have a Int8 and UInt8 types instead of Byte and SByte in .Net frameworkYou mean SByte and Byte. Int8 would be signed SByte, UInt8 would be unsignedByte.This also highlights the problem: some languages (notably VB.NET) have nosupport for unsigned integers (they're not CLS-comp
阅读全文