当前位置:  编程技术>移动开发
本页文章导读:
    ▪RDF资料的解析        RDF文件的解析 开发过程中的XML解析有很多种方式 一次偶然的机会,碰到RDF格式的,和传统的xml有点区别,可能有他自己的独特之处   普通的xml解析可能无效 ,在网上搜索了下 ,建议用jena.........
    ▪ 怎么找到创意点子        如何找到创意点子 转自:http://www.cocoachina.com/appstore/top/2011/0717/3031.html 作为一名iPhone开发者,如果说08-09年是iPhone开发收益上的高峰期,那现在只能是平淡期了。如何使得自己的App在40万大军.........
    ▪ UITableView 相关有关问题       UITableView 相关问题     动态调整cell高度   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView deq.........

[1]RDF资料的解析
    来源: 互联网  发布时间: 2014-02-18
RDF文件的解析

开发过程中的XML解析有很多种方式

一次偶然的机会,碰到RDF格式的,和传统的xml有点区别,可能有他自己的独特之处

 

普通的xml解析可能无效 ,在网上搜索了下 ,建议用jena解析

可以在主页下载:http://jena.sourceforge.net/  当前版本为 jena-2.6.4

 

先看下RDF的大致格式

<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:prf="http://www.wapforum.org/profiles/UAPROF/ccppschema-20010430#">
	<rdf:Description rdf:about="Nokia3330">
		<prf:component>
			<rdf:Description rdf:about="HardwarePlatform">
				<rdf:type
					rdf:resource="http://www.wapforum.org/profiles/UAPROF/ccppschema-20010430#HardwarePlatform" />
				<prf:Keyboard>PhoneKeypad</prf:Keyboard>
				<prf:NumberOfSoftKeys>1</prf:NumberOfSoftKeys>
				<prf:ScreenSize>84x30</prf:ScreenSize>
				<prf:ScreenSizeChar>10x3</prf:ScreenSizeChar>
				<prf:StandardFontProportional>
					Yes
				</prf:StandardFontProportional>
				<prf:Vendor>Nokia</prf:Vendor>
				<prf:Model>3330</prf:Model>
				<prf:TextInputCapable>Yes</prf:TextInputCapable>
			</rdf:Description>
		</prf:component>

	</rdf:Description>
</rdf:RDF>

 

 

 

解析部分代码

 

/**
     * 
     * 解析RDF 文件
     * 
     * @param inputFile
     * @author
     * @date 2011-9-1 上午09:17:16
     */
    private void parseRdfFile(File inputFile)
    {
        try
        {

            Model model = ModelFactory.createDefaultModel();
            // use the FileManager to find the input file
            InputStream in = new FileInputStream(inputFile);
            if (in == null)
            {
                throw new IllegalArgumentException("File:  not found");
            }
            model.read(new InputStreamReader(in), "");
            StmtIterator stmtIt = model.listStatements();

            String key1 = "";
            String key2 = "";
            String value = "";

            while (stmtIt.hasNext())
            {

                Statement stmt = stmtIt.nextStatement();
                // resource
                key1 = stmt.getSubject().getURI();

                if (null == key1)
                {
                    continue;
                }

                // Property
                key2 = stmt.getPredicate().getLocalName();

                // RDFNode
                if (stmt.getBag().size() > 0)
                {
                    value = getBagStr(stmt.getBag());
                } else
                {
                    value = stmt.getObject().toString();
                }

                // key1
                logger.trace("resource:" + key1);

                // key2
                logger.trace("Property = " + key2);

                // value
                logger.trace("RDFNode/bag = " + value);

               
            }

        } catch (Exception e)
        {
            logger.error("parseRdfFile Failed", e);
        }
    }

    /**
     * 
     * 获取bag 的值
     * 
     * @param bags
     * @return
     * @author
     * @date 2011-9-1 上午07:26:51
     */
    private String getBagStr(Bag bags)
    {
        if (null == bags || bags.size() == 0)
        {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        NodeIterator bagIt = bags.iterator();
        if (bagIt.hasNext())
        {
            while (bagIt.hasNext())
            {
                sb.append(bagIt.next());
                sb.append(MARK_SEP);
            }
        }

        return sb.substring(0, sb.length() - 1 - MARK_SEP.length());
    }

 


    
[2] 怎么找到创意点子
    来源: 互联网  发布时间: 2014-02-18
如何找到创意点子

转自:http://www.cocoachina.com/appstore/top/2011/0717/3031.html

作为一名iPhone开发者,如果说08-09年是iPhone开发收益上的高峰期,那现在只能是平淡期了。如何使得自己的App在40万大军中脱引而出,华丽的UI界面?构思良好的交互设计?其实最重要的是如何找到一个绝佳的创意点子。

下文[原文:Paul Graham,编译:36氪]是创业导师保罗--格雷厄姆告诉创业者如何找到创业点子,对iPhone开发者寻找创意点子同样受益匪浅:

 

如何寻找创业点子呢?最好的办法就是问自己这样一个问题:你想让别人为你做什么?

创业点子分两类:一类是从你自己的生活中发现的“有机”点子;另一类点子是凭空想象的,你认为它们是某类用户必需的,而你不需要。苹果属于第一类。史蒂夫·沃兹尼亚克想要一台电脑,所以创建了苹果。和大多数想要电脑的人不同,他会设计,于是他就设计了一台。并且,既然很多其他人也想要电脑,苹果就能靠卖电脑生存下来。巧的是今天苹果依然遵循这个原则。iPhone正是史蒂夫·乔布斯想要的[这暴露了苹果的弱点:史蒂夫·乔布斯不用的东西。比如我怀疑他不喜欢游戏],我们创建的Viaweb属于第二类。

 

我们开发用于创建网店的软件。我们自己不需要这种软件。我们不是直销商(direct marketer)。我们甚至不知道开始时我们的用户被叫做“直销商”。但是,我们在创业时年龄都比较大了(当时我30岁,罗伯特·莫里斯29),所以凭经验我们知道用户需要这类软件[回首过去,我们本应该成为直销商的。如果我们再次创建Wiaweb,我会选择创建自己的网店。如果自己开网店,就能更好地理解用户。不管多么难为情,我奉劝任何打算创业的人都要成为自己的用户]。

 

这两类点子之间并非泾渭分明,但创业成功的公司大都类似于苹果,而不是Viaweb。当比尔·盖茨为Altair【注:第一台个人计算机】编写第一个Basic解释程序的时候,他正在使用Altair,拉里和赛奇编写最初版Google时也是因为他们自己要用。

“有机”点子通常优于“人造”点子,如果创业者年轻的话更是如此。预测其他人的需求是需要经验的。有些年轻的创业者开发一些自以为老年人会需要的东西,这是我们在Y Combinator见过的最糟糕的点子。

所以,如果你想创业但又无从下手的话,我劝你先把精力放在“有机”点子上。你在日常生活中缺什么东西或有什么东西不尽人意吗?有时如果你想想这个问题就会立刻找到答案。对当初的比尔·盖茨来说,只能用机器语言编写Altair程序显然看上去不尽人意。

你可能需要跳出自我才能发现不尽人意之处,因为你很可能已经习以为常,并且认为它们天经地义。但你肯定会找到它们。好点子总是近在眼前。2004年,哈佛本科生还在使用打印在纸上的Facebook,真是荒谬,这种东西网上早该有。

现在你身边就有显而易见的点子。你之所以忽视这些点子,和你在2004年没想到创建Facebook的原因是一样的:“有机”创业点子通常乍一看上去不像创业点子。我们现在知道Facebook非常成功,但在2004年并非如此。在当时,把本科生的资料放到网上看上去并不是一个创业点子。而且实际上,当初这的确不是一个创业点子。去年冬天在YC的一次晚餐中,Facebook创始人马克称他当初编写初版Facebook时没想要创业,只是一个项目而已。

当沃兹开发第一代苹果机的时候也是如此,他没意识到正在创建一家公司。如果他们当初的确想创建公司的话,他们可能会试着做一些更“严肃”的事情,而那可能会被证明是一个错误。

所以,如果你想找到“有机”创业点子的话,我劝你把更多精力放在点子上,少放点精力在创业上。只管解决问题就好,别管这个问题是否重要到要为其创建一家公司。如果你坚持这样的思路,总会做出一些对很多人有价值的东西,一旦你做到了,你就会得到一家公司,让你大吃一惊[可能的例外:很难和开源软件直接竞争。你可以为程序员开发产品,但你必须找到能够收费的方法]。

 

如果有人对你刚开始做的东西不屑一顾的话,你千万别灰心丧气。实际上这是个好兆头,这很可能是别人忽视这个点子的原因。第一批飞机是这样诞生的,第一批汽车也是这样诞生的。目前,如果有人向我们推荐一些用户喜欢、但有可能被论坛里的灌水者不屑一顾的项目,它尤其能吸引我们的投资兴趣。

年轻的创业者不善于找到“人造”点子,但他们能发现最棒的“有机”点子,因为他们处在技术前沿。他们使用最新的东西。是他们自己决定用什么东西的,为什么不呢?正是由于他们使用最新的东西,他们更容易在不尽人意之处最先发现价值。

如果一种尚未得到满足的需求正有望得到解决,那么没有什么比这更有价值了。如果你发现了某个问题,并且你能帮助很多人解决这个问题,那么你已经找到一座金矿。可是,和真正的金矿一样,你仍需要努力工作挖掘金矿。但至少你知道矿层在哪里,这才是最困难(关键)的部分。


    
[3] UITableView 相关有关问题
    来源: 互联网  发布时间: 2014-02-18
UITableView 相关问题

 

 

动态调整cell高度

 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    if (self.tweets) {
        NSDictionary *tweet =  (NSDictionary *)[self.tweets objectAtIndex:indexPath.row];
        cell.textLabel.text = [NSString stringWithFormat:@"%@", [tweet objectForKey:@"text"]];
        cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:14.0];
    }
    return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.tweets) {
        NSDictionary *tweet =  (NSDictionary *)[self.tweets objectAtIndex:indexPath.row];
        NSString *cellText = [NSString stringWithFormat:@"%@", [tweet objectForKey:@"text"]];
        UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
        CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
        CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
        return labelSize.height + 20;
    }else{
        return 20;
    }
}
 

 

 

取消tableview 选中时的颜色

 

 cell.selectionStyle = UITableViewCellSelectionStyleNone;
 

 

 

 

 

 tableView  删除row 时要先删除datasource的数据

 

[self.fileList removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationBottom];
 

 

 

 

 TableView  move cell的问题

一定要实现

  • – tableView:canMoveRowAtIndexPath:
  • – tableView:moveRowAtIndexPath:toIndexPath:
  • 2个方法  edit时cell里面的那个move按钮才会出现, 光有– tableView:canMoveRowAtIndexPath:返回YES不行

 

 

 

 

 禁用tableview cell的横扫 删除

 

- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (self.editing == NO || !indexPath) returnUITableViewCellEditingStyleNone;  //this
    if (indexPath.row == [datacount]) {
        returnUITableViewCellEditingStyleInsert;
    } else {
        returnUITableViewCellEditingStyleDelete;
    }
}
 

 

 

 

tableview 多选

 

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
关于如何取得所选择的行,两个办法1)通过delegate方法didselect和diddeselect来获取记录
2)通过运行时拿到UITableView的私有成员变量_selectedIndexPaths来获取
用第二种不会被封,但属于进阶用法,不建议新手使用。
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xzzxz


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪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