您的位置:首页 > 其它

求教贴,一个可能很白痴的问题,有时间又很闲的大神给解决下

2015-07-03 11:37 661 查看
http://tieba.baidu.com/p/3546280977

非常感激,截图如下,可能非常简单,也可能是非常弱智的问题,但还是希望有大神能鄙视的帮我解答一下!新手!


(0)

回复

1楼

2015-01-24 12:05

举报 |个人企业举报垃圾信息举报





ann2bad_lego

知名人士
10

手机党,看不清

收起回复

2楼

2015-01-24 13:35

举报 |个人企业举报垃圾信息举报

来自iPhone客户端




PCatZJ: 是看不清还是没有
2015-1-24 14:31回复




ann2bad_lego: 回复 PCatZJ :没有啥
2015-1-24 14:45回复




PCatZJ: 回复 ann2bad_lego :没有图片啊!应该是看不清,那等等,我把文字贴楼下!
2015-1-24 14:48回复




ann2bad_lego: 回复 PCatZJ :把错误信息也贴一下
2015-1-24 14:54回复




PCatZJ: 回复 ann2bad_lego :错误信息在3楼,我再贴程序,其实是一个非常简单的闭包,我几乎是照着书上抄的,还是有错误!
2015-1-24 14:56回复

我也说一句





PCatZJ

高级粉丝
3

提示的两个错误分别是:
cannot invoke 'sort' with an argument list of type'([String],(String, String) -> Bool)'

invalid character in source file

回复

3楼

2015-01-24 14:54

举报 |个人企业举报垃圾信息举报





PCatZJ

高级粉丝
3

这是源程序:
import Foundation

let arr = ["hello", "world", "hello2", "233","2world"]

func compare(s1: String, s2: String) -> Bool {
return s1 > s2
}

var arr2 = sort(arr, {(s1: String, s2: String) -> Bool in return s1 > s2})

收起回复

4楼

2015-01-24 15:04

举报 |个人企业举报垃圾信息举报




PCatZJ: 不对,最后一句是var arr2 = sort(arr, compare),上面的最后一句是不需要那个compare函数,但是也不行,应该是类型转换哪个地方的问题
2015-1-24 15:06回复




y5254y: 回复 PCatZJ :跳到8楼看看我说的,你就明白了
2015-1-24 21:01回复

我也说一句





ann2bad_lego

知名人士
10

sort没有接受这两个类型参数的重载函数。。。你是要用sorted吧?

收起回复

5楼

2015-01-24 15:06

举报 |个人企业举报垃圾信息举报




PCatZJ: 是么,但是书上就是这么写的啊,难道被坑了?我试试
2015-1-24 15:13回复




ann2bad_lego: 回复 PCatZJ :如果要用sort,把之前声明arr的let换成var
2015-1-24 15:21回复




PCatZJ: 回复 PCatZJ :果然行,这书竟然是坑的!那我要查这个api文档的话有没有什么推荐,苹果官网么
2015-1-24 15:23回复




PCatZJ: 回复 ann2bad_lego :是var啊
2015-1-24 15:24回复




ann2bad_lego: 回复 PCatZJ :代码看7楼
2015-1-24 15:27回复

我也说一句
还有1条回复,点击查看





ann2bad_lego

知名人士
10

xcode的help里就有,也可以按住command键,然后哪里不会点哪里

回复

6楼

2015-01-24 15:25

举报 |个人企业举报垃圾信息举报





熊孩子

世界那么大,我想去看看,哪里凉快选哪里! 立即查看




推荐 来自 贴吧游戏





ann2bad_lego

知名人士
10

var arr = ["hello", "world", "hello2", "233","2world"]

func compare(s1: String, s2: String) -> Bool {
return s1 > s2
}

sort(&arr, {(s1: String, s2: String) -> Bool in return s1 > s2})

回复

7楼

2015-01-24 15:26

举报 |个人企业举报垃圾信息举报





y5254y

核心会员
7

文档翻译的有问题,最好对比着英文的看看,特别是代码部分。
英文文档里用的不是sort是sorted。这两个函数功能一样,用法不一样,sort没有返回值,第一个参数是inout的,所以第一个参数同时就是返回值;sorted是将排序好的放在了返回值。

你如果用sorted的话,就直接把你代码里的sort换成sorted就可以了。
如果想用sort的话,就是楼上说的那样。

收起回复

8楼

2015-01-24 21:00

举报 |个人企业举报垃圾信息举报




PCatZJ: 谢谢,受教!
2015-1-24 21:04回复




ann2bad_lego: 回复 PCatZJ :再对层主补充一点,用sort排序是将排好的结果放在原有的数组里,所以数组不能用let声明为常量。而sorted是将排好的结果作为返回值,你可以用一个新的变量或常量来接收,这时候原来的数组是变量或者常量就无所谓了
2015-1-24 22:50回复




PCatZJ: 回复 ann2bad_lego :受教!!!感激不尽!!!
2015-1-24 22:53回复

我也说一句



我在贴吧





xinlingdedahai
0[获取]

消息通知:限时免费领贴吧会员

推荐应用





美女直播





t豆娱乐城





终极教师





食神争霸





胖次





古剑奇谭web





大天使之剑

添加应用

应用中心应用礼包

贴吧页面意见反馈

贴吧严厉打击互联网淫秽色情信息

贴吧垃圾信息处理公示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: