摘要: ios des 加/解密(with base64)阅读全文
posted @ 2011-12-27 15:55 vieri122 阅读(153) 评论(0) 编辑
  • 当你使用new alloc copy方法创建一个对象是,该对象的引用计数为1。当你不在使用该对象时,你要负责向该对象发送一条release(或者时autorelease)消息。
  • 当你通过其他任何方法获得一个对象时,我们(方法的调用者和方法的实现者)都假设该对象的引用计数为1,而且已经被设置成自动释放。如果你把它当临时对象来用,你不需要执行任何释放(release或autorelease)操作。但如果你打算拥有它,或者说是你当算把它保存成为你的某个成员变量,则你需要在保存对象时(一般在setXXX方法中)把引用计数加1,在操作完成后(一般时在dealloc中)释放该对象(引用计数减1)

一般setXXX实现如下:

-(void)setXXX: (NSObject)obj{

      [obj retain];

     [m_var  release];//m_var 为成员变量

   m_var = obj; 


iphone中不要使用内存池和垃圾回收! 

posted @ 2011-04-08 12:18 vieri122 阅读(444) 评论(0) 编辑

今天工作因原因,需要实现一个split的功能,以前也做过,但一直没有把他记下来,所以又重新写了一次。这次做个笔记以备后用,各位网友感兴趣也可以直接拿来用过。

例子: 

一个这样的字符串:“123,456,789,0”。把他截取成这样的字符串数组 [123],[456],[789],[0]。众所周知c++默认没有提供这样功能的函数,下面我们自己来实现它

不多说直接上代码:

 

 代码

#include <iostream>
#include 
<string>
#include 
<vector>
using namespace std;

vector
<string> splitEx(const string& src, string separate_character)
{
    vector
<string> strs;
    
  
int separate_characterLen = separate_character.size();//分割字符串的长度,这样就可以支持如“,,”多字符串的分隔符
    int lastPosition = 0,index = -1;
    
while (-1 != (index = src.find(separate_character,lastPosition)))
    {
        strs.push_back(src.substr(lastPosition,index 
- lastPosition));
        lastPosition 
= index + separate_characterLen;
    }
    
string lastString = src.substr(lastPosition);//截取最后一个分隔符后的内容
    if (!lastString.empty())
        strs.push_back(lastString);
//如果最后一个分隔符后还有内容就入队
    return strs;
}

int _tmain(int argc, _TCHAR* argv[])
{
    
string s = "123,456,789,0,888";
    
string del = ",";  
    vector
<string> strs = splitEx(s, del);  
    
for ( unsigned int i = 0; i < strs.size(); i++)  
    {  
        cout 
<< strs[i].c_str() << endl;
    }  
    
return 0;  
}

输出: 

123 
456 
789 

888 

PS:纯粹个人使用,没有经过严格测试,也许还有一些考虑不周的地方,欢迎大家指出。
posted @ 2010-05-05 18:08 vieri122 阅读(3101) 评论(4) 编辑
摘要: STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。阅读全文
posted @ 2009-10-14 18:15 vieri122 阅读(423) 评论(0) 编辑
摘要: 临界区,内核事件,互斥量,信号量,都能完成线程的同步,在这里把他们各自的函数调用,结构定义,以及适用情况做一个总结。阅读全文
posted @ 2009-09-10 17:51 vieri122 阅读(2280) 评论(2) 编辑
摘要: 在做C++的项目中发现,由于用惯了c#的lock(){}和java的Synchronize(){},windows自带的临界区,互斥量,内核事件,信号量用起来不太习惯,于是打算自己在vc++中封装一个类似的东东。 阅读全文
posted @ 2009-09-10 14:15 vieri122 阅读(1846) 评论(10) 编辑
摘要: ip tcp udp 等协议头的定义阅读全文
posted @ 2009-08-21 09:41 vieri122 阅读(2786) 评论(2) 编辑
摘要: Sockets/Windows Sockets错误码Windows Sockets在头文件winsock.h中定义了所有的错误码,它们包括以“WSA”打头的Windows Sockets实现返回的错误码和Berkeley Sockets定义的错误码全集。定义BerkeleySockets错误码是为了确保原有软件的可移植性。WSAEACCES (10013)Permissio...阅读全文
posted @ 2009-08-12 17:37 vieri122 阅读(648) 评论(0) 编辑
摘要: .Net实现的图片水印功能!阅读全文
posted @ 2009-06-09 15:36 vieri122 阅读(89) 评论(0) 编辑